diff --git a/src/main/kotlin/com/machiav3lli/fdroid/ui/activities/MainActivityX.kt b/src/main/kotlin/com/machiav3lli/fdroid/ui/activities/MainActivityX.kt index 5aef8fef..cf3f10df 100644 --- a/src/main/kotlin/com/machiav3lli/fdroid/ui/activities/MainActivityX.kt +++ b/src/main/kotlin/com/machiav3lli/fdroid/ui/activities/MainActivityX.kt @@ -27,7 +27,7 @@ import com.machiav3lli.fdroid.ui.fragments.MainNavFragmentX import com.machiav3lli.fdroid.ui.fragments.Source import com.machiav3lli.fdroid.ui.viewmodels.MainActivityViewModelX import com.machiav3lli.fdroid.utility.extension.text.nullIfEmpty -import com.machiav3lli.fdroid.utility.isDynamicColorsTheme +import com.machiav3lli.fdroid.utility.setCustomTheme import com.machiav3lli.fdroid.utility.showBatteryOptimizationDialog import kotlinx.coroutines.launch import kotlin.properties.Delegates @@ -72,7 +72,7 @@ class MainActivityX : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { currentTheme = Preferences[Preferences.Key.Theme].getResId(resources.configuration) currentTab = Preferences[Preferences.Key.DefaultTab].getResId(resources.configuration) - if (!isDynamicColorsTheme) setTheme(currentTheme) + setCustomTheme() super.onCreate(savedInstanceState) binding = ActivityMainXBinding.inflate(layoutInflater) diff --git a/src/main/kotlin/com/machiav3lli/fdroid/ui/activities/PrefsActivityX.kt b/src/main/kotlin/com/machiav3lli/fdroid/ui/activities/PrefsActivityX.kt index 24872b5f..bbd1455a 100644 --- a/src/main/kotlin/com/machiav3lli/fdroid/ui/activities/PrefsActivityX.kt +++ b/src/main/kotlin/com/machiav3lli/fdroid/ui/activities/PrefsActivityX.kt @@ -16,7 +16,6 @@ import com.machiav3lli.fdroid.BuildConfig import com.machiav3lli.fdroid.ContextWrapperX import com.machiav3lli.fdroid.MainApplication import com.machiav3lli.fdroid.R -import com.machiav3lli.fdroid.content.Preferences import com.machiav3lli.fdroid.databinding.ActivityPrefsXBinding import com.machiav3lli.fdroid.installer.AppInstaller import com.machiav3lli.fdroid.service.Connection @@ -24,7 +23,7 @@ import com.machiav3lli.fdroid.service.SyncService import com.machiav3lli.fdroid.ui.fragments.MainNavFragmentX import com.machiav3lli.fdroid.ui.fragments.Source import com.machiav3lli.fdroid.utility.extension.text.nullIfEmpty -import com.machiav3lli.fdroid.utility.isDynamicColorsTheme +import com.machiav3lli.fdroid.utility.setCustomTheme import kotlinx.coroutines.launch // TODO clean up the bloat @@ -61,7 +60,7 @@ class PrefsActivityX : AppCompatActivity() { get() = (application as MainApplication).db override fun onCreate(savedInstanceState: Bundle?) { - if (!isDynamicColorsTheme) setTheme(Preferences[Preferences.Key.Theme].getResId(resources.configuration)) + setCustomTheme() super.onCreate(savedInstanceState) binding = ActivityPrefsXBinding.inflate(layoutInflater) diff --git a/src/main/kotlin/com/machiav3lli/fdroid/utility/Utils.kt b/src/main/kotlin/com/machiav3lli/fdroid/utility/Utils.kt index 83a1166d..06144ed7 100644 --- a/src/main/kotlin/com/machiav3lli/fdroid/utility/Utils.kt +++ b/src/main/kotlin/com/machiav3lli/fdroid/utility/Utils.kt @@ -1,5 +1,6 @@ package com.machiav3lli.fdroid.utility +import android.app.Activity import android.app.ActivityManager import android.app.ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND import android.app.ActivityManager.RunningAppProcessInfo.IMPORTANCE_VISIBLE @@ -39,6 +40,7 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextDecoration import androidx.core.text.HtmlCompat import androidx.core.text.util.LinkifyCompat +import androidx.core.view.WindowInsetsControllerCompat import androidx.fragment.app.FragmentManager import com.machiav3lli.fdroid.BuildConfig import com.machiav3lli.fdroid.PREFS_LANGUAGE_DEFAULT @@ -522,4 +524,13 @@ fun Spanned.toAnnotatedString(): AnnotatedString = buildAnnotatedString { ) } } +} + +fun Activity.setCustomTheme() { + if (!isDynamicColorsTheme) setTheme(Preferences[Preferences.Key.Theme].getResId(resources.configuration)) + else { + val currentNightMode = resources.configuration.uiMode and Configuration.UI_MODE_NIGHT_MASK + WindowInsetsControllerCompat(window, window.decorView) + .isAppearanceLightStatusBars = currentNightMode == Configuration.UI_MODE_NIGHT_NO + } } \ No newline at end of file