/* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ package org.mozilla.fenix.ext import android.app.Activity import android.view.View import android.view.WindowManager import mozilla.components.concept.base.crash.Breadcrumb /** * Attempts to call immersive mode using the View to hide the status bar and navigation buttons. * * We don't use the equivalent function from Android Components because the stable flag messes * with the toolbar. See #1998 and #3272. */ fun Activity.enterToImmersiveMode() { window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON) window.decorView.systemUiVisibility = (View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN or View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_FULLSCREEN or View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY) } fun Activity.breadcrumb( message: String, data: Map = emptyMap() ) { components.analytics.crashReporter.recordCrashBreadcrumb( Breadcrumb( category = this::class.java.simpleName, message = message, data = data + mapOf( "instance" to this.hashCode().toString() ), level = Breadcrumb.Level.INFO ) ) }