From cfca683a14ddc06bd09ea320bb5710cdcf001c80 Mon Sep 17 00:00:00 2001 From: Tiger Oakes Date: Fri, 17 May 2019 09:45:43 -0400 Subject: [PATCH] Use UpdateTrackingProtectionUseCase mozilla-mobile/android-components#2746 --- .../mozilla/fenix/components/Components.kt | 2 +- .../org/mozilla/fenix/components/UseCases.kt | 8 ++++++++ .../settings/TrackingProtectionFragment.kt | 19 +++++-------------- .../fenix/components/TestComponents.kt | 2 +- 4 files changed, 15 insertions(+), 16 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/components/Components.kt b/app/src/main/java/org/mozilla/fenix/components/Components.kt index 81aa421ec..710cd09cc 100644 --- a/app/src/main/java/org/mozilla/fenix/components/Components.kt +++ b/app/src/main/java/org/mozilla/fenix/components/Components.kt @@ -16,7 +16,7 @@ class Components(private val context: Context) { val services by lazy { Services(backgroundServices.accountManager, useCases.tabsUseCases) } val core by lazy { Core(context) } val search by lazy { Search(context) } - val useCases by lazy { UseCases(context, core.sessionManager, search.searchEngineManager) } + val useCases by lazy { UseCases(context, core.sessionManager, core.engine.settings, search.searchEngineManager) } val utils by lazy { Utilities(context, core.sessionManager, useCases.sessionUseCases, useCases.searchUseCases) } val analytics by lazy { Analytics(context) } } diff --git a/app/src/main/java/org/mozilla/fenix/components/UseCases.kt b/app/src/main/java/org/mozilla/fenix/components/UseCases.kt index 46b643711..e49340d4a 100644 --- a/app/src/main/java/org/mozilla/fenix/components/UseCases.kt +++ b/app/src/main/java/org/mozilla/fenix/components/UseCases.kt @@ -7,8 +7,10 @@ package org.mozilla.fenix.components import android.content.Context import mozilla.components.browser.search.SearchEngineManager import mozilla.components.browser.session.SessionManager +import mozilla.components.concept.engine.Settings import mozilla.components.feature.search.SearchUseCases import mozilla.components.feature.session.SessionUseCases +import mozilla.components.feature.session.SettingsUseCases import mozilla.components.feature.tabs.TabsUseCases import org.mozilla.fenix.test.Mockable @@ -20,6 +22,7 @@ import org.mozilla.fenix.test.Mockable class UseCases( private val context: Context, private val sessionManager: SessionManager, + private val engineSettings: Settings, private val searchEngineManager: SearchEngineManager ) { /** @@ -36,4 +39,9 @@ class UseCases( * Use cases that provide search engine integration. */ val searchUseCases by lazy { SearchUseCases(context, searchEngineManager, sessionManager) } + + /** + * Use cases that provide settings management. + */ + val settingsUseCases by lazy { SettingsUseCases(engineSettings, sessionManager) } } diff --git a/app/src/main/java/org/mozilla/fenix/settings/TrackingProtectionFragment.kt b/app/src/main/java/org/mozilla/fenix/settings/TrackingProtectionFragment.kt index 3ad13ea4f..d4fe3f4bd 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/TrackingProtectionFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/TrackingProtectionFragment.kt @@ -12,7 +12,6 @@ import androidx.preference.PreferenceFragmentCompat import androidx.preference.SwitchPreference import org.mozilla.fenix.R import org.mozilla.fenix.exceptions.ExceptionDomains -import org.mozilla.fenix.ext.components import org.mozilla.fenix.ext.getPreferenceKey import org.mozilla.fenix.ext.requireComponents import org.mozilla.fenix.utils.Settings @@ -33,20 +32,12 @@ class TrackingProtectionFragment : PreferenceFragmentCompat() { val preferenceTP = findPreference(trackingProtectionKey) preferenceTP?.onPreferenceChangeListener = Preference.OnPreferenceChangeListener { _, newValue -> - Settings.getInstance(context!!).setTrackingProtection(newValue = newValue as Boolean) - with(requireComponents.core) { - val policy = - createTrackingProtectionPolicy(newValue) - engine.settings.trackingProtectionPolicy = policy - with(sessionManager) { - sessions.forEach { - if (newValue) - getEngineSession(it)?.enableTrackingProtection(policy) else - getEngineSession(it)?.disableTrackingProtection() - } - } + Settings.getInstance(requireContext()).setTrackingProtection(newValue = newValue as Boolean) + with(requireComponents) { + val policy = core.createTrackingProtectionPolicy(newValue) + useCases.settingsUseCases.updateTrackingProtection.invoke(policy) + useCases.sessionUseCases.reload.invoke() } - requireContext().components.useCases.sessionUseCases.reload.invoke() true } diff --git a/app/src/test/java/org/mozilla/fenix/components/TestComponents.kt b/app/src/test/java/org/mozilla/fenix/components/TestComponents.kt index 2cbe901c1..f4d9dcabd 100644 --- a/app/src/test/java/org/mozilla/fenix/components/TestComponents.kt +++ b/app/src/test/java/org/mozilla/fenix/components/TestComponents.kt @@ -10,7 +10,7 @@ class TestComponents(private val context: Context) : Components(context) { override val services by lazy { Services(backgroundServices.accountManager, useCases.tabsUseCases) } override val core by lazy { TestCore(context) } override val search by lazy { Search(context) } - override val useCases by lazy { UseCases(context, core.sessionManager, search.searchEngineManager) } + override val useCases by lazy { UseCases(context, core.sessionManager, core.engine.settings, search.searchEngineManager) } override val utils by lazy { Utilities( context,