diff --git a/app/src/main/java/app/fedilab/android/mastodon/ui/fragment/settings/FragmentThemingSettings.java b/app/src/main/java/app/fedilab/android/mastodon/ui/fragment/settings/FragmentThemingSettings.java index d6403e64..a38c15ac 100644 --- a/app/src/main/java/app/fedilab/android/mastodon/ui/fragment/settings/FragmentThemingSettings.java +++ b/app/src/main/java/app/fedilab/android/mastodon/ui/fragment/settings/FragmentThemingSettings.java @@ -31,6 +31,7 @@ import androidx.preference.PreferenceFragmentCompat; import androidx.preference.PreferenceManager; import androidx.preference.SwitchPreferenceCompat; +import com.google.android.material.color.DynamicColors; import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.jaredrummler.android.colorpicker.ColorPreferenceCompat; @@ -118,31 +119,31 @@ public class FragmentThemingSettings extends PreferenceFragmentCompat implements SwitchPreferenceCompat SET_CUSTOM_ACCENT = findPreference(getString(R.string.SET_CUSTOM_ACCENT)); ColorPreferenceCompat SET_CUSTOM_ACCENT_DARK_VALUE = findPreference(getString(R.string.SET_CUSTOM_ACCENT_DARK_VALUE)); ColorPreferenceCompat SET_CUSTOM_ACCENT_LIGHT_VALUE = findPreference(getString(R.string.SET_CUSTOM_ACCENT_LIGHT_VALUE)); - if (android.os.Build.VERSION.SDK_INT < Build.VERSION_CODES.S) { - if (SET_DYNAMIC_COLOR != null) { - getPreferenceScreen().removePreference(SET_DYNAMIC_COLOR); - } + if (DynamicColors.isDynamicColorAvailable()) { if (SET_CUSTOM_ACCENT != null) { - getPreferenceScreen().removePreference(SET_CUSTOM_ACCENT); + boolean customAccentEnabled = sharedpreferences.getBoolean(getString(R.string.SET_CUSTOM_ACCENT) + currentUserID + currentInstance, false); + SET_CUSTOM_ACCENT.setChecked(customAccentEnabled); } if (SET_CUSTOM_ACCENT_DARK_VALUE != null) { - getPreferenceScreen().removePreference(SET_CUSTOM_ACCENT_DARK_VALUE); + int darkValue = sharedpreferences.getInt(getString(R.string.SET_CUSTOM_ACCENT_DARK_VALUE) + currentUserID + currentInstance, -1); + SET_CUSTOM_ACCENT_DARK_VALUE.setColor(darkValue); } if (SET_CUSTOM_ACCENT_LIGHT_VALUE != null) { - getPreferenceScreen().removePreference(SET_CUSTOM_ACCENT_LIGHT_VALUE); + int lightValue = sharedpreferences.getInt(getString(R.string.SET_CUSTOM_ACCENT_LIGHT_VALUE) + currentUserID + currentInstance, -1); + SET_CUSTOM_ACCENT_LIGHT_VALUE.setColor(lightValue); } } else { + if (SET_DYNAMIC_COLOR != null) { + getPreferenceScreen().removePreference(SET_DYNAMIC_COLOR); + } if (SET_CUSTOM_ACCENT != null) { - boolean customAccentEnabled = sharedpreferences.getBoolean(getString(R.string.SET_CUSTOM_ACCENT) + currentUserID + currentInstance, false); - SET_CUSTOM_ACCENT.setChecked(customAccentEnabled); + getPreferenceScreen().removePreference(SET_CUSTOM_ACCENT); } if (SET_CUSTOM_ACCENT_DARK_VALUE != null) { - int darkValue = sharedpreferences.getInt(getString(R.string.SET_CUSTOM_ACCENT_DARK_VALUE) + currentUserID + currentInstance, -1); - SET_CUSTOM_ACCENT_DARK_VALUE.setColor(darkValue); + getPreferenceScreen().removePreference(SET_CUSTOM_ACCENT_DARK_VALUE); } if (SET_CUSTOM_ACCENT_LIGHT_VALUE != null) { - int lightValue = sharedpreferences.getInt(getString(R.string.SET_CUSTOM_ACCENT_LIGHT_VALUE) + currentUserID + currentInstance, -1); - SET_CUSTOM_ACCENT_LIGHT_VALUE.setColor(lightValue); + getPreferenceScreen().removePreference(SET_CUSTOM_ACCENT_LIGHT_VALUE); } }