From 923d8414036062b231d24f941677f29221273a3d Mon Sep 17 00:00:00 2001 From: Michael Comella Date: Wed, 22 Jul 2020 10:48:11 -0700 Subject: [PATCH] For #12345: replace Activity.reportFullyDrawnSafe with a-c impl. --- .../main/java/org/mozilla/fenix/ext/Activity.kt | 16 ---------------- .../java/org/mozilla/fenix/perf/Performance.kt | 3 +++ .../fenix/perf/StartupReportFullyDrawn.kt | 4 ++-- 3 files changed, 5 insertions(+), 18 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/ext/Activity.kt b/app/src/main/java/org/mozilla/fenix/ext/Activity.kt index ab0ce02fe..7dd2b3dce 100644 --- a/app/src/main/java/org/mozilla/fenix/ext/Activity.kt +++ b/app/src/main/java/org/mozilla/fenix/ext/Activity.kt @@ -7,8 +7,6 @@ package org.mozilla.fenix.ext import android.app.Activity import android.view.View import android.view.WindowManager -import mozilla.components.support.base.log.Log -import org.mozilla.fenix.perf.Performance /** * Attempts to call immersive mode using the View to hide the status bar and navigation buttons. @@ -24,17 +22,3 @@ fun Activity.enterToImmersiveMode() { or View.SYSTEM_UI_FLAG_FULLSCREEN or View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY) } - -/** - * Calls [Activity.reportFullyDrawn] while also preventing crashes under some circumstances. - */ -fun Activity.reportFullyDrawnSafe() { - try { - reportFullyDrawn() - } catch (e: SecurityException) { - // This exception is throw on some Samsung devices. We were unable to identify the root - // cause but suspect it's related to Samsung security features. See - // https://github.com/mozilla-mobile/fenix/issues/12345#issuecomment-655058864 for details. - Log.log(Log.Priority.ERROR, Performance.TAG, e, "Unable to call reportFullyDrawn") - } -} diff --git a/app/src/main/java/org/mozilla/fenix/perf/Performance.kt b/app/src/main/java/org/mozilla/fenix/perf/Performance.kt index 410295577..6fe32e802 100644 --- a/app/src/main/java/org/mozilla/fenix/perf/Performance.kt +++ b/app/src/main/java/org/mozilla/fenix/perf/Performance.kt @@ -8,6 +8,7 @@ import android.content.Context import android.content.Intent import android.content.IntentFilter import android.os.BatteryManager +import mozilla.components.support.base.log.logger.Logger import org.mozilla.fenix.ext.components import org.mozilla.fenix.onboarding.FenixOnboarding import android.provider.Settings as AndroidSettings @@ -17,6 +18,8 @@ import android.provider.Settings as AndroidSettings */ object Performance { const val TAG = "FenixPerf" + val logger = Logger(TAG) + private const val EXTRA_IS_PERFORMANCE_TEST = "performancetest" /** diff --git a/app/src/main/java/org/mozilla/fenix/perf/StartupReportFullyDrawn.kt b/app/src/main/java/org/mozilla/fenix/perf/StartupReportFullyDrawn.kt index c30720fec..004feb0ff 100644 --- a/app/src/main/java/org/mozilla/fenix/perf/StartupReportFullyDrawn.kt +++ b/app/src/main/java/org/mozilla/fenix/perf/StartupReportFullyDrawn.kt @@ -7,9 +7,9 @@ package org.mozilla.fenix.perf import android.app.Activity import android.view.View import androidx.core.view.doOnPreDraw +import mozilla.components.support.ktx.android.view.reportFullyDrawnSafe import org.mozilla.fenix.HomeActivity import org.mozilla.fenix.R -import org.mozilla.fenix.ext.reportFullyDrawnSafe import org.mozilla.fenix.home.sessioncontrol.viewholders.topsites.TopSiteItemViewHolder import org.mozilla.fenix.perf.StartupTimelineStateMachine.StartupDestination.APP_LINK import org.mozilla.fenix.perf.StartupTimelineStateMachine.StartupDestination.HOMESCREEN @@ -65,6 +65,6 @@ class StartupReportFullyDrawn { // - the difference in timing is minimal (< 7ms on Pixel 2) // - if we compare against another app using a preDrawListener, as we are with Fennec, it // should be comparable - view.doOnPreDraw { activity.reportFullyDrawnSafe() } + view.doOnPreDraw { activity.reportFullyDrawnSafe(Performance.logger) } } }