Add: Dynamic theme to xml-layouts

This commit is contained in:
machiav3lli 2022-07-10 01:00:54 +02:00
parent 5ecb48871d
commit d12dcf19ef
3 changed files with 6 additions and 2 deletions

View File

@ -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)

View File

@ -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)

View File

@ -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)