summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCharles Lombardo <clombardo169@gmail.com>2023-04-24 00:46:05 +0200
committerbunnei <bunneidev@gmail.com>2023-06-03 09:05:54 +0200
commitd7178ed16e192fc5a64554526c8deb45c7eb3fe0 (patch)
treeceba18655b1c3df3e90184ee524b002eeccfd9e5
parentandroid: Add theme mode picker (diff)
downloadyuzu-d7178ed16e192fc5a64554526c8deb45c7eb3fe0.tar
yuzu-d7178ed16e192fc5a64554526c8deb45c7eb3fe0.tar.gz
yuzu-d7178ed16e192fc5a64554526c8deb45c7eb3fe0.tar.bz2
yuzu-d7178ed16e192fc5a64554526c8deb45c7eb3fe0.tar.lz
yuzu-d7178ed16e192fc5a64554526c8deb45c7eb3fe0.tar.xz
yuzu-d7178ed16e192fc5a64554526c8deb45c7eb3fe0.tar.zst
yuzu-d7178ed16e192fc5a64554526c8deb45c7eb3fe0.zip
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/Settings.kt1
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt23
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/ThemeHelper.kt3
-rw-r--r--src/android/app/src/main/res/layout/activity_settings.xml3
-rw-r--r--src/android/app/src/main/res/values-night/themes.xml9
-rw-r--r--src/android/app/src/main/res/values/strings.xml4
6 files changed, 42 insertions, 1 deletions
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/Settings.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/Settings.kt
index 2cf9d704e..b71291609 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/Settings.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/Settings.kt
@@ -137,6 +137,7 @@ class Settings {
const val PREF_FIRST_APP_LAUNCH = "FirstApplicationLaunch"
const val PREF_THEME = "Theme"
const val PREF_THEME_MODE = "ThemeMode"
+ const val PREF_BLACK_BACKGROUNDS = "BlackBackgrounds"
private val configFileSectionsMap: MutableMap<String, List<String>> = HashMap()
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt
index d8fa321ad..1aae96bc3 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt
@@ -10,6 +10,7 @@ import androidx.appcompat.app.AppCompatActivity
import androidx.preference.PreferenceManager
import org.yuzu.yuzu_emu.R
import org.yuzu.yuzu_emu.YuzuApplication
+import org.yuzu.yuzu_emu.features.settings.model.AbstractBooleanSetting
import org.yuzu.yuzu_emu.features.settings.model.AbstractIntSetting
import org.yuzu.yuzu_emu.features.settings.model.AbstractSetting
import org.yuzu.yuzu_emu.features.settings.model.IntSetting
@@ -380,6 +381,28 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
R.array.themeModeValues
)
)
+
+ val blackBackgrounds: AbstractBooleanSetting = object : AbstractBooleanSetting {
+ override var boolean: Boolean
+ get() = preferences.getBoolean(Settings.PREF_BLACK_BACKGROUNDS, false)
+ set(value) {
+ preferences.edit().putBoolean(Settings.PREF_BLACK_BACKGROUNDS, value).apply()
+ settingsActivity.recreate()
+ }
+ override val key: String? = null
+ override val section: String? = null
+ override val isRuntimeEditable: Boolean = true
+ override val valueAsString: String
+ get() = preferences.getBoolean(Settings.PREF_BLACK_BACKGROUNDS, false).toString()
+ }
+
+ add(
+ SwitchSetting(
+ blackBackgrounds,
+ R.string.use_black_backgrounds,
+ R.string.use_black_backgrounds_description
+ )
+ )
}
}
}
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/ThemeHelper.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/ThemeHelper.kt
index 467978e6d..7c8f1d80b 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/ThemeHelper.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/ThemeHelper.kt
@@ -33,6 +33,9 @@ object ThemeHelper {
DEFAULT -> activity.setTheme(R.style.Theme_Yuzu_Main)
MATERIAL_YOU -> activity.setTheme(R.style.Theme_Yuzu_Main_MaterialYou)
}
+ if (preferences.getBoolean(Settings.PREF_BLACK_BACKGROUNDS, false)) {
+ activity.setTheme(R.style.ThemeOverlay_Yuzu_Dark)
+ }
}
@JvmStatic
diff --git a/src/android/app/src/main/res/layout/activity_settings.xml b/src/android/app/src/main/res/layout/activity_settings.xml
index dc23200ea..2745599f4 100644
--- a/src/android/app/src/main/res/layout/activity_settings.xml
+++ b/src/android/app/src/main/res/layout/activity_settings.xml
@@ -4,7 +4,8 @@
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
- android:layout_height="match_parent">
+ android:layout_height="match_parent"
+ android:background="?attr/colorSurface">
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/appbar_settings"
diff --git a/src/android/app/src/main/res/values-night/themes.xml b/src/android/app/src/main/res/values-night/themes.xml
new file mode 100644
index 000000000..d7d24c24d
--- /dev/null
+++ b/src/android/app/src/main/res/values-night/themes.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+
+ <style name="ThemeOverlay.Yuzu.Dark" parent="">
+ <item name="colorSurface">@android:color/black</item>
+ <item name="android:colorBackground">@android:color/black</item>
+ </style>
+
+</resources>
diff --git a/src/android/app/src/main/res/values/strings.xml b/src/android/app/src/main/res/values/strings.xml
index 28c9af7bd..d37ffba0d 100644
--- a/src/android/app/src/main/res/values/strings.xml
+++ b/src/android/app/src/main/res/values/strings.xml
@@ -241,4 +241,8 @@
<string name="theme_mode_light">Light</string>
<string name="theme_mode_dark">Dark</string>
+ <!-- Black backgrounds theme -->
+ <string name="use_black_backgrounds">Use Black Backgrounds</string>
+ <string name="use_black_backgrounds_description">When using the dark theme, apply black backgrounds.</string>
+
</resources>