From ade119223917927924a4d74668c1aad81c6d292b Mon Sep 17 00:00:00 2001 From: Lina Cambridge Date: Tue, 30 Oct 2018 19:50:34 -0700 Subject: [PATCH] Integrate the history tracking and storage components. --- app/build.gradle | 4 +++- .../main/java/org/mozilla/reference/browser/Components.kt | 4 ++++ .../mozilla/reference/browser/browser/BrowserFragment.kt | 6 ++++++ buildSrc/src/main/java/Dependencies.kt | 3 +++ 4 files changed, 16 insertions(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index 06528e097..d0deb54e2 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -76,6 +76,7 @@ dependencies { implementation Deps.mozilla_concept_engine implementation Deps.mozilla_concept_tabstray implementation Deps.mozilla_concept_toolbar + implementation Deps.mozilla_concept_storage implementation Deps.mozilla_browser_domains implementation Deps.mozilla_browser_search @@ -83,7 +84,7 @@ dependencies { implementation Deps.mozilla_browser_tabstray implementation Deps.mozilla_browser_toolbar implementation Deps.mozilla_browser_menu - implementation Deps.mozilla_browser_session + implementation Deps.mozilla_browser_storage_memory implementation Deps.mozilla_feature_intent implementation Deps.mozilla_feature_search @@ -91,6 +92,7 @@ dependencies { implementation Deps.mozilla_feature_toolbar implementation Deps.mozilla_feature_tabs implementation Deps.mozilla_feature_downloads + implementation Deps.mozilla_feature_storage implementation Deps.mozilla_ui_autocomplete diff --git a/app/src/main/java/org/mozilla/reference/browser/Components.kt b/app/src/main/java/org/mozilla/reference/browser/Components.kt index 196117d29..f8879dd9c 100644 --- a/app/src/main/java/org/mozilla/reference/browser/Components.kt +++ b/app/src/main/java/org/mozilla/reference/browser/Components.kt @@ -15,6 +15,7 @@ import mozilla.components.browser.search.SearchEngineManager import mozilla.components.browser.session.Session import mozilla.components.browser.session.SessionManager import mozilla.components.browser.session.storage.DefaultSessionStorage +import mozilla.components.browser.storage.memory.InMemoryHistoryStorage import mozilla.components.concept.engine.DefaultSettings import mozilla.components.concept.engine.Engine import mozilla.components.feature.intent.IntentProcessor @@ -37,6 +38,9 @@ class Components( EngineProvider.getEngine(applicationContext, defaultSettings) } + // Storage + val historyStorage by lazy { InMemoryHistoryStorage() } + // Session val sessionStorage by lazy { DefaultSessionStorage(applicationContext) } diff --git a/app/src/main/java/org/mozilla/reference/browser/browser/BrowserFragment.kt b/app/src/main/java/org/mozilla/reference/browser/browser/BrowserFragment.kt index c6a15bb10..c44973e22 100644 --- a/app/src/main/java/org/mozilla/reference/browser/browser/BrowserFragment.kt +++ b/app/src/main/java/org/mozilla/reference/browser/browser/BrowserFragment.kt @@ -15,6 +15,7 @@ import kotlinx.android.synthetic.main.fragment_browser.* import mozilla.components.feature.downloads.DownloadsFeature import mozilla.components.feature.downloads.SimpleDownloadDialogFragment.DownloadDialogListener import mozilla.components.feature.session.SessionFeature +import mozilla.components.feature.storage.HistoryTrackingFeature import mozilla.components.feature.tabs.toolbar.TabsToolbarFeature import mozilla.components.support.ktx.android.content.isPermissionGranted import org.mozilla.reference.browser.BackHandler @@ -26,6 +27,7 @@ class BrowserFragment : Fragment(), BackHandler, DownloadDialogListener { private lateinit var sessionFeature: SessionFeature private lateinit var tabsToolbarFeature: TabsToolbarFeature private lateinit var downloadsFeature: DownloadsFeature + private lateinit var historyTrackingFeature: HistoryTrackingFeature override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { return inflater.inflate(R.layout.fragment_browser, container, false) @@ -36,6 +38,10 @@ class BrowserFragment : Fragment(), BackHandler, DownloadDialogListener { val sessionId = arguments?.getString(SESSION_ID) + historyTrackingFeature = HistoryTrackingFeature( + requireComponents.engine, + requireComponents.historyStorage) + sessionFeature = SessionFeature( requireComponents.sessionManager, requireComponents.sessionUseCases, diff --git a/buildSrc/src/main/java/Dependencies.kt b/buildSrc/src/main/java/Dependencies.kt index 37468aed7..74224a5a3 100644 --- a/buildSrc/src/main/java/Dependencies.kt +++ b/buildSrc/src/main/java/Dependencies.kt @@ -28,6 +28,7 @@ object Deps { const val mozilla_concept_engine = "org.mozilla.components:concept-engine:${Versions.mozilla_android_components}" const val mozilla_concept_tabstray = "org.mozilla.components:concept-tabstray:${Versions.mozilla_android_components}" const val mozilla_concept_toolbar = "org.mozilla.components:concept-toolbar:${Versions.mozilla_android_components}" + const val mozilla_concept_storage = "org.mozilla.components:concept-storage:${Versions.mozilla_android_components}" const val mozilla_browser_engine_system = "org.mozilla.components:browser-engine-system:${Versions.mozilla_android_components}" const val mozilla_browser_engine_gecko = "org.mozilla.components:browser-engine-gecko:${Versions.mozilla_android_components}" const val mozilla_browser_engine_gecko_beta = "org.mozilla.components:browser-engine-gecko-beta:${Versions.mozilla_android_components}" @@ -39,12 +40,14 @@ object Deps { 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}" const val mozilla_browser_errorpages = "org.mozilla.components:browser-errorpages:${Versions.mozilla_android_components}" + const val mozilla_browser_storage_memory = "org.mozilla.components:browser-storage-memory:${Versions.mozilla_android_components}" const val mozilla_feature_intent = "org.mozilla.components:feature-intent:${Versions.mozilla_android_components}" const val mozilla_feature_search = "org.mozilla.components:feature-search:${Versions.mozilla_android_components}" const val mozilla_feature_session = "org.mozilla.components:feature-session:${Versions.mozilla_android_components}" const val mozilla_feature_toolbar = "org.mozilla.components:feature-toolbar:${Versions.mozilla_android_components}" const val mozilla_feature_tabs = "org.mozilla.components:feature-tabs:${Versions.mozilla_android_components}" const val mozilla_feature_downloads = "org.mozilla.components:feature-downloads:${Versions.mozilla_android_components}" + const val mozilla_feature_storage = "org.mozilla.components:feature-storage:${Versions.mozilla_android_components}" const val mozilla_ui_autocomplete = "org.mozilla.components:ui-autocomplete:${Versions.mozilla_android_components}" const val mozilla_service_firefox_accounts = "org.mozilla.components:service-firefox-accounts:${Versions.mozilla_android_components}" const val mozilla_support_utils = "org.mozilla.components:support-utils:${Versions.mozilla_android_components}"