diff --git a/app/src/main/java/eu/kanade/tachiyomi/util/system/ThemeUtil.kt b/app/src/main/java/eu/kanade/tachiyomi/util/system/ThemeUtil.kt index e4483fb2be..42279d327c 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/util/system/ThemeUtil.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/util/system/ThemeUtil.kt @@ -6,6 +6,7 @@ import android.graphics.Color import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatDelegate import androidx.core.content.edit +import androidx.core.view.WindowInsetsControllerCompat import androidx.preference.PreferenceManager import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.data.preference.PreferenceKeys @@ -57,12 +58,13 @@ object ThemeUtil { fun AppCompatActivity.setThemeByPref(preferences: PreferencesHelper) { setTheme(getPrefTheme(preferences).styleRes) + val wic = WindowInsetsControllerCompat(window, window.decorView) + wic.isAppearanceLightStatusBars = preferences.nightMode().get() == AppCompatDelegate.MODE_NIGHT_NO + wic.isAppearanceLightNavigationBars = preferences.nightMode().get() == AppCompatDelegate.MODE_NIGHT_NO } fun AppCompatActivity.getThemeWithExtras(theme: Resources.Theme, preferences: PreferencesHelper, oldTheme: Resources.Theme?): Resources.Theme { - val useAmoled = - (isInNightMode() || preferences.nightMode().get() == AppCompatDelegate.MODE_NIGHT_YES) && - preferences.themeDarkAmoled().get() + val useAmoled = isDarkMode(preferences) && preferences.themeDarkAmoled().get() if (oldTheme != null && useAmoled) { val array = oldTheme.obtainStyledAttributes(intArrayOf(R.attr.background)) val bg = array.getColor(0, 0) @@ -76,13 +78,14 @@ fun AppCompatActivity.getThemeWithExtras(theme: Resources.Theme, preferences: Pr return theme } +fun Context.isDarkMode(preferences: PreferencesHelper) = + applicationContext.isInNightMode() || preferences.nightMode().get() == AppCompatDelegate.MODE_NIGHT_YES + fun Context.getPrefTheme(preferences: PreferencesHelper): Themes { // Using a try catch in case I start to remove themes return try { ( - if ((applicationContext.isInNightMode() || preferences.nightMode().get() == AppCompatDelegate.MODE_NIGHT_YES) && - preferences.nightMode().get() != AppCompatDelegate.MODE_NIGHT_NO - ) { + if (isDarkMode(preferences) && preferences.nightMode().get() != AppCompatDelegate.MODE_NIGHT_NO) { preferences.darkTheme() } else { preferences.lightTheme() diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index 92bd844d1d..5798520b71 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -224,8 +224,8 @@ @style/Theme.Tachiyomi @android:color/transparent @android:color/transparent - true - true + false + false