Fixed Buggy Navigation bar color on Just Black theme
This commit is contained in:
parent
5589fab2c6
commit
6205befb25
6 changed files with 50 additions and 111 deletions
|
@ -27,7 +27,6 @@ class WhatsNewActivity : AbsThemeActivity() {
|
|||
super.onCreate(savedInstanceState)
|
||||
val binding = ActivityWhatsNewBinding.inflate(layoutInflater)
|
||||
setContentView(binding.root)
|
||||
setLightStatusBarAuto(surfaceColor())
|
||||
setTaskDescriptionColorAuto()
|
||||
binding.toolbar.setNavigationOnClickListener { onBackPressed() }
|
||||
ToolbarContentTintHelper.colorBackButton(binding.toolbar)
|
||||
|
|
|
@ -31,7 +31,7 @@ import androidx.core.view.isGone
|
|||
import androidx.core.view.isVisible
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.fragment.app.commit
|
||||
import code.name.monkey.appthemehelper.util.ColorUtil
|
||||
import code.name.monkey.appthemehelper.util.VersionUtils
|
||||
import code.name.monkey.retromusic.R
|
||||
import code.name.monkey.retromusic.RetroBottomSheetBehavior
|
||||
import code.name.monkey.retromusic.databinding.SlidingMusicPanelLayoutBinding
|
||||
|
@ -199,6 +199,7 @@ abstract class AbsSlidingMusicPanelActivity : AbsMusicServiceActivity() {
|
|||
}
|
||||
|
||||
private fun animateNavigationBarColor(color: Int) {
|
||||
if (VersionUtils.hasOreo()) return
|
||||
navigationBarColorAnimator?.cancel()
|
||||
navigationBarColorAnimator = ValueAnimator
|
||||
.ofArgb(window.navigationBarColor, color).apply {
|
||||
|
@ -217,8 +218,8 @@ abstract class AbsSlidingMusicPanelActivity : AbsMusicServiceActivity() {
|
|||
setMiniPlayerAlphaProgress(0F)
|
||||
// restore values
|
||||
animateNavigationBarColor(surfaceColor())
|
||||
setLightStatusBarAuto(surfaceColor())
|
||||
setLightNavigationAuto()
|
||||
setLightStatusBarAuto()
|
||||
setLightNavigationBarAuto()
|
||||
setTaskDescriptionColor(taskColor)
|
||||
}
|
||||
|
||||
|
@ -291,7 +292,7 @@ abstract class AbsSlidingMusicPanelActivity : AbsMusicServiceActivity() {
|
|||
if (panelState == STATE_EXPANDED) {
|
||||
navigationBarColor = surfaceColor()
|
||||
setTaskDescColor(paletteColor)
|
||||
val isColorLight = ColorUtil.isColorLight(paletteColor)
|
||||
val isColorLight = paletteColor.isColorLight
|
||||
if (PreferenceUtil.isAdaptiveColor && (nowPlayingScreen == Normal || nowPlayingScreen == Flat)) {
|
||||
setLightNavigationBar(true)
|
||||
setLightStatusBar(isColorLight)
|
||||
|
@ -314,13 +315,6 @@ abstract class AbsSlidingMusicPanelActivity : AbsMusicServiceActivity() {
|
|||
setLightStatusBar(false)
|
||||
} else if (nowPlayingScreen == Fit) {
|
||||
setLightStatusBar(false)
|
||||
} else {
|
||||
setLightStatusBar(
|
||||
ColorUtil.isColorLight(
|
||||
surfaceColor()
|
||||
)
|
||||
)
|
||||
setLightNavigationBar(true)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -24,6 +24,7 @@ import androidx.appcompat.app.AppCompatDelegate.setDefaultNightMode
|
|||
import androidx.core.os.ConfigurationCompat
|
||||
import code.name.monkey.appthemehelper.common.ATHToolbarActivity
|
||||
import code.name.monkey.retromusic.LanguageContextWrapper
|
||||
import code.name.monkey.retromusic.R
|
||||
import code.name.monkey.retromusic.extensions.*
|
||||
import code.name.monkey.retromusic.util.PreferenceUtil
|
||||
import code.name.monkey.retromusic.util.theme.ThemeManager
|
||||
|
@ -42,7 +43,7 @@ abstract class AbsThemeActivity : ATHToolbarActivity(), Runnable {
|
|||
setImmersiveFullscreen()
|
||||
registerSystemUiVisibility()
|
||||
toggleScreenOn()
|
||||
setLightNavigationAuto()
|
||||
setLightNavigationBarAuto()
|
||||
setLightStatusBarAuto(surfaceColor())
|
||||
}
|
||||
|
||||
|
@ -57,6 +58,7 @@ abstract class AbsThemeActivity : ATHToolbarActivity(), Runnable {
|
|||
com.google.android.material.R.style.ThemeOverlay_Material3_DynamicColors_DayNight
|
||||
)
|
||||
}
|
||||
setTheme(R.style.FontThemeOverlay)
|
||||
}
|
||||
|
||||
override fun onWindowFocusChanged(hasFocus: Boolean) {
|
||||
|
|
|
@ -4,6 +4,7 @@ import android.app.ActivityManager
|
|||
import android.graphics.Color
|
||||
import android.os.Build
|
||||
import android.view.View
|
||||
import android.view.View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR
|
||||
import android.view.WindowManager
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.core.view.WindowCompat
|
||||
|
@ -11,7 +12,6 @@ import androidx.core.view.WindowInsetsCompat
|
|||
import androidx.core.view.WindowInsetsControllerCompat
|
||||
import androidx.core.view.isGone
|
||||
import androidx.fragment.app.FragmentActivity
|
||||
import code.name.monkey.appthemehelper.ATH
|
||||
import code.name.monkey.appthemehelper.util.ColorUtil
|
||||
import code.name.monkey.appthemehelper.util.VersionUtils
|
||||
import code.name.monkey.retromusic.R
|
||||
|
@ -57,19 +57,19 @@ private fun AppCompatActivity.hideStatusBar(fullscreen: Boolean) {
|
|||
}
|
||||
|
||||
fun AppCompatActivity.setDrawBehindSystemBars() {
|
||||
WindowCompat.setDecorFitsSystemWindows(window, false)
|
||||
if (VersionUtils.hasOreo()) {
|
||||
WindowCompat.setDecorFitsSystemWindows(window, false)
|
||||
window.navigationBarColor = Color.TRANSPARENT
|
||||
window.statusBarColor = Color.TRANSPARENT
|
||||
if (VersionUtils.hasQ()) {
|
||||
window.isNavigationBarContrastEnforced = false
|
||||
}
|
||||
window.navigationBarColor = Color.TRANSPARENT
|
||||
window.statusBarColor = Color.TRANSPARENT
|
||||
} else {
|
||||
setNavigationBarColorPreOreo(surfaceColor())
|
||||
if (VersionUtils.hasMarshmallow()) {
|
||||
setStatusBarColor(Color.TRANSPARENT)
|
||||
} else {
|
||||
setStatusBarColor(surfaceColor())
|
||||
setStatusBarColor(Color.BLACK)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -96,24 +96,49 @@ fun AppCompatActivity.setTaskDescriptionColorAuto() {
|
|||
setTaskDescriptionColor(surfaceColor())
|
||||
}
|
||||
|
||||
fun AppCompatActivity.setLightNavigationAuto() {
|
||||
ATH.setLightNavigationBarAuto(this, surfaceColor())
|
||||
@Suppress("Deprecation")
|
||||
fun AppCompatActivity.setLightStatusBar(enabled: Boolean) {
|
||||
if (VersionUtils.hasMarshmallow()) {
|
||||
val decorView = window.decorView
|
||||
val systemUiVisibility = decorView.systemUiVisibility
|
||||
if (enabled) {
|
||||
decorView.systemUiVisibility =
|
||||
systemUiVisibility or View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
|
||||
} else {
|
||||
decorView.systemUiVisibility =
|
||||
systemUiVisibility and View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR.inv()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun AppCompatActivity.setLightStatusBar(enabled: Boolean) {
|
||||
ATH.setLightStatusBar(this, enabled)
|
||||
fun AppCompatActivity.setLightStatusBarAuto() {
|
||||
setLightStatusBar(surfaceColor().isColorLight)
|
||||
}
|
||||
|
||||
fun AppCompatActivity.setLightStatusBarAuto(bgColor: Int) {
|
||||
setLightStatusBar(ColorUtil.isColorLight(bgColor))
|
||||
setLightStatusBar(bgColor.isColorLight)
|
||||
}
|
||||
|
||||
@Suppress("Deprecation")
|
||||
fun AppCompatActivity.setLightNavigationBar(enabled: Boolean) {
|
||||
ATH.setLightNavigationBar(this, enabled)
|
||||
if (VersionUtils.hasOreo()) {
|
||||
val decorView = window.decorView
|
||||
var systemUiVisibility = decorView.systemUiVisibility
|
||||
systemUiVisibility = if (enabled) {
|
||||
systemUiVisibility or SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR
|
||||
} else {
|
||||
systemUiVisibility and SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR.inv()
|
||||
}
|
||||
decorView.systemUiVisibility = systemUiVisibility
|
||||
}
|
||||
}
|
||||
|
||||
fun AppCompatActivity.setLightNavigationBarAuto() {
|
||||
setLightNavigationBar(surfaceColor().isColorLight)
|
||||
}
|
||||
|
||||
fun AppCompatActivity.setLightNavigationBarAuto(bgColor: Int) {
|
||||
setLightNavigationBar(ColorUtil.isColorLight(bgColor))
|
||||
setLightNavigationBar(bgColor.isColorLight)
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue