From f5c3e0e35ef529ae5b625aff735f2900f6c7ac11 Mon Sep 17 00:00:00 2001 From: Colin Lee Date: Mon, 4 Mar 2019 04:42:35 -0600 Subject: [PATCH] Fixes #262: Need full screen functionality and "Entering full screen" --- .../mozilla/fenix/browser/BrowserFragment.kt | 26 +++++++++++++++++++ app/src/main/res/values/strings.xml | 1 + 2 files changed, 27 insertions(+) diff --git a/app/src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt b/app/src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt index 22d8fe785..a407f5457 100644 --- a/app/src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt @@ -17,6 +17,8 @@ import androidx.coordinatorlayout.widget.CoordinatorLayout import androidx.core.content.ContextCompat import androidx.fragment.app.Fragment import androidx.navigation.Navigation +import com.google.android.material.snackbar.Snackbar +import kotlinx.android.synthetic.main.component_search.* import kotlinx.android.synthetic.main.fragment_browser.view.* import mozilla.components.browser.toolbar.behavior.BrowserToolbarBottomBehavior import mozilla.components.feature.contextmenu.ContextMenuCandidate @@ -24,11 +26,14 @@ import mozilla.components.feature.contextmenu.ContextMenuFeature import mozilla.components.feature.customtabs.CustomTabsToolbarFeature import mozilla.components.feature.downloads.DownloadsFeature import mozilla.components.feature.prompts.PromptFeature +import mozilla.components.feature.session.FullScreenFeature import mozilla.components.feature.session.SessionFeature import mozilla.components.feature.session.SessionUseCases import mozilla.components.feature.sitepermissions.SitePermissionsFeature import mozilla.components.support.base.feature.BackHandler import mozilla.components.support.base.feature.ViewBoundFeatureWrapper +import mozilla.components.support.ktx.android.view.enterToImmersiveMode +import mozilla.components.support.ktx.android.view.exitImmersiveModeIfNeeded import org.mozilla.fenix.BrowsingModeManager import org.mozilla.fenix.DefaultThemeManager import org.mozilla.fenix.HomeActivity @@ -56,6 +61,7 @@ class BrowserFragment : Fragment(), BackHandler { private val customTabsToolbarFeature = ViewBoundFeatureWrapper() private val toolbarIntegration = ViewBoundFeatureWrapper() private val sitePermissionsFeature = ViewBoundFeatureWrapper() + private val fullScreenFeature = ViewBoundFeatureWrapper() var sessionId: String? = null override fun onCreateView( @@ -178,6 +184,26 @@ class BrowserFragment : Fragment(), BackHandler { owner = this, view = view ) + + fullScreenFeature.set( + feature = FullScreenFeature( + sessionManager, + SessionUseCases(sessionManager), + sessionId + ) { + if (it) { + Snackbar.make(view.rootView, getString(R.string.full_screen_notification), Snackbar.LENGTH_LONG) + .show() + activity?.enterToImmersiveMode() + toolbar.visibility = View.GONE + } else { + activity?.exitImmersiveModeIfNeeded() + toolbar.visibility = View.VISIBLE + } + }, + owner = this, + view = view + ) } override fun onResume() { diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index d0d930d21..ebcd69f13 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -200,4 +200,5 @@ people before profit. Our mission: keep the Internet open and accessible to all. Delete %1$d Items + Entering full screen mode