diff --git a/app/src/main/java/org/mozilla/fenix/browser/BaseBrowserFragment.kt b/app/src/main/java/org/mozilla/fenix/browser/BaseBrowserFragment.kt index 024c7557e..ec0d715fd 100644 --- a/app/src/main/java/org/mozilla/fenix/browser/BaseBrowserFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/browser/BaseBrowserFragment.kt @@ -1370,6 +1370,7 @@ abstract class BaseBrowserFragment : .setText(getString(R.string.full_screen_notification)) .show() activity?.enterToImmersiveMode() + (view as? SwipeGestureLayout)?.isSwipeEnabled = false browserToolbarView.collapse() browserToolbarView.view.isVisible = false val browserEngine = binding.swipeRefresh.layoutParams as CoordinatorLayout.LayoutParams @@ -1384,6 +1385,7 @@ abstract class BaseBrowserFragment : MediaState.fullscreen.record(NoExtras()) } else { activity?.exitImmersiveMode() + (view as? SwipeGestureLayout)?.isSwipeEnabled = true (activity as? HomeActivity)?.let { activity -> activity.themeManager.applyStatusBarTheme(activity) } diff --git a/app/src/main/java/org/mozilla/fenix/browser/SwipeGestureLayout.kt b/app/src/main/java/org/mozilla/fenix/browser/SwipeGestureLayout.kt index 40cd5d2d3..a9ad9b7ec 100644 --- a/app/src/main/java/org/mozilla/fenix/browser/SwipeGestureLayout.kt +++ b/app/src/main/java/org/mozilla/fenix/browser/SwipeGestureLayout.kt @@ -56,6 +56,11 @@ class SwipeGestureLayout @JvmOverloads constructor( defStyleAttr: Int = 0, ) : FrameLayout(context, attrs, defStyleAttr) { + /** + * Controls whether the swiping functionality is active or not. + */ + var isSwipeEnabled = true + private val gestureListener = object : GestureDetector.SimpleOnGestureListener() { override fun onDown(e: MotionEvent): Boolean { return true @@ -107,6 +112,10 @@ class SwipeGestureLayout @JvmOverloads constructor( } override fun onInterceptTouchEvent(event: MotionEvent): Boolean { + if (!isSwipeEnabled) { + return false + } + return when (event.actionMasked) { MotionEvent.ACTION_DOWN -> { handledInitialScroll = false