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

View File

@ -72,7 +72,6 @@ class MainActivity : AppCompatActivity(), NavigationBarView.OnItemSelectedListen
load() // start the initial loading
// 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) {
DataTypes.Theme.LIGHT -> AppCompatDelegate.MODE_NIGHT_NO
DataTypes.Theme.DARK -> AppCompatDelegate.MODE_NIGHT_YES

View File

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

View File

@ -55,6 +55,7 @@
<string name="theme">Design</string>
<string name="theme_light">Hell</string>
<string name="theme_dark">Dunkel</string>
<string name="theme_system">System</string>
<string name="dev_settings">Entwickler Einstellungen</string>
<string name="update_playhead">Playhead Updates</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_light">Light</string>
<string name="theme_dark">Dark</string>
<string name="theme_system">System</string>
<string name="dev_settings">Developer Settings</string>
<string name="update_playhead">Playhead updates</string>
<string name="update_playhead_desc">Update episode playhead on cr</string>