For #10342 - Part 3: Use the TopSitesUseCase in the BrowserToolbarController and SessionControlController

Use the provided `addPinnedSites` and `removeTopSites` use cases in `BrowserToolbarController` and `SessionControlController`.
pull/35/head
Gabriel Luong 4 years ago committed by Jonathan Almeida
parent d824dd1e35
commit 46aa6a003e

@ -241,7 +241,6 @@ abstract class BaseBrowserFragment : Fragment(), UserInteractionHandler, Session
bookmarkTapped = { viewLifecycleOwner.lifecycleScope.launch { bookmarkTapped(it) } }, bookmarkTapped = { viewLifecycleOwner.lifecycleScope.launch { bookmarkTapped(it) } },
scope = viewLifecycleOwner.lifecycleScope, scope = viewLifecycleOwner.lifecycleScope,
tabCollectionStorage = requireComponents.core.tabCollectionStorage, tabCollectionStorage = requireComponents.core.tabCollectionStorage,
topSiteStorage = requireComponents.core.topSiteStorage,
onTabCounterClicked = { onTabCounterClicked = {
thumbnailsFeature.get()?.requestScreenshot() thumbnailsFeature.get()?.requestScreenshot()
findNavController().nav( findNavController().nav(

@ -53,7 +53,8 @@ class Components(private val context: Context) {
core.sessionManager, core.sessionManager,
core.store, core.store,
search.searchEngineManager, search.searchEngineManager,
core.webAppShortcutManager core.webAppShortcutManager,
core.topSiteStorage
) )
} }
val intentProcessors by lazy { val intentProcessors by lazy {

@ -20,6 +20,8 @@ import mozilla.components.feature.session.SessionUseCases
import mozilla.components.feature.session.SettingsUseCases import mozilla.components.feature.session.SettingsUseCases
import mozilla.components.feature.session.TrackingProtectionUseCases import mozilla.components.feature.session.TrackingProtectionUseCases
import mozilla.components.feature.tabs.TabsUseCases import mozilla.components.feature.tabs.TabsUseCases
import mozilla.components.feature.top.sites.TopSitesStorage
import mozilla.components.feature.top.sites.TopSitesUseCases
import org.mozilla.fenix.utils.Mockable import org.mozilla.fenix.utils.Mockable
/** /**
@ -34,7 +36,8 @@ class UseCases(
private val sessionManager: SessionManager, private val sessionManager: SessionManager,
private val store: BrowserStore, private val store: BrowserStore,
private val searchEngineManager: SearchEngineManager, private val searchEngineManager: SearchEngineManager,
private val shortcutManager: WebAppShortcutManager private val shortcutManager: WebAppShortcutManager,
private val topSitesStorage: TopSitesStorage
) { ) {
/** /**
* Use cases that provide engine interactions for a given browser session. * Use cases that provide engine interactions for a given browser session.
@ -69,4 +72,9 @@ class UseCases(
val engineSessionUseCases by lazy { EngineSessionUseCases(sessionManager) } val engineSessionUseCases by lazy { EngineSessionUseCases(sessionManager) }
val trackingProtectionUseCases by lazy { TrackingProtectionUseCases(store, engine) } val trackingProtectionUseCases by lazy { TrackingProtectionUseCases(store, engine) }
/**
* Use cases that provide top sites management.
*/
val topSitesUseCase by lazy { TopSitesUseCases(topSitesStorage) }
} }

@ -34,7 +34,6 @@ import org.mozilla.fenix.browser.readermode.ReaderModeController
import org.mozilla.fenix.collections.SaveCollectionStep import org.mozilla.fenix.collections.SaveCollectionStep
import org.mozilla.fenix.components.FenixSnackbar import org.mozilla.fenix.components.FenixSnackbar
import org.mozilla.fenix.components.TabCollectionStorage import org.mozilla.fenix.components.TabCollectionStorage
import org.mozilla.fenix.components.TopSiteStorage
import org.mozilla.fenix.components.metrics.Event import org.mozilla.fenix.components.metrics.Event
import org.mozilla.fenix.ext.components import org.mozilla.fenix.ext.components
import org.mozilla.fenix.ext.getRootView import org.mozilla.fenix.ext.getRootView
@ -75,7 +74,6 @@ class DefaultBrowserToolbarController(
private val bookmarkTapped: (Session) -> Unit, private val bookmarkTapped: (Session) -> Unit,
private val scope: CoroutineScope, private val scope: CoroutineScope,
private val tabCollectionStorage: TabCollectionStorage, private val tabCollectionStorage: TabCollectionStorage,
private val topSiteStorage: TopSiteStorage,
private val onTabCounterClicked: () -> Unit, private val onTabCounterClicked: () -> Unit,
private val onCloseTab: (Session) -> Unit private val onCloseTab: (Session) -> Unit
) : BrowserToolbarController { ) : BrowserToolbarController {
@ -245,7 +243,9 @@ class DefaultBrowserToolbarController(
scope.launch { scope.launch {
ioScope.launch { ioScope.launch {
currentSession?.let { currentSession?.let {
topSiteStorage.addTopSite(it.title, it.url) with(activity.components.useCases.topSitesUseCase) {
addPinnedSites(it.title, it.url)
}
} }
}.join() }.join()

@ -209,7 +209,6 @@ class HomeFragment : Fragment() {
metrics = components.analytics.metrics, metrics = components.analytics.metrics,
sessionManager = sessionManager, sessionManager = sessionManager,
tabCollectionStorage = components.core.tabCollectionStorage, tabCollectionStorage = components.core.tabCollectionStorage,
topSiteStorage = components.core.topSiteStorage,
addTabUseCase = components.useCases.tabsUseCases.addTab, addTabUseCase = components.useCases.tabsUseCases.addTab,
fragmentStore = homeFragmentStore, fragmentStore = homeFragmentStore,
navController = findNavController(), navController = findNavController(),

@ -22,7 +22,6 @@ import org.mozilla.fenix.R
import org.mozilla.fenix.browser.browsingmode.BrowsingMode import org.mozilla.fenix.browser.browsingmode.BrowsingMode
import org.mozilla.fenix.collections.SaveCollectionStep import org.mozilla.fenix.collections.SaveCollectionStep
import org.mozilla.fenix.components.TabCollectionStorage import org.mozilla.fenix.components.TabCollectionStorage
import org.mozilla.fenix.components.TopSiteStorage
import org.mozilla.fenix.components.metrics.Event import org.mozilla.fenix.components.metrics.Event
import org.mozilla.fenix.components.metrics.MetricController import org.mozilla.fenix.components.metrics.MetricController
import org.mozilla.fenix.components.metrics.MetricsUtils import org.mozilla.fenix.components.metrics.MetricsUtils
@ -160,7 +159,6 @@ class DefaultSessionControlController(
private val metrics: MetricController, private val metrics: MetricController,
private val sessionManager: SessionManager, private val sessionManager: SessionManager,
private val tabCollectionStorage: TabCollectionStorage, private val tabCollectionStorage: TabCollectionStorage,
private val topSiteStorage: TopSiteStorage,
private val addTabUseCase: TabsUseCases.AddNewTabUseCase, private val addTabUseCase: TabsUseCases.AddNewTabUseCase,
private val fragmentStore: HomeFragmentStore, private val fragmentStore: HomeFragmentStore,
private val navController: NavController, private val navController: NavController,
@ -290,7 +288,9 @@ class DefaultSessionControlController(
} }
viewLifecycleScope.launch(Dispatchers.IO) { viewLifecycleScope.launch(Dispatchers.IO) {
topSiteStorage.removeTopSite(topSite) with(activity.components.useCases.topSitesUseCase) {
removeTopSites(topSite)
}
} }
} }

Loading…
Cancel
Save