1
0
Fork 0

Closes #270: Integrate browser-storage-sync for history storage and toolbar autocompletion

master
Grisha Kruglov 2019-01-29 12:04:57 -08:00 committed by Colin Lee
parent 0ac3cd9e08
commit 0e3965632a
5 changed files with 19 additions and 3 deletions

View File

@ -90,6 +90,7 @@ dependencies {
implementation Deps.mozilla_browser_domains implementation Deps.mozilla_browser_domains
implementation Deps.mozilla_browser_engine_gecko_nightly implementation Deps.mozilla_browser_engine_gecko_nightly
implementation Deps.mozilla_browser_session implementation Deps.mozilla_browser_session
implementation Deps.mozilla_browser_storage_sync
implementation Deps.mozilla_browser_toolbar implementation Deps.mozilla_browser_toolbar
implementation Deps.mozilla_feature_awesomebar implementation Deps.mozilla_feature_awesomebar

View File

@ -52,7 +52,8 @@ class BrowserFragment : Fragment() {
ToolbarIntegration( ToolbarIntegration(
requireContext(), requireContext(),
toolbar, toolbar,
requireComponents.toolbar.shippedDomainsProvider requireComponents.toolbar.shippedDomainsProvider,
requireComponents.core.historyStorage
) )
) )

View File

@ -11,9 +11,11 @@ import mozilla.components.browser.engine.gecko.GeckoEngine
import mozilla.components.browser.session.Session import mozilla.components.browser.session.Session
import mozilla.components.browser.session.SessionManager import mozilla.components.browser.session.SessionManager
import mozilla.components.browser.session.storage.SessionStorage import mozilla.components.browser.session.storage.SessionStorage
import mozilla.components.browser.storage.sync.PlacesHistoryStorage
import mozilla.components.concept.engine.DefaultSettings import mozilla.components.concept.engine.DefaultSettings
import mozilla.components.concept.engine.Engine import mozilla.components.concept.engine.Engine
import mozilla.components.concept.engine.EngineSession.TrackingProtectionPolicy import mozilla.components.concept.engine.EngineSession.TrackingProtectionPolicy
import mozilla.components.feature.session.HistoryDelegate
import java.util.concurrent.TimeUnit import java.util.concurrent.TimeUnit
/** /**
@ -31,7 +33,8 @@ class Core(private val context: Context) {
val defaultSettings = DefaultSettings( val defaultSettings = DefaultSettings(
remoteDebuggingEnabled = false, remoteDebuggingEnabled = false,
testingModeEnabled = false, testingModeEnabled = false,
trackingProtectionPolicy = createTrackingProtectionPolicy(prefs) trackingProtectionPolicy = createTrackingProtectionPolicy(prefs),
historyTrackingDelegate = HistoryDelegate(historyStorage)
) )
GeckoEngine(context, defaultSettings) GeckoEngine(context, defaultSettings)
} }
@ -60,6 +63,12 @@ class Core(private val context: Context) {
} }
} }
/**
* The storage component to persist browsing history (with the exception of
* private sessions).
*/
val historyStorage by lazy { PlacesHistoryStorage(context) }
/** /**
* Constructs a [TrackingProtectionPolicy] based on current preferences. * Constructs a [TrackingProtectionPolicy] based on current preferences.
* *

View File

@ -13,6 +13,7 @@ import androidx.navigation.Navigation
import androidx.navigation.fragment.FragmentNavigator import androidx.navigation.fragment.FragmentNavigator
import mozilla.components.browser.domains.autocomplete.DomainAutocompleteProvider import mozilla.components.browser.domains.autocomplete.DomainAutocompleteProvider
import mozilla.components.browser.toolbar.BrowserToolbar import mozilla.components.browser.toolbar.BrowserToolbar
import mozilla.components.concept.storage.HistoryStorage
import mozilla.components.feature.toolbar.ToolbarAutocompleteFeature import mozilla.components.feature.toolbar.ToolbarAutocompleteFeature
import mozilla.components.feature.toolbar.ToolbarFeature import mozilla.components.feature.toolbar.ToolbarFeature
import org.mozilla.fenix.R import org.mozilla.fenix.R
@ -23,6 +24,7 @@ class ToolbarIntegration(
context: Context, context: Context,
toolbar: BrowserToolbar, toolbar: BrowserToolbar,
domainAutocompleteProvider: DomainAutocompleteProvider, domainAutocompleteProvider: DomainAutocompleteProvider,
historyStorage: HistoryStorage,
sessionId: String? = null sessionId: String? = null
) : LifecycleObserver { ) : LifecycleObserver {
init { init {
@ -50,6 +52,7 @@ class ToolbarIntegration(
ToolbarAutocompleteFeature(toolbar).apply { ToolbarAutocompleteFeature(toolbar).apply {
addDomainProvider(domainAutocompleteProvider) addDomainProvider(domainAutocompleteProvider)
addHistoryStorageProvider(historyStorage)
} }
} }

View File

@ -48,7 +48,9 @@ class SearchFragment : Fragment() {
ToolbarIntegration( ToolbarIntegration(
requireContext(), requireContext(),
toolbar, toolbar,
ShippedDomainsProvider().also { it.initialize(requireContext()) }) ShippedDomainsProvider().also { it.initialize(requireContext()) },
requireComponents.core.historyStorage
)
) )
awesomeBarFeature = AwesomeBarFeature(awesomeBar, toolbar, null, onEditComplete = ::userDidSearch) awesomeBarFeature = AwesomeBarFeature(awesomeBar, toolbar, null, onEditComplete = ::userDidSearch)