Closes #438: Adds dynamic nav bar color
parent
616af429dd
commit
d543d776b1
|
@ -54,14 +54,25 @@ class DefaultThemeManager : ThemeManager {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Handles status bar theme change since the window does not dynamically recreate
|
// 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
|
window.statusBarColor = ContextCompat
|
||||||
.getColor(context, DefaultThemeManager
|
.getColor(context, DefaultThemeManager
|
||||||
.resolveAttribute(android.R.attr.statusBarColor, context))
|
.resolveAttribute(android.R.attr.statusBarColor, context))
|
||||||
|
|
||||||
window.navigationBarColor = ContextCompat
|
if (onHomeScreen) {
|
||||||
.getColor(context, DefaultThemeManager
|
window.navigationBarColor = ContextCompat
|
||||||
.resolveAttribute(android.R.attr.navigationBarColor, context))
|
.getColor(context, DefaultThemeManager
|
||||||
|
.resolveAttribute(R.attr.navigationBarColorHome, context))
|
||||||
|
} else {
|
||||||
|
window.navigationBarColor = ContextCompat
|
||||||
|
.getColor(context, DefaultThemeManager
|
||||||
|
.resolveAttribute(R.attr.navigationBarColorBrowser, context))
|
||||||
|
}
|
||||||
|
|
||||||
when (themeManager.currentTheme) {
|
when (themeManager.currentTheme) {
|
||||||
ThemeManager.Theme.Light -> {
|
ThemeManager.Theme.Light -> {
|
||||||
|
|
|
@ -32,6 +32,7 @@ import mozilla.components.feature.session.SessionUseCases
|
||||||
import mozilla.components.support.base.feature.BackHandler
|
import mozilla.components.support.base.feature.BackHandler
|
||||||
import mozilla.components.support.base.feature.ViewBoundFeatureWrapper
|
import mozilla.components.support.base.feature.ViewBoundFeatureWrapper
|
||||||
import org.mozilla.fenix.DefaultThemeManager
|
import org.mozilla.fenix.DefaultThemeManager
|
||||||
|
import org.mozilla.fenix.HomeActivity
|
||||||
import org.mozilla.fenix.R
|
import org.mozilla.fenix.R
|
||||||
import org.mozilla.fenix.components.FindInPageIntegration
|
import org.mozilla.fenix.components.FindInPageIntegration
|
||||||
import org.mozilla.fenix.ext.requireComponents
|
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
|
return view
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -20,6 +20,7 @@ import kotlinx.android.synthetic.main.fragment_home.view.*
|
||||||
import kotlinx.android.synthetic.main.tab_list_header.view.*
|
import kotlinx.android.synthetic.main.tab_list_header.view.*
|
||||||
import mozilla.components.browser.session.Session
|
import mozilla.components.browser.session.Session
|
||||||
import mozilla.components.browser.session.SessionManager
|
import mozilla.components.browser.session.SessionManager
|
||||||
|
import org.mozilla.fenix.DefaultThemeManager
|
||||||
import org.mozilla.fenix.HomeActivity
|
import org.mozilla.fenix.HomeActivity
|
||||||
import org.mozilla.fenix.R
|
import org.mozilla.fenix.R
|
||||||
import org.mozilla.fenix.ext.increaseTapArea
|
import org.mozilla.fenix.ext.increaseTapArea
|
||||||
|
@ -49,6 +50,8 @@ class HomeFragment : Fragment() {
|
||||||
TabsComponent(view.homeLayout, bus, TabsState(requireComponents.core.sessionManager.sessions))
|
TabsComponent(view.homeLayout, bus, TabsState(requireComponents.core.sessionManager.sessions))
|
||||||
SessionsComponent(view.homeLayout, bus)
|
SessionsComponent(view.homeLayout, bus)
|
||||||
ActionBusFactory.get(this).logMergedObservables()
|
ActionBusFactory.get(this).logMergedObservables()
|
||||||
|
val activity = activity as HomeActivity
|
||||||
|
DefaultThemeManager.applyStatusBarTheme(activity.window, activity.themeManager, activity)
|
||||||
return view
|
return view
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -21,6 +21,7 @@
|
||||||
<attr name="menuButtonTint" format="reference"/>
|
<attr name="menuButtonTint" format="reference"/>
|
||||||
<attr name="toolbarWrapperBackground" format="reference"/>
|
<attr name="toolbarWrapperBackground" format="reference"/>
|
||||||
<attr name="toolbarTextColor" format="reference"/>
|
<attr name="toolbarTextColor" format="reference"/>
|
||||||
|
<attr name="navigationBarColorHome" format="reference"/>
|
||||||
|
|
||||||
<!-- Search fragment -->
|
<!-- Search fragment -->
|
||||||
<attr name="searchBackground" format="reference"/>
|
<attr name="searchBackground" format="reference"/>
|
||||||
|
@ -32,4 +33,5 @@
|
||||||
<attr name="browserToolbarBackground" format="reference"/>
|
<attr name="browserToolbarBackground" format="reference"/>
|
||||||
<attr name="browserToolbarIcons" format="reference"/>
|
<attr name="browserToolbarIcons" format="reference"/>
|
||||||
<attr name="browserToolbarHomeIcon" format="reference"/>
|
<attr name="browserToolbarHomeIcon" format="reference"/>
|
||||||
|
<attr name="navigationBarColorBrowser" format="reference"/>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -10,7 +10,8 @@
|
||||||
<item name="android:colorPrimary">@color/off_white</item>
|
<item name="android:colorPrimary">@color/off_white</item>
|
||||||
|
|
||||||
<!-- Style the navigation bar -->
|
<!-- Style the navigation bar -->
|
||||||
<item name="android:navigationBarColor">@android:color/transparent</item>
|
<item name="navigationBarColorHome">@android:color/transparent</item>
|
||||||
|
<item name="navigationBarColorBrowser">@android:color/transparent</item>
|
||||||
|
|
||||||
<!-- Home fragment colors -->
|
<!-- Home fragment colors -->
|
||||||
<item name="homeBackgroundTopGradient">@color/off_white</item>
|
<item name="homeBackgroundTopGradient">@color/off_white</item>
|
||||||
|
@ -48,7 +49,8 @@
|
||||||
<item name="android:colorPrimary">@color/private_browsing_primary</item>
|
<item name="android:colorPrimary">@color/private_browsing_primary</item>
|
||||||
|
|
||||||
<!-- Style the navigation bar -->
|
<!-- Style the navigation bar -->
|
||||||
<item name="android:navigationBarColor">@color/private_browsing_top_gradient</item>
|
<item name="navigationBarColorHome">@color/private_browsing_bottom_gradient</item>
|
||||||
|
<item name="navigationBarColorBrowser">@color/private_browsing_top_gradient</item>
|
||||||
|
|
||||||
<!-- Home fragment colors -->
|
<!-- Home fragment colors -->
|
||||||
<item name="homeBackgroundTopGradient">@color/private_browsing_top_gradient</item>
|
<item name="homeBackgroundTopGradient">@color/private_browsing_top_gradient</item>
|
||||||
|
|
Loading…
Reference in New Issue