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 c84d1f2f1..d567e8198 100644 --- a/app/src/main/java/org/mozilla/fenix/browser/BaseBrowserFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/browser/BaseBrowserFragment.kt @@ -221,9 +221,7 @@ abstract class BaseBrowserFragment : Fragment(), UserInteractionHandler, Session tabTrayDialog.dismiss() } - override fun onTabClosed(tab: Tab) { - TODO("Not yet implemented") - } + override fun onTabClosed(tab: Tab) { /* noop */ } override fun onNewTabTapped(private: Boolean) { (activity as HomeActivity).browsingModeManager.mode = BrowsingMode.fromBoolean(private) diff --git a/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt b/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt index 1d2fe7dff..de1e37c84 100644 --- a/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt @@ -373,7 +373,7 @@ class HomeFragment : Fragment() { } override fun onTabClosed(tab: mozilla.components.concept.tabstray.Tab) { - TODO("Not yet implemented") + /* noop */ } } } diff --git a/app/src/main/java/org/mozilla/fenix/tabtray/TabTrayDialogFragment.kt b/app/src/main/java/org/mozilla/fenix/tabtray/TabTrayDialogFragment.kt index 3514b1905..1911c57e5 100644 --- a/app/src/main/java/org/mozilla/fenix/tabtray/TabTrayDialogFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/tabtray/TabTrayDialogFragment.kt @@ -68,7 +68,6 @@ class TabTrayDialogFragment : AppCompatDialogFragment(), TabTrayInteractor { } override fun onTabClosed(tab: Tab) { - // interactor?.onTabClosed(tab) val sessionManager = view?.context?.components?.core?.sessionManager val snapshot = sessionManager ?.findSessionById(tab.id)?.let { @@ -84,16 +83,18 @@ class TabTrayDialogFragment : AppCompatDialogFragment(), TabTrayInteractor { getString(R.string.snackbar_tab_closed) } - viewLifecycleOwner.lifecycleScope.allowUndo( - requireView(), - snackbarMessage, - getString(R.string.snackbar_deleted_undo), - { - sessionManager.add(snapshot.session, isSelected, engineSessionState = state) - }, - operation = { }, - anchorView = view?.handle - ) + view?.tabLayout?.let { + viewLifecycleOwner.lifecycleScope.allowUndo( + it, + snackbarMessage, + getString(R.string.snackbar_deleted_undo), + { + sessionManager.add(snapshot.session, isSelected, engineSessionState = state) + }, + operation = { }, + elevation = ELEVATION + ) + } } override fun onTabSelected(tab: Tab) { @@ -107,4 +108,8 @@ class TabTrayDialogFragment : AppCompatDialogFragment(), TabTrayInteractor { override fun onTabTrayDismissed() { dismissAllowingStateLoss() } + + companion object { + private const val ELEVATION = 80f + } } diff --git a/app/src/main/java/org/mozilla/fenix/tabtray/TabTrayView.kt b/app/src/main/java/org/mozilla/fenix/tabtray/TabTrayView.kt index eef5fcfe4..61f65b2c0 100644 --- a/app/src/main/java/org/mozilla/fenix/tabtray/TabTrayView.kt +++ b/app/src/main/java/org/mozilla/fenix/tabtray/TabTrayView.kt @@ -52,7 +52,7 @@ class TabTrayView( behavior.addBottomSheetCallback(object : BottomSheetBehavior.BottomSheetCallback() { override fun onSlide(bottomSheet: View, slideOffset: Float) { - if (slideOffset > SLIDE_OFFSET) { + if (slideOffset >= SLIDE_OFFSET) { fabView.new_tab_button.show() } else { fabView.new_tab_button.hide() @@ -120,7 +120,7 @@ class TabTrayView( companion object { private const val DEFAULT_TAB_ID = 0 private const val PRIVATE_TAB_ID = 1 - private const val SLIDE_OFFSET = 0.4 - private const val ELEVATION = 41f + private const val SLIDE_OFFSET = 0 + private const val ELEVATION = 90f } } diff --git a/app/src/main/java/org/mozilla/fenix/utils/Undo.kt b/app/src/main/java/org/mozilla/fenix/utils/Undo.kt index ca4ea117b..90ab563ec 100644 --- a/app/src/main/java/org/mozilla/fenix/utils/Undo.kt +++ b/app/src/main/java/org/mozilla/fenix/utils/Undo.kt @@ -36,7 +36,8 @@ fun CoroutineScope.allowUndo( undoActionTitle: String, onCancel: suspend () -> Unit = {}, operation: suspend () -> Unit, - anchorView: View? = null + anchorView: View? = null, + elevation: Float? = null ) { // By using an AtomicBoolean, we achieve memory effects of reading and // writing a volatile variable. @@ -58,6 +59,10 @@ fun CoroutineScope.allowUndo( } } + elevation?.also { + snackbar.view.elevation = it + } + snackbar.show() // Wait a bit, and if user didn't request cancellation, proceed with