fix(theme): set correct surface color when using dynamic colors or amoled theme
Surface colors have changed in material components 1.11.0 Closes #673
This commit is contained in:
parent
c30b76d4f1
commit
0a1582f47b
4 changed files with 20 additions and 3 deletions
|
@ -10,9 +10,11 @@ import coil.decode.SvgDecoder
|
||||||
import coil.disk.DiskCache
|
import coil.disk.DiskCache
|
||||||
import coil.request.CachePolicy
|
import coil.request.CachePolicy
|
||||||
import com.google.android.material.color.DynamicColors
|
import com.google.android.material.color.DynamicColors
|
||||||
|
import com.google.android.material.color.DynamicColorsOptions
|
||||||
import dagger.hilt.android.HiltAndroidApp
|
import dagger.hilt.android.HiltAndroidApp
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
import dev.jdtech.jellyfin.core.R as CoreR
|
||||||
|
|
||||||
@HiltAndroidApp
|
@HiltAndroidApp
|
||||||
class BaseApplication : Application(), Configuration.Provider, ImageLoaderFactory {
|
class BaseApplication : Application(), Configuration.Provider, ImageLoaderFactory {
|
||||||
|
@ -40,7 +42,12 @@ class BaseApplication : Application(), Configuration.Provider, ImageLoaderFactor
|
||||||
"dark" -> AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES)
|
"dark" -> AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (appPreferences.dynamicColors) DynamicColors.applyToActivitiesIfAvailable(this)
|
if (appPreferences.dynamicColors) {
|
||||||
|
val dynamicColorsOptions = DynamicColorsOptions.Builder()
|
||||||
|
.setThemeOverlay(CoreR.style.ThemeOverlay_Findroid_DynamicColors)
|
||||||
|
.build()
|
||||||
|
DynamicColors.applyToActivitiesIfAvailable(this, dynamicColorsOptions)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun newImageLoader(): ImageLoader {
|
override fun newImageLoader(): ImageLoader {
|
||||||
|
|
|
@ -149,7 +149,7 @@ class MainActivity : AppCompatActivity() {
|
||||||
|
|
||||||
private fun applyTheme() {
|
private fun applyTheme() {
|
||||||
if (appPreferences.amoledTheme) {
|
if (appPreferences.amoledTheme) {
|
||||||
setTheme(CoreR.style.Theme_FindroidAMOLED)
|
setTheme(CoreR.style.ThemeOverlay_Findroid_Amoled)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,9 +17,12 @@
|
||||||
<item name="colorSurface">@color/neutral_900</item>
|
<item name="colorSurface">@color/neutral_900</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style name="Theme.FindroidAMOLED" parent="">
|
<style name="ThemeOverlay.Findroid.Amoled" parent="">
|
||||||
<!-- Surface -->
|
<!-- Surface -->
|
||||||
<item name="android:colorBackground">@android:color/black</item>
|
<item name="android:colorBackground">@android:color/black</item>
|
||||||
<item name="colorSurface">@android:color/black</item>
|
<item name="colorSurface">@android:color/black</item>
|
||||||
|
<item name="colorSurfaceContainer">?attr/colorSurface</item>
|
||||||
|
<item name="colorSurfaceContainerLow">?attr/colorSurface</item>
|
||||||
|
<item name="colorSurfaceContainerHigh">?attr/colorSurface</item>
|
||||||
</style>
|
</style>
|
||||||
</resources>
|
</resources>
|
|
@ -24,6 +24,9 @@
|
||||||
<!-- Surface -->
|
<!-- Surface -->
|
||||||
<item name="android:colorBackground">@color/neutral_50</item>
|
<item name="android:colorBackground">@color/neutral_50</item>
|
||||||
<item name="colorSurface">@color/neutral_100</item>
|
<item name="colorSurface">@color/neutral_100</item>
|
||||||
|
<item name="colorSurfaceContainer">?attr/colorSurface</item>
|
||||||
|
<item name="colorSurfaceContainerLow">?attr/colorSurface</item>
|
||||||
|
<item name="colorSurfaceContainerHigh">?attr/colorSurface</item>
|
||||||
|
|
||||||
<!-- Error -->
|
<!-- Error -->
|
||||||
<item name="colorError">@color/red</item>
|
<item name="colorError">@color/red</item>
|
||||||
|
@ -53,6 +56,10 @@
|
||||||
<item name="preferenceTheme">@style/ThemeOverlay.Findroid.Preference</item>
|
<item name="preferenceTheme">@style/ThemeOverlay.Findroid.Preference</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
<style name="ThemeOverlay.Findroid.DynamicColors" parent="ThemeOverlay.Material3.DynamicColors.DayNight">
|
||||||
|
<item name="android:navigationBarColor">?attr/colorSurfaceContainer</item>
|
||||||
|
</style>
|
||||||
|
|
||||||
<string-array name="themes">
|
<string-array name="themes">
|
||||||
<item>@string/theme_system</item>
|
<item>@string/theme_system</item>
|
||||||
<item>@string/theme_light</item>
|
<item>@string/theme_light</item>
|
||||||
|
|
Loading…
Reference in a new issue