fix theme selection dialog to work with system theme also use system as new default

This commit is contained in:
Jannik 2023-04-15 22:48:59 +02:00
parent 5cf4527a92
commit 2cb05de810
Signed by: Seil0
GPG Key ID: E8459F3723C52C24
5 changed files with 13 additions and 9 deletions

View File

@ -18,7 +18,7 @@ object Preferences {
internal set internal set
var devSettings = false var devSettings = false
internal set internal set
var theme = DataTypes.Theme.DARK var theme = DataTypes.Theme.SYSTEM
internal set internal set
// dev settings // dev settings
@ -122,8 +122,8 @@ object Preferences {
) )
theme = DataTypes.Theme.valueOf( theme = DataTypes.Theme.valueOf(
sharedPref.getString( sharedPref.getString(
context.getString(R.string.save_key_theme), DataTypes.Theme.DARK.toString() context.getString(R.string.save_key_theme), DataTypes.Theme.SYSTEM.toString()
) ?: DataTypes.Theme.DARK.toString() ) ?: DataTypes.Theme.SYSTEM.toString()
) )
// dev settings // dev settings

View File

@ -72,7 +72,6 @@ class MainActivity : AppCompatActivity(), NavigationBarView.OnItemSelectedListen
load() // start the initial loading load() // start the initial loading
// theming // theming
// theme.applyStyle(R.style.AppTheme_DayNight, true) // TODO I think this must be removed for system settings to work
val mode = when (Preferences.theme) { val mode = when (Preferences.theme) {
DataTypes.Theme.LIGHT -> AppCompatDelegate.MODE_NIGHT_NO DataTypes.Theme.LIGHT -> AppCompatDelegate.MODE_NIGHT_NO
DataTypes.Theme.DARK -> AppCompatDelegate.MODE_NIGHT_YES DataTypes.Theme.DARK -> AppCompatDelegate.MODE_NIGHT_YES

View File

@ -68,8 +68,9 @@ class AccountFragment : Fragment() {
binding.switchSecondary.isChecked = Preferences.preferSubbed binding.switchSecondary.isChecked = Preferences.preferSubbed
binding.switchAutoplay.isChecked = Preferences.autoplay binding.switchAutoplay.isChecked = Preferences.autoplay
binding.textThemeSelected.text = when (Preferences.theme) { binding.textThemeSelected.text = when (Preferences.theme) {
Theme.SYSTEM -> getString(R.string.theme_system)
Theme.LIGHT -> getString(R.string.theme_light)
Theme.DARK -> getString(R.string.theme_dark) Theme.DARK -> getString(R.string.theme_dark)
else -> getString(R.string.theme_light)
} }
binding.linearDevSettings.isVisible = Preferences.devSettings binding.linearDevSettings.isVisible = Preferences.devSettings
@ -180,17 +181,19 @@ class AccountFragment : Fragment() {
private fun showThemeDialog() { private fun showThemeDialog() {
val items = arrayOf( val items = arrayOf(
resources.getString(R.string.theme_system),
resources.getString(R.string.theme_light), resources.getString(R.string.theme_light),
resources.getString(R.string.theme_dark) resources.getString(R.string.theme_dark)
) )
MaterialAlertDialogBuilder(requireContext()) MaterialAlertDialogBuilder(requireContext())
.setTitle(R.string.settings_content_language) .setTitle(R.string.theme)
.setSingleChoiceItems(items, Preferences.theme.ordinal){ _, which -> .setSingleChoiceItems(items, Preferences.theme.ordinal){ _, which ->
when(which) { when(which) {
0 -> Preferences.saveTheme(requireContext(), Theme.LIGHT) 0 -> Preferences.saveTheme(requireContext(), Theme.SYSTEM)
1 -> Preferences.saveTheme(requireContext(), Theme.DARK) 1 -> Preferences.saveTheme(requireContext(), Theme.LIGHT)
else -> Preferences.saveTheme(requireContext(), Theme.DARK) 2 -> Preferences.saveTheme(requireContext(), Theme.DARK)
else -> Preferences.saveTheme(requireContext(), Theme.SYSTEM)
} }
(activity as MainActivity).restart() (activity as MainActivity).restart()

View File

@ -55,6 +55,7 @@
<string name="theme">Design</string> <string name="theme">Design</string>
<string name="theme_light">Hell</string> <string name="theme_light">Hell</string>
<string name="theme_dark">Dunkel</string> <string name="theme_dark">Dunkel</string>
<string name="theme_system">System</string>
<string name="dev_settings">Entwickler Einstellungen</string> <string name="dev_settings">Entwickler Einstellungen</string>
<string name="update_playhead">Playhead Updates</string> <string name="update_playhead">Playhead Updates</string>
<string name="update_playhead_desc">Fortschritt bei Episoden auf cr updaten</string> <string name="update_playhead_desc">Fortschritt bei Episoden auf cr updaten</string>

View File

@ -69,6 +69,7 @@
<string name="theme">Theme</string> <string name="theme">Theme</string>
<string name="theme_light">Light</string> <string name="theme_light">Light</string>
<string name="theme_dark">Dark</string> <string name="theme_dark">Dark</string>
<string name="theme_system">System</string>
<string name="dev_settings">Developer Settings</string> <string name="dev_settings">Developer Settings</string>
<string name="update_playhead">Playhead updates</string> <string name="update_playhead">Playhead updates</string>
<string name="update_playhead_desc">Update episode playhead on cr</string> <string name="update_playhead_desc">Update episode playhead on cr</string>