From d543d776b1240283585363fe470ca22c4538806f Mon Sep 17 00:00:00 2001 From: Sawyer Blatz Date: Tue, 12 Feb 2019 07:51:42 -0800 Subject: [PATCH] Closes #438: Adds dynamic nav bar color --- .../java/org/mozilla/fenix/ThemeManager.kt | 19 +++++++++++++++---- .../mozilla/fenix/browser/BrowserFragment.kt | 4 ++++ .../org/mozilla/fenix/home/HomeFragment.kt | 3 +++ app/src/main/res/values/attrs.xml | 2 ++ app/src/main/res/values/styles.xml | 6 ++++-- 5 files changed, 28 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/ThemeManager.kt b/app/src/main/java/org/mozilla/fenix/ThemeManager.kt index b94d6c565..ded8ad4fa 100644 --- a/app/src/main/java/org/mozilla/fenix/ThemeManager.kt +++ b/app/src/main/java/org/mozilla/fenix/ThemeManager.kt @@ -54,14 +54,25 @@ class DefaultThemeManager : ThemeManager { } // Handles status bar theme change since the window does not dynamically recreate - fun applyStatusBarTheme(window: Window, themeManager: ThemeManager, context: Context) { + fun applyStatusBarTheme( + window: Window, + themeManager: ThemeManager, + context: Context, + onHomeScreen: Boolean = true + ) { window.statusBarColor = ContextCompat .getColor(context, DefaultThemeManager .resolveAttribute(android.R.attr.statusBarColor, context)) - window.navigationBarColor = ContextCompat - .getColor(context, DefaultThemeManager - .resolveAttribute(android.R.attr.navigationBarColor, context)) + if (onHomeScreen) { + window.navigationBarColor = ContextCompat + .getColor(context, DefaultThemeManager + .resolveAttribute(R.attr.navigationBarColorHome, context)) + } else { + window.navigationBarColor = ContextCompat + .getColor(context, DefaultThemeManager + .resolveAttribute(R.attr.navigationBarColorBrowser, context)) + } when (themeManager.currentTheme) { ThemeManager.Theme.Light -> { diff --git a/app/src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt b/app/src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt index 91a28af64..aa2acdf3f 100644 --- a/app/src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt @@ -32,6 +32,7 @@ import mozilla.components.feature.session.SessionUseCases import mozilla.components.support.base.feature.BackHandler import mozilla.components.support.base.feature.ViewBoundFeatureWrapper import org.mozilla.fenix.DefaultThemeManager +import org.mozilla.fenix.HomeActivity import org.mozilla.fenix.R import org.mozilla.fenix.components.FindInPageIntegration import org.mozilla.fenix.ext.requireComponents @@ -89,6 +90,9 @@ class BrowserFragment : Fragment(), BackHandler { } } + val activity = activity as HomeActivity + DefaultThemeManager.applyStatusBarTheme(activity.window, activity.themeManager, activity, false) + return view } diff --git a/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt b/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt index 86c927488..aeea69fc6 100644 --- a/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt @@ -20,6 +20,7 @@ import kotlinx.android.synthetic.main.fragment_home.view.* import kotlinx.android.synthetic.main.tab_list_header.view.* import mozilla.components.browser.session.Session import mozilla.components.browser.session.SessionManager +import org.mozilla.fenix.DefaultThemeManager import org.mozilla.fenix.HomeActivity import org.mozilla.fenix.R import org.mozilla.fenix.ext.increaseTapArea @@ -49,6 +50,8 @@ class HomeFragment : Fragment() { TabsComponent(view.homeLayout, bus, TabsState(requireComponents.core.sessionManager.sessions)) SessionsComponent(view.homeLayout, bus) ActionBusFactory.get(this).logMergedObservables() + val activity = activity as HomeActivity + DefaultThemeManager.applyStatusBarTheme(activity.window, activity.themeManager, activity) return view } diff --git a/app/src/main/res/values/attrs.xml b/app/src/main/res/values/attrs.xml index 00219fa07..afa6800d1 100644 --- a/app/src/main/res/values/attrs.xml +++ b/app/src/main/res/values/attrs.xml @@ -21,6 +21,7 @@ + @@ -32,4 +33,5 @@ + diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index bd4fa59e8..498fe0677 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -10,7 +10,8 @@ @color/off_white - @android:color/transparent + @android:color/transparent + @android:color/transparent @color/off_white @@ -48,7 +49,8 @@ @color/private_browsing_primary - @color/private_browsing_top_gradient + @color/private_browsing_bottom_gradient + @color/private_browsing_top_gradient @color/private_browsing_top_gradient