|
|
|
@ -7,6 +7,8 @@ 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.
|
|
|
|
@ -22,3 +24,17 @@ 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")
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|