diff --git a/src/main/kotlin/com/machiav3lli/fdroid/MainApplication.kt b/src/main/kotlin/com/machiav3lli/fdroid/MainApplication.kt index 99df95e8..83279399 100644 --- a/src/main/kotlin/com/machiav3lli/fdroid/MainApplication.kt +++ b/src/main/kotlin/com/machiav3lli/fdroid/MainApplication.kt @@ -13,6 +13,7 @@ import android.content.IntentFilter import android.os.BatteryManager import coil.ImageLoader import coil.ImageLoaderFactory +import com.google.android.material.color.DynamicColors import com.machiav3lli.fdroid.content.Cache import com.machiav3lli.fdroid.content.Preferences import com.machiav3lli.fdroid.database.DatabaseX @@ -51,6 +52,7 @@ class MainApplication : Application(), ImageLoaderFactory { override fun onCreate() { super.onCreate() + DynamicColors.applyToActivitiesIfAvailable(this) appRef = WeakReference(this) db = DatabaseX.getInstance(applicationContext) 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 d078cddf..5aef8fef 100644 --- a/src/main/kotlin/com/machiav3lli/fdroid/ui/activities/MainActivityX.kt +++ b/src/main/kotlin/com/machiav3lli/fdroid/ui/activities/MainActivityX.kt @@ -27,6 +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.showBatteryOptimizationDialog import kotlinx.coroutines.launch import kotlin.properties.Delegates @@ -71,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) - setTheme(currentTheme) + if (!isDynamicColorsTheme) setTheme(currentTheme) 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 ac9e6dbe..24872b5f 100644 --- a/src/main/kotlin/com/machiav3lli/fdroid/ui/activities/PrefsActivityX.kt +++ b/src/main/kotlin/com/machiav3lli/fdroid/ui/activities/PrefsActivityX.kt @@ -24,6 +24,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 kotlinx.coroutines.launch // TODO clean up the bloat @@ -60,7 +61,7 @@ class PrefsActivityX : AppCompatActivity() { get() = (application as MainApplication).db override fun onCreate(savedInstanceState: Bundle?) { - setTheme(Preferences[Preferences.Key.Theme].getResId(resources.configuration)) + if (!isDynamicColorsTheme) setTheme(Preferences[Preferences.Key.Theme].getResId(resources.configuration)) super.onCreate(savedInstanceState) binding = ActivityPrefsXBinding.inflate(layoutInflater)