From e20c520f6795d5de4091414aa2ad7a305dce1f60 Mon Sep 17 00:00:00 2001 From: Tejas Deshpande Date: Tue, 9 Sep 2025 16:43:08 -0400 Subject: [PATCH 1/3] Remove API checks that are no longer used --- .../firebase/perf/metrics/AppStartTrace.java | 32 ++----------------- .../perf/network/InstrURLConnectionBase.java | 4 +-- .../perf/util/FirstDrawDoneListener.java | 3 -- .../com/google/firebase/perf/util/Timer.java | 6 +--- 4 files changed, 4 insertions(+), 41 deletions(-) diff --git a/firebase-perf/src/main/java/com/google/firebase/perf/metrics/AppStartTrace.java b/firebase-perf/src/main/java/com/google/firebase/perf/metrics/AppStartTrace.java index 450e6c6e9c8..813c8988383 100644 --- a/firebase-perf/src/main/java/com/google/firebase/perf/metrics/AppStartTrace.java +++ b/firebase-perf/src/main/java/com/google/firebase/perf/metrics/AppStartTrace.java @@ -22,7 +22,6 @@ import android.content.Context; import android.os.Build; import android.os.Bundle; -import android.os.PowerManager; import android.os.Process; import android.view.View; import android.view.ViewTreeObserver; @@ -564,20 +563,8 @@ public static boolean isAnyAppProcessInForeground(Context appContext) { } if (appProcess.processName.equals(appProcessName) || appProcess.processName.startsWith(allowedAppProcessNamePrefix)) { - boolean isAppInForeground = true; - - // For the case when the app is in foreground and the device transitions to sleep mode, - // the importance of the process is set to IMPORTANCE_TOP_SLEEPING. However, this - // importance level was introduced in M. Pre M, the process importance is not changed to - // IMPORTANCE_TOP_SLEEPING when the display turns off. So we need to rely also on the - // state of the display to decide if any app process is really visible. - if (Build.VERSION.SDK_INT < 23 /* M */) { - isAppInForeground = isScreenOn(appContext); - } - - if (isAppInForeground) { - return true; - } + // Returns true if the process with `IMPORTANCE_FOREGROUND` matches current process. + return true; } } } @@ -585,21 +572,6 @@ public static boolean isAnyAppProcessInForeground(Context appContext) { return false; } - /** - * Returns whether the device screen is on. - * - * @param appContext The application's context. - */ - public static boolean isScreenOn(Context appContext) { - PowerManager powerManager = (PowerManager) appContext.getSystemService(Context.POWER_SERVICE); - if (powerManager == null) { - return true; - } - return (Build.VERSION.SDK_INT >= 20 /* KITKAT_WATCH */) - ? powerManager.isInteractive() - : powerManager.isScreenOn(); - } - /** * We use StartFromBackgroundRunnable to detect if app is started from background or foreground. * If app is started from background, we do not generate AppStart trace. This runnable is posted diff --git a/firebase-perf/src/main/java/com/google/firebase/perf/network/InstrURLConnectionBase.java b/firebase-perf/src/main/java/com/google/firebase/perf/network/InstrURLConnectionBase.java index 8be0df2e77e..1677be82d1c 100644 --- a/firebase-perf/src/main/java/com/google/firebase/perf/network/InstrURLConnectionBase.java +++ b/firebase-perf/src/main/java/com/google/firebase/perf/network/InstrURLConnectionBase.java @@ -411,9 +411,7 @@ public void setFixedLengthStreamingMode(final int contentLength) { } public void setFixedLengthStreamingMode(final long contentLength) { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { - httpUrlConnection.setFixedLengthStreamingMode(contentLength); - } + httpUrlConnection.setFixedLengthStreamingMode(contentLength); } public void setIfModifiedSince(final long ifmodifiedsince) { diff --git a/firebase-perf/src/main/java/com/google/firebase/perf/util/FirstDrawDoneListener.java b/firebase-perf/src/main/java/com/google/firebase/perf/util/FirstDrawDoneListener.java index f6c7d0a8b84..95e318f49c6 100644 --- a/firebase-perf/src/main/java/com/google/firebase/perf/util/FirstDrawDoneListener.java +++ b/firebase-perf/src/main/java/com/google/firebase/perf/util/FirstDrawDoneListener.java @@ -92,9 +92,6 @@ private static boolean isAliveAndAttached(View view) { /** Backport {@link View#isAttachedToWindow()} which is API 19+ only. */ private static boolean isAttachedToWindow(View view) { - if (Build.VERSION.SDK_INT >= 19) { - return view.isAttachedToWindow(); - } return view.getWindowToken() != null; } } diff --git a/firebase-perf/src/main/java/com/google/firebase/perf/util/Timer.java b/firebase-perf/src/main/java/com/google/firebase/perf/util/Timer.java index c32800edfe1..58b94a75a39 100644 --- a/firebase-perf/src/main/java/com/google/firebase/perf/util/Timer.java +++ b/firebase-perf/src/main/java/com/google/firebase/perf/util/Timer.java @@ -17,7 +17,6 @@ import static java.util.concurrent.TimeUnit.MILLISECONDS; import static java.util.concurrent.TimeUnit.NANOSECONDS; -import android.os.Build; import android.os.Parcel; import android.os.Parcelable; import android.os.SystemClock; @@ -72,10 +71,7 @@ private static long wallClockMicros() { * @return wall-clock time in microseconds. */ private static long elapsedRealtimeMicros() { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { - return NANOSECONDS.toMicros(SystemClock.elapsedRealtimeNanos()); - } - return MILLISECONDS.toMicros(SystemClock.elapsedRealtime()); + return NANOSECONDS.toMicros(SystemClock.elapsedRealtimeNanos()); } // TODO: make all constructors private, use public static factory methods, per Effective Java From a211815816581f6fdb12bc73295bdb3df89efd5b Mon Sep 17 00:00:00 2001 From: Tejas Deshpande Date: Tue, 9 Sep 2025 16:45:26 -0400 Subject: [PATCH 2/3] Fix FirstDrawDoneListener change --- .../com/google/firebase/perf/util/FirstDrawDoneListener.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/firebase-perf/src/main/java/com/google/firebase/perf/util/FirstDrawDoneListener.java b/firebase-perf/src/main/java/com/google/firebase/perf/util/FirstDrawDoneListener.java index 95e318f49c6..44f1825783d 100644 --- a/firebase-perf/src/main/java/com/google/firebase/perf/util/FirstDrawDoneListener.java +++ b/firebase-perf/src/main/java/com/google/firebase/perf/util/FirstDrawDoneListener.java @@ -92,6 +92,6 @@ private static boolean isAliveAndAttached(View view) { /** Backport {@link View#isAttachedToWindow()} which is API 19+ only. */ private static boolean isAttachedToWindow(View view) { - return view.getWindowToken() != null; + return view.isAttachedToWindow(); } } From 727f62d873188578961b0cef4c5bd9434cab62d1 Mon Sep 17 00:00:00 2001 From: Tejas Deshpande Date: Tue, 9 Sep 2025 16:46:38 -0400 Subject: [PATCH 3/3] Remve method --- .../google/firebase/perf/util/FirstDrawDoneListener.java | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/firebase-perf/src/main/java/com/google/firebase/perf/util/FirstDrawDoneListener.java b/firebase-perf/src/main/java/com/google/firebase/perf/util/FirstDrawDoneListener.java index 44f1825783d..5de0aaf5a63 100644 --- a/firebase-perf/src/main/java/com/google/firebase/perf/util/FirstDrawDoneListener.java +++ b/firebase-perf/src/main/java/com/google/firebase/perf/util/FirstDrawDoneListener.java @@ -87,11 +87,6 @@ public void onDraw() { * placeholder. */ private static boolean isAliveAndAttached(View view) { - return view.getViewTreeObserver().isAlive() && isAttachedToWindow(view); - } - - /** Backport {@link View#isAttachedToWindow()} which is API 19+ only. */ - private static boolean isAttachedToWindow(View view) { - return view.isAttachedToWindow(); + return view.getViewTreeObserver().isAlive() && view.isAttachedToWindow(); } }