Skip to content

Commit

Permalink
Bug 1816059 - Show the notification for entering fullscreen as a Toast
Browse files Browse the repository at this point in the history
  • Loading branch information
Mugurell authored and csadilek committed Mar 15, 2023
1 parent 5a4750e commit 0104263
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 27 deletions.
Expand Up @@ -17,6 +17,7 @@ import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.view.accessibility.AccessibilityManager
import android.widget.Toast
import androidx.activity.result.ActivityResultLauncher
import androidx.annotation.CallSuper
import androidx.annotation.VisibleForTesting
Expand Down Expand Up @@ -1442,12 +1443,8 @@ abstract class BaseBrowserFragment :
if (inFullScreen) {
// Close find in page bar if opened
findInPageIntegration.onBackPressed()
FenixSnackbar.make(
view = binding.dynamicSnackbarContainer,
duration = Snackbar.LENGTH_SHORT,
isDisplayedWithBrowserToolbar = false,
)
.setText(getString(R.string.full_screen_notification))
Toast
.makeText(requireContext(), R.string.full_screen_notification, Toast.LENGTH_SHORT)
.show()
activity?.enterToImmersiveMode()
(view as? SwipeGestureLayout)?.isSwipeEnabled = false
Expand Down
Expand Up @@ -7,9 +7,9 @@ package org.mozilla.focus.browser.integration
import android.app.Activity
import android.os.Build
import android.view.View
import android.widget.Toast
import androidx.annotation.VisibleForTesting
import androidx.core.view.isVisible
import com.google.android.material.snackbar.Snackbar
import mozilla.components.browser.state.store.BrowserStore
import mozilla.components.browser.toolbar.BrowserToolbar
import mozilla.components.concept.engine.EngineView
Expand All @@ -24,7 +24,6 @@ import org.mozilla.focus.ext.disableDynamicBehavior
import org.mozilla.focus.ext.enableDynamicBehavior
import org.mozilla.focus.ext.hide
import org.mozilla.focus.ext.showAsFixed
import org.mozilla.focus.utils.FocusSnackbarDelegate
import org.mozilla.focus.utils.Settings

class FullScreenIntegration(
Expand Down Expand Up @@ -60,11 +59,9 @@ class FullScreenIntegration(
enterBrowserFullscreen()
statusBar.isVisible = false

FocusSnackbarDelegate(toolbarView).show(
toolbarView,
R.string.full_screen_notification,
Snackbar.LENGTH_SHORT,
)
Toast
.makeText(activity, R.string.full_screen_notification, Toast.LENGTH_SHORT)
.show()

switchToImmersiveMode()
} else {
Expand Down
Expand Up @@ -9,14 +9,14 @@ import android.content.res.Resources
import android.view.View
import android.view.Window
import android.view.WindowManager
import android.widget.FrameLayout
import androidx.core.view.isVisible
import mozilla.components.browser.engine.gecko.GeckoEngineView
import mozilla.components.browser.toolbar.BrowserToolbar
import mozilla.components.feature.session.FullScreenFeature
import mozilla.components.support.test.any
import mozilla.components.support.test.mock
import mozilla.components.support.test.robolectric.testContext
import org.junit.Assert.assertNotNull
import org.junit.Test
import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.runner.RunWith
Expand All @@ -32,7 +32,9 @@ import org.mozilla.focus.ext.enableDynamicBehavior
import org.mozilla.focus.ext.hide
import org.mozilla.focus.ext.showAsFixed
import org.mozilla.focus.utils.Settings
import org.robolectric.Robolectric
import org.robolectric.RobolectricTestRunner
import org.robolectric.shadows.ShadowToast

@RunWith(RobolectricTestRunner::class)
internal class FullScreenIntegrationTest {
Expand Down Expand Up @@ -289,24 +291,12 @@ internal class FullScreenIntegrationTest {

@Test
fun `WHEN entering fullscreen THEN put browser in fullscreen, hide system bars and enter immersive mode`() {
// Without this the calls regarding the snackbar would throw
// "Caused by: java.lang.IllegalArgumentException:
// The style on this component requires your app theme to be Theme.AppCompat (or a descendant)"
testContext.setTheme(R.style.AppTheme)
val layoutParent = FrameLayout(testContext)
val toolbar = BrowserToolbar(testContext)
layoutParent.addView(toolbar)
val engineView: GeckoEngineView = mock()
doReturn(mock<View>()).`when`(engineView).asView()
val settings: Settings = mock()
doReturn(false).`when`(settings).isAccessibilityEnabled()
val resources: Resources = mock()
val activityWindow: Window = mock()
val decorView: View = mock()
val activity: Activity = mock()
doReturn(activityWindow).`when`(activity).window
doReturn(decorView).`when`(activityWindow).decorView
doReturn(resources).`when`(activity).resources
val activity = Robolectric.buildActivity(Activity::class.java).get()
val statusBar: View = mock()
val integration = spy(
FullScreenIntegration(
Expand All @@ -326,6 +316,13 @@ internal class FullScreenIntegrationTest {
verify(integration).enterBrowserFullscreen()
verify(integration).switchToImmersiveMode()
verify(statusBar).isVisible = false

val toast = ShadowToast.getTextOfLatestToast()
assertNotNull(toast)
assertEquals(
testContext.getString(R.string.full_screen_notification),
toast,
)
}

@Test
Expand Down

0 comments on commit 0104263

Please sign in to comment.