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 4fb217a0f..8c3978c57 100644 --- a/app/src/main/java/org/mozilla/fenix/browser/BaseBrowserFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/browser/BaseBrowserFragment.kt @@ -64,6 +64,7 @@ import mozilla.components.support.base.feature.UserInteractionHandler import mozilla.components.support.base.feature.ViewBoundFeatureWrapper import mozilla.components.support.ktx.android.view.exitImmersiveModeIfNeeded import mozilla.components.support.ktx.android.view.hideKeyboard +import org.mozilla.fenix.BrowserDirection import org.mozilla.fenix.FeatureFlags import org.mozilla.fenix.HomeActivity import org.mozilla.fenix.IntentReceiverActivity @@ -213,6 +214,16 @@ abstract class BaseBrowserFragment : Fragment(), UserInteractionHandler, Session onTabCounterClicked = { val tabTrayDialog = TabTrayDialogFragment() tabTrayDialog.show(parentFragmentManager, null) + tabTrayDialog.interactor = object : TabTrayDialogFragment.Interactor { + override fun onTabSelected(tab: mozilla.components.concept.tabstray.Tab) { + tabTrayDialog.dismiss() + } + + override fun onNewTabTapped() { + tabTrayDialog.dismiss() + findNavController().navigate(BrowserFragmentDirections.actionGlobalHome()) + } + } } ) 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 4a9abf242..2d78a6108 100644 --- a/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt @@ -360,6 +360,16 @@ class HomeFragment : Fragment() { hideOnboardingIfNeeded() val tabTrayDialog = TabTrayDialogFragment() tabTrayDialog.show(parentFragmentManager, null) + tabTrayDialog.interactor = object : TabTrayDialogFragment.Interactor { + override fun onTabSelected(tab: mozilla.components.concept.tabstray.Tab) { + tabTrayDialog.dismiss() + (activity as HomeActivity).openToBrowser(BrowserDirection.FromHome) + } + + override fun onNewTabTapped() { + tabTrayDialog.dismiss() + } + } } PrivateBrowsingButtonView( 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 c1e3e5150..ea6520412 100644 --- a/app/src/main/java/org/mozilla/fenix/tabtray/TabTrayDialogFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/tabtray/TabTrayDialogFragment.kt @@ -17,7 +17,13 @@ import mozilla.components.concept.tabstray.Tab import org.mozilla.fenix.R class TabTrayDialogFragment : AppCompatDialogFragment(), TabTrayInteractor { + interface Interactor { + fun onTabSelected(tab: Tab) + fun onNewTabTapped() + } + private lateinit var tabTrayView: TabTrayView + var interactor: Interactor? = null override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -52,11 +58,11 @@ class TabTrayDialogFragment : AppCompatDialogFragment(), TabTrayInteractor { } override fun onTabSelected(tab: Tab) { - TODO("not implemented") //To change body of created functions use File | Settings | File Templates. + interactor?.onTabSelected(tab) } override fun onNewTabTapped(private: Boolean) { - TODO("not implemented") //To change body of created functions use File | Settings | File Templates. + interactor?.onNewTabTapped() } override fun onTabTrayDismissed() { diff --git a/app/src/main/java/org/mozilla/fenix/tabtray/TabTrayFragment.kt b/app/src/main/java/org/mozilla/fenix/tabtray/TabTrayFragment.kt index f085eda60..b50cf3c11 100644 --- a/app/src/main/java/org/mozilla/fenix/tabtray/TabTrayFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/tabtray/TabTrayFragment.kt @@ -109,7 +109,6 @@ class TabTrayFragment : Fragment(R.layout.fragment_tab_tray), TabsTray.Observer, override fun onResume() { super.onResume() - onTabsChanged() }