android: Add black backgrounds toggle
This commit is contained in:
		| @@ -137,6 +137,7 @@ class Settings { | |||||||
|         const val PREF_FIRST_APP_LAUNCH = "FirstApplicationLaunch" |         const val PREF_FIRST_APP_LAUNCH = "FirstApplicationLaunch" | ||||||
|         const val PREF_THEME = "Theme" |         const val PREF_THEME = "Theme" | ||||||
|         const val PREF_THEME_MODE = "ThemeMode" |         const val PREF_THEME_MODE = "ThemeMode" | ||||||
|  |         const val PREF_BLACK_BACKGROUNDS = "BlackBackgrounds" | ||||||
|  |  | ||||||
|         private val configFileSectionsMap: MutableMap<String, List<String>> = HashMap() |         private val configFileSectionsMap: MutableMap<String, List<String>> = HashMap() | ||||||
|  |  | ||||||
|   | |||||||
| @@ -10,6 +10,7 @@ import androidx.appcompat.app.AppCompatActivity | |||||||
| import androidx.preference.PreferenceManager | import androidx.preference.PreferenceManager | ||||||
| import org.yuzu.yuzu_emu.R | import org.yuzu.yuzu_emu.R | ||||||
| import org.yuzu.yuzu_emu.YuzuApplication | 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.AbstractIntSetting | ||||||
| import org.yuzu.yuzu_emu.features.settings.model.AbstractSetting | import org.yuzu.yuzu_emu.features.settings.model.AbstractSetting | ||||||
| import org.yuzu.yuzu_emu.features.settings.model.IntSetting | import org.yuzu.yuzu_emu.features.settings.model.IntSetting | ||||||
| @@ -380,6 +381,28 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView) | |||||||
|                     R.array.themeModeValues |                     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 | ||||||
|  |                 ) | ||||||
|  |             ) | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -33,6 +33,9 @@ object ThemeHelper { | |||||||
|             DEFAULT -> activity.setTheme(R.style.Theme_Yuzu_Main) |             DEFAULT -> activity.setTheme(R.style.Theme_Yuzu_Main) | ||||||
|             MATERIAL_YOU -> activity.setTheme(R.style.Theme_Yuzu_Main_MaterialYou) |             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 |     @JvmStatic | ||||||
|   | |||||||
| @@ -4,7 +4,8 @@ | |||||||
|     xmlns:android="http://schemas.android.com/apk/res/android" |     xmlns:android="http://schemas.android.com/apk/res/android" | ||||||
|     xmlns:app="http://schemas.android.com/apk/res-auto" |     xmlns:app="http://schemas.android.com/apk/res-auto" | ||||||
|     android:layout_width="match_parent" |     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 |     <com.google.android.material.appbar.AppBarLayout | ||||||
|         android:id="@+id/appbar_settings" |         android:id="@+id/appbar_settings" | ||||||
|   | |||||||
							
								
								
									
										9
									
								
								src/android/app/src/main/res/values-night/themes.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								src/android/app/src/main/res/values-night/themes.xml
									
									
									
									
									
										Normal file
									
								
							| @@ -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> | ||||||
| @@ -241,4 +241,8 @@ | |||||||
|     <string name="theme_mode_light">Light</string> |     <string name="theme_mode_light">Light</string> | ||||||
|     <string name="theme_mode_dark">Dark</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> | </resources> | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user