From c2db07acf8bc2fb53a1755ec21792287cf0260bf Mon Sep 17 00:00:00 2001 From: Sebastian Kaspari Date: Fri, 30 Aug 2019 18:56:22 +0200 Subject: [PATCH] Add browser-state component. --- app/build.gradle | 1 + .../main/java/org/mozilla/fenix/components/Core.kt | 11 ++++++++++- buildSrc/src/main/java/Dependencies.kt | 1 + 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index 71f61a463..6b5de4769 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -361,6 +361,7 @@ dependencies { implementation Deps.mozilla_browser_menu implementation Deps.mozilla_browser_search implementation Deps.mozilla_browser_session + implementation Deps.mozilla_browser_state implementation Deps.mozilla_browser_storage_sync implementation Deps.mozilla_browser_toolbar diff --git a/app/src/main/java/org/mozilla/fenix/components/Core.kt b/app/src/main/java/org/mozilla/fenix/components/Core.kt index 94f6a9b38..21017a90e 100644 --- a/app/src/main/java/org/mozilla/fenix/components/Core.kt +++ b/app/src/main/java/org/mozilla/fenix/components/Core.kt @@ -16,6 +16,8 @@ import mozilla.components.browser.engine.gecko.fetch.GeckoViewFetchClient import mozilla.components.browser.icons.BrowserIcons import mozilla.components.browser.session.SessionManager import mozilla.components.browser.session.storage.SessionStorage +import mozilla.components.browser.state.state.BrowserState +import mozilla.components.browser.state.store.BrowserStore import mozilla.components.browser.storage.sync.PlacesBookmarksStorage import mozilla.components.browser.storage.sync.PlacesHistoryStorage import mozilla.components.concept.engine.DefaultSettings @@ -70,6 +72,13 @@ class Core(private val context: Context) { SessionStorage(context, engine = engine) } + /** + * The [BrowserStore] holds the global [BrowserState]. + */ + val store by lazy { + BrowserStore() + } + /** * The session manager component provides access to a centralized registry of * all browser sessions (i.e. tabs). It is initialized here to persist and restore @@ -77,7 +86,7 @@ class Core(private val context: Context) { * case all sessions/tabs are closed. */ val sessionManager by lazy { - SessionManager(engine).also { sessionManager -> + SessionManager(engine, store).also { sessionManager -> // Install the "icons" WebExtension to automatically load icons for every visited website. icons.install(engine, sessionManager) diff --git a/buildSrc/src/main/java/Dependencies.kt b/buildSrc/src/main/java/Dependencies.kt index 3c8ff4ad4..2fa27fa4e 100644 --- a/buildSrc/src/main/java/Dependencies.kt +++ b/buildSrc/src/main/java/Dependencies.kt @@ -102,6 +102,7 @@ object Deps { const val mozilla_browser_icons = "org.mozilla.components:browser-icons:${Versions.mozilla_android_components}" const val mozilla_browser_search = "org.mozilla.components:browser-search:${Versions.mozilla_android_components}" const val mozilla_browser_session = "org.mozilla.components:browser-session:${Versions.mozilla_android_components}" + const val mozilla_browser_state = "org.mozilla.components:browser-state:${Versions.mozilla_android_components}" const val mozilla_browser_tabstray = "org.mozilla.components:browser-tabstray:${Versions.mozilla_android_components}" const val mozilla_browser_toolbar = "org.mozilla.components:browser-toolbar:${Versions.mozilla_android_components}" const val mozilla_browser_menu = "org.mozilla.components:browser-menu:${Versions.mozilla_android_components}"