From a54d2c37ed0f884a8a3583eaac0f300215315d00 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20W=C3=A4rting?= Date: Wed, 18 Dec 2024 20:53:49 +0100 Subject: [PATCH 1/3] Use DisplayManager directly instead of using WindowManager --- build.gradle | 6 ++++++ mixpaneldemo/build.gradle.kts | 6 ++++++ settings.gradle | 4 ++++ .../com/mixpanel/android/mpmetrics/SystemInformation.java | 4 ++-- 4 files changed, 18 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index d5e86476c..c56d9b70f 100644 --- a/build.gradle +++ b/build.gradle @@ -77,6 +77,12 @@ allprojects { } } +java { + toolchain { + languageVersion = JavaLanguageVersion.of(17) + } +} + configurations.all { resolutionStrategy { force "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22" diff --git a/mixpaneldemo/build.gradle.kts b/mixpaneldemo/build.gradle.kts index 105baee26..fd17ed786 100644 --- a/mixpaneldemo/build.gradle.kts +++ b/mixpaneldemo/build.gradle.kts @@ -49,6 +49,12 @@ android { } } +java { + toolchain { + languageVersion = JavaLanguageVersion.of(8) + } +} + dependencies { implementation("androidx.core:core-ktx:1.13.1") implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.8.4") diff --git a/settings.gradle b/settings.gradle index cbd65f8c2..a9b41750a 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,3 +1,7 @@ +plugins { + id 'org.gradle.toolchains.foojay-resolver-convention' version '0.9.0' +} + include ":" rootProject.name = "mixpanel-android" include ':mixpanel-android' diff --git a/src/main/java/com/mixpanel/android/mpmetrics/SystemInformation.java b/src/main/java/com/mixpanel/android/mpmetrics/SystemInformation.java index d645389fc..2f8f8d45b 100644 --- a/src/main/java/com/mixpanel/android/mpmetrics/SystemInformation.java +++ b/src/main/java/com/mixpanel/android/mpmetrics/SystemInformation.java @@ -11,13 +11,13 @@ import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; +import android.hardware.display.DisplayManager; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.os.Build; import android.telephony.TelephonyManager; import android.util.DisplayMetrics; import android.view.Display; -import android.view.WindowManager; import com.mixpanel.android.util.MPLog; @@ -88,7 +88,7 @@ private SystemInformation(Context context) { mHasTelephony = foundTelephony; mDisplayMetrics = new DisplayMetrics(); - Display display = ((WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay(); + Display display = ((DisplayManager) mContext.getSystemService(Context.DISPLAY_SERVICE)).getDisplay(Display.DEFAULT_DISPLAY); display.getMetrics(mDisplayMetrics); } From fcab91f7818f9287c228ba0a8e947906f58e7e88 Mon Sep 17 00:00:00 2001 From: Jared McFarland Date: Thu, 30 Jan 2025 11:28:39 -0800 Subject: [PATCH 2/3] refactor DisplayManager usage --- .../mixpanel/android/mpmetrics/SystemInformation.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/mixpanel/android/mpmetrics/SystemInformation.java b/src/main/java/com/mixpanel/android/mpmetrics/SystemInformation.java index 2f8f8d45b..6a6726e10 100644 --- a/src/main/java/com/mixpanel/android/mpmetrics/SystemInformation.java +++ b/src/main/java/com/mixpanel/android/mpmetrics/SystemInformation.java @@ -88,8 +88,15 @@ private SystemInformation(Context context) { mHasTelephony = foundTelephony; mDisplayMetrics = new DisplayMetrics(); - Display display = ((DisplayManager) mContext.getSystemService(Context.DISPLAY_SERVICE)).getDisplay(Display.DEFAULT_DISPLAY); - display.getMetrics(mDisplayMetrics); + DisplayManager displayManager = (DisplayManager) context.getSystemService(Context.DISPLAY_SERVICE); + Display display = (displayManager != null) ? displayManager.getDisplay(Display.DEFAULT_DISPLAY) : null; + + if (display != null) { + display.getMetrics(mDisplayMetrics); + } else { + DisplayMetrics defaultMetrics = context.getResources().getDisplayMetrics(); + mDisplayMetrics.setTo(defaultMetrics); + } } public String getAppVersionName() { return mAppVersionName; } From a9f93b0646e4d996c610484f93bec0c5913a7b8e Mon Sep 17 00:00:00 2001 From: Jared McFarland Date: Thu, 30 Jan 2025 11:34:57 -0800 Subject: [PATCH 3/3] use mContext --- .../com/mixpanel/android/mpmetrics/SystemInformation.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/mixpanel/android/mpmetrics/SystemInformation.java b/src/main/java/com/mixpanel/android/mpmetrics/SystemInformation.java index 6a6726e10..c43fb45aa 100644 --- a/src/main/java/com/mixpanel/android/mpmetrics/SystemInformation.java +++ b/src/main/java/com/mixpanel/android/mpmetrics/SystemInformation.java @@ -88,13 +88,13 @@ private SystemInformation(Context context) { mHasTelephony = foundTelephony; mDisplayMetrics = new DisplayMetrics(); - DisplayManager displayManager = (DisplayManager) context.getSystemService(Context.DISPLAY_SERVICE); + DisplayManager displayManager = (DisplayManager) mContext.getSystemService(Context.DISPLAY_SERVICE); Display display = (displayManager != null) ? displayManager.getDisplay(Display.DEFAULT_DISPLAY) : null; if (display != null) { display.getMetrics(mDisplayMetrics); } else { - DisplayMetrics defaultMetrics = context.getResources().getDisplayMetrics(); + DisplayMetrics defaultMetrics = mContext.getResources().getDisplayMetrics(); mDisplayMetrics.setTo(defaultMetrics); } }