From af613962e550c1b9ab9931b12ee1c30f88c88ff6 Mon Sep 17 00:00:00 2001 From: ekager Date: Thu, 18 Apr 2019 21:40:07 -0700 Subject: [PATCH] Only set the engine's theme when it is instantiated --- app/src/main/java/org/mozilla/fenix/HomeActivity.kt | 1 - app/src/main/java/org/mozilla/fenix/components/Core.kt | 7 ++++--- .../main/java/org/mozilla/fenix/settings/ThemeFragment.kt | 3 +++ 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/HomeActivity.kt b/app/src/main/java/org/mozilla/fenix/HomeActivity.kt index 4cea389ca..48ae0d06a 100644 --- a/app/src/main/java/org/mozilla/fenix/HomeActivity.kt +++ b/app/src/main/java/org/mozilla/fenix/HomeActivity.kt @@ -65,7 +65,6 @@ open class HomeActivity : AppCompatActivity() { DefaultThemeManager.applyStatusBarTheme(window, themeManager, this) browsingModeManager = DefaultBrowsingModeManager(this) - components.core.setEnginePreferredColorScheme() setContentView(R.layout.activity_home) val appBarConfiguration = AppBarConfiguration.Builder(setOf(R.id.libraryFragment)).build() 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 eb3b53681..3867feea1 100644 --- a/app/src/main/java/org/mozilla/fenix/components/Core.kt +++ b/app/src/main/java/org/mozilla/fenix/components/Core.kt @@ -62,7 +62,8 @@ class Core(private val context: Context) { remoteDebuggingEnabled = Settings.getInstance(context).isRemoteDebuggingEnabled, testingModeEnabled = false, trackingProtectionPolicy = createTrackingProtectionPolicy(), - historyTrackingDelegate = HistoryDelegate(historyStorage) + historyTrackingDelegate = HistoryDelegate(historyStorage), + preferredColorScheme = getPreferredColorScheme() ) GeckoEngine(context, defaultSettings, runtime) @@ -153,11 +154,11 @@ class Core(private val context: Context) { /** * Sets Preferred Color scheme based on Dark/Light Theme Settings or Current Configuration */ - fun setEnginePreferredColorScheme() { + fun getPreferredColorScheme(): PreferredColorScheme { val inDark = (context.resources.configuration.uiMode and Configuration.UI_MODE_NIGHT_MASK) == Configuration.UI_MODE_NIGHT_YES - engine.settings.preferredColorScheme = when { + return when { Settings.getInstance(context).shouldUseDarkTheme -> PreferredColorScheme.Dark Settings.getInstance(context).shouldUseLightTheme -> PreferredColorScheme.Light inDark -> PreferredColorScheme.Dark diff --git a/app/src/main/java/org/mozilla/fenix/settings/ThemeFragment.kt b/app/src/main/java/org/mozilla/fenix/settings/ThemeFragment.kt index 717d01225..2dd0127e0 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/ThemeFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/ThemeFragment.kt @@ -100,6 +100,9 @@ class ThemeFragment : PreferenceFragmentCompat() { private fun setNewTheme(mode: Int) { AppCompatDelegate.setDefaultNightMode(mode) activity?.recreate() + with(requireComponents.core) { + engine.settings.preferredColorScheme = getPreferredColorScheme() + } requireComponents.useCases.sessionUseCases.reload.invoke() } }