No issue: Move UseCase wrappers to the interactor; it's only usage

upstream-sync
Jonathan Almeida 3 years ago committed by Jonathan Almeida
parent 2e3086ac40
commit b1727416f3

@ -28,8 +28,6 @@ import org.mozilla.fenix.ext.requireComponents
import org.mozilla.fenix.home.HomeScreenViewModel
import org.mozilla.fenix.tabstray.browser.BrowserTrayInteractor
import org.mozilla.fenix.tabstray.browser.DefaultBrowserTrayInteractor
import org.mozilla.fenix.tabstray.browser.RemoveTabUseCaseWrapper
import org.mozilla.fenix.tabstray.browser.SelectTabUseCaseWrapper
import org.mozilla.fenix.tabstray.syncedtabs.SyncedTabsInteractor
class TabsTrayFragment : AppCompatDialogFragment(), TabsTrayInteractor {
@ -41,23 +39,6 @@ class TabsTrayFragment : AppCompatDialogFragment(), TabsTrayInteractor {
private val tabLayoutMediator = ViewBoundFeatureWrapper<TabLayoutMediator>()
private val tabCounterBinding = ViewBoundFeatureWrapper<TabCounterBinding>()
private val selectTabUseCase by lazy {
SelectTabUseCaseWrapper(
requireComponents.analytics.metrics,
requireComponents.useCases.tabsUseCases.selectTab
) {
navigateToBrowser()
}
}
private val removeUseCases by lazy {
RemoveTabUseCaseWrapper(
requireComponents.analytics.metrics
) {
tabRemoved(it)
}
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setStyle(STYLE_NO_TITLE, R.style.TabTrayDialogStyle)
@ -86,12 +67,12 @@ class TabsTrayFragment : AppCompatDialogFragment(), TabsTrayInteractor {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
browserTrayInteractor = DefaultBrowserTrayInteractor(
val browserTrayInteractor = DefaultBrowserTrayInteractor(
tabsTrayStore,
selectTabUseCase,
removeUseCases,
this@TabsTrayFragment,
requireComponents.useCases.tabsUseCases.selectTab,
requireComponents.settings,
this
requireComponents.analytics.metrics
)
val navigationInteractor =

@ -12,6 +12,7 @@ import mozilla.components.feature.tabs.TabsUseCases
import mozilla.components.support.base.feature.UserInteractionHandler
import org.mozilla.fenix.selection.SelectionInteractor
import org.mozilla.fenix.tabstray.TabsTrayAction
import org.mozilla.fenix.components.metrics.MetricController
import org.mozilla.fenix.tabstray.TabsTrayInteractor
import org.mozilla.fenix.tabstray.TrayPagerAdapter
import org.mozilla.fenix.tabstray.ext.numberOfGridColumns
@ -41,17 +42,30 @@ interface BrowserTrayInteractor : SelectionInteractor<Tab>, UserInteractionHandl
*/
class DefaultBrowserTrayInteractor(
private val store: TabsTrayStore,
private val selectTabUseCase: TabsUseCases.SelectTabUseCase,
private val removeUseCases: TabsUseCases.RemoveTabUseCase,
private val trayInteractor: TabsTrayInteractor,
private val selectTab: TabsUseCases.SelectTabUseCase,
private val settings: Settings,
private val trayInteractor: TabsTrayInteractor
private val metrics: MetricController
) : BrowserTrayInteractor {
private val selectTabWrapper by lazy {
SelectTabUseCaseWrapper(metrics, selectTab) {
trayInteractor.navigateToBrowser()
}
}
private val removeTabWrapper by lazy {
RemoveTabUseCaseWrapper(metrics) {
// Handle removal from the interactor where we can also handle "undo" visuals.
trayInteractor.tabRemoved(it)
}
}
/**
* See [SelectionInteractor.open]
*/
override fun open(item: Tab) {
selectTabUseCase.invoke(item.id)
selectTabWrapper.invoke(item.id)
trayInteractor.navigateToBrowser()
}
@ -59,7 +73,7 @@ class DefaultBrowserTrayInteractor(
* See [BrowserTrayInteractor.close].
*/
override fun close(tab: Tab) {
removeUseCases.invoke(tab.id)
removeTabWrapper.invoke(tab.id)
}
/**

Loading…
Cancel
Save