From 46cec3d658bb64a01c7707c979c216901ceeff00 Mon Sep 17 00:00:00 2001 From: Jonathan Almeida Date: Sat, 17 Apr 2021 01:20:31 -0400 Subject: [PATCH] No issue: Fix regression in last tab deleted When we allow the homescreen to handle undo for the last tab, we no longer need to handle this ourselves with our own binding. In the future, we should re-think this logic to be more robust and less spread out across multiple screens. --- .../mozilla/fenix/tabstray/TabsTrayFragment.kt | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/tabstray/TabsTrayFragment.kt b/app/src/main/java/org/mozilla/fenix/tabstray/TabsTrayFragment.kt index b4e88dc0d..4b2d1d59c 100644 --- a/app/src/main/java/org/mozilla/fenix/tabstray/TabsTrayFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/tabstray/TabsTrayFragment.kt @@ -71,7 +71,6 @@ class TabsTrayFragment : AppCompatDialogFragment(), TabsTrayInteractor { private val selectionBannerBinding = ViewBoundFeatureWrapper() private val selectionHandleBinding = ViewBoundFeatureWrapper() private val tabsTrayCtaBinding = ViewBoundFeatureWrapper() - private val closeOnLastTabBinding = ViewBoundFeatureWrapper() override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -253,16 +252,6 @@ class TabsTrayFragment : AppCompatDialogFragment(), TabsTrayInteractor { owner = this, view = view ) - - closeOnLastTabBinding.set( - feature = CloseOnLastTabBinding( - browserStore = requireComponents.core.store, - tabsTrayStore = tabsTrayStore, - navigationInteractor = navigationInteractor - ), - owner = this, - view = view - ) } override fun setCurrentTrayPosition(position: Int, smoothScroll: Boolean) { @@ -290,9 +279,11 @@ class TabsTrayFragment : AppCompatDialogFragment(), TabsTrayInteractor { val tab = browserStore.state.findTab(tabId) tab?.let { - requireComponents.useCases.tabsUseCases.removeTab(tabId) - if (browserStore.state.getNormalOrPrivateTabs(it.content.private).isNotEmpty()) { + if (browserStore.state.getNormalOrPrivateTabs(it.content.private).size != 1) { + requireComponents.useCases.tabsUseCases.removeTab(tabId) showUndoSnackbarForTab(it) + } else { + dismissTabsTrayAndNavigateHome(tabId) } } }