summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Charles Lombardo2023-05-13 18:43:35 -0400
committerGravatar bunnei2023-06-03 00:06:01 -0700
commitc31a37c828f483c62a5b46b473d636738fda6361 (patch)
treed392720bc3bb607fbc3fab3b179a7f4582da5afa /src
parentandroid: Reset setting on long press (diff)
downloadyuzu-c31a37c828f483c62a5b46b473d636738fda6361.tar.gz
yuzu-c31a37c828f483c62a5b46b473d636738fda6361.tar.xz
yuzu-c31a37c828f483c62a5b46b473d636738fda6361.zip
android: Expose custom RTC setting
Diffstat (limited to 'src')
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/BooleanSetting.kt7
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/StringSetting.kt7
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/DateTimeSetting.kt2
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SwitchSetting.kt6
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsAdapter.kt5
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt54
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/DateTimeViewHolder.kt12
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/utils/SettingsFile.kt7
-rw-r--r--src/android/app/src/main/res/values/strings.xml3
9 files changed, 72 insertions, 31 deletions
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/BooleanSetting.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/BooleanSetting.kt
index 9bc0d4176..7c0ca08c7 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/BooleanSetting.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/BooleanSetting.kt
@@ -8,8 +8,7 @@ enum class BooleanSetting(
8 override val section: String, 8 override val section: String,
9 override val defaultValue: Boolean 9 override val defaultValue: Boolean
10) : AbstractBooleanSetting { 10) : AbstractBooleanSetting {
11 // No boolean settings currently exist 11 USE_CUSTOM_RTC("custom_rtc_enabled", Settings.SECTION_SYSTEM, false);
12 EMPTY_SETTING("", "", false);
13 12
14 override var boolean: Boolean = defaultValue 13 override var boolean: Boolean = defaultValue
15 14
@@ -27,7 +26,9 @@ enum class BooleanSetting(
27 } 26 }
28 27
29 companion object { 28 companion object {
30 private val NOT_RUNTIME_EDITABLE = emptyList<BooleanSetting>() 29 private val NOT_RUNTIME_EDITABLE = listOf(
30 USE_CUSTOM_RTC
31 )
31 32
32 fun from(key: String): BooleanSetting? = 33 fun from(key: String): BooleanSetting? =
33 BooleanSetting.values().firstOrNull { it.key == key } 34 BooleanSetting.values().firstOrNull { it.key == key }
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/StringSetting.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/StringSetting.kt
index c41180b77..d16ff17df 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/StringSetting.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/StringSetting.kt
@@ -8,8 +8,7 @@ enum class StringSetting(
8 override val section: String, 8 override val section: String,
9 override val defaultValue: String 9 override val defaultValue: String
10) : AbstractStringSetting { 10) : AbstractStringSetting {
11 // No string settings currently exist 11 CUSTOM_RTC("custom_rtc", Settings.SECTION_SYSTEM, "0");
12 EMPTY_SETTING("", "", "");
13 12
14 override var string: String = defaultValue 13 override var string: String = defaultValue
15 14
@@ -27,7 +26,9 @@ enum class StringSetting(
27 } 26 }
28 27
29 companion object { 28 companion object {
30 private val NOT_RUNTIME_EDITABLE = emptyList<StringSetting>() 29 private val NOT_RUNTIME_EDITABLE = listOf(
30 CUSTOM_RTC
31 )
31 32
32 fun from(key: String): StringSetting? = StringSetting.values().firstOrNull { it.key == key } 33 fun from(key: String): StringSetting? = StringSetting.values().firstOrNull { it.key == key }
33 } 34 }
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/DateTimeSetting.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/DateTimeSetting.kt
index f2038c578..bc0bf7788 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/DateTimeSetting.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/DateTimeSetting.kt
@@ -7,10 +7,10 @@ import org.yuzu.yuzu_emu.features.settings.model.AbstractSetting
7import org.yuzu.yuzu_emu.features.settings.model.AbstractStringSetting 7import org.yuzu.yuzu_emu.features.settings.model.AbstractStringSetting
8 8
9class DateTimeSetting( 9class DateTimeSetting(
10 val key: String? = null,
11 setting: AbstractSetting?, 10 setting: AbstractSetting?,
12 titleId: Int, 11 titleId: Int,
13 descriptionId: Int, 12 descriptionId: Int,
13 val key: String? = null,
14 private val defaultValue: String? = null 14 private val defaultValue: String? = null
15) : SettingsItem(setting, titleId, descriptionId) { 15) : SettingsItem(setting, titleId, descriptionId) {
16 override val type = TYPE_DATETIME_SETTING 16 override val type = TYPE_DATETIME_SETTING
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SwitchSetting.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SwitchSetting.kt
index 6ed1aa880..9f3c7e9d5 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SwitchSetting.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SwitchSetting.kt
@@ -15,14 +15,14 @@ class SwitchSetting(
15 titleId: Int, 15 titleId: Int,
16 descriptionId: Int, 16 descriptionId: Int,
17 val key: String? = null, 17 val key: String? = null,
18 val defaultValue: Boolean? = null 18 val defaultValue: Any? = null
19) : SettingsItem(setting, titleId, descriptionId) { 19) : SettingsItem(setting, titleId, descriptionId) {
20 override val type = TYPE_SWITCH 20 override val type = TYPE_SWITCH
21 21
22 val isChecked: Boolean 22 val isChecked: Boolean
23 get() { 23 get() {
24 if (setting == null) { 24 if (setting == null) {
25 return defaultValue!! 25 return defaultValue as Boolean
26 } 26 }
27 27
28 // Try integer setting 28 // Try integer setting
@@ -38,7 +38,7 @@ class SwitchSetting(
38 return setting.boolean 38 return setting.boolean
39 } catch (_: ClassCastException) { 39 } catch (_: ClassCastException) {
40 } 40 }
41 return defaultValue!! 41 return defaultValue as Boolean
42 } 42 }
43 43
44 /** 44 /**
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsAdapter.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsAdapter.kt
index f0b9083ab..943905482 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsAdapter.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsAdapter.kt
@@ -182,10 +182,11 @@ class SettingsAdapter(
182 epochTime += timePicker.minute.toLong() * 60 182 epochTime += timePicker.minute.toLong() * 60
183 val rtcString = epochTime.toString() 183 val rtcString = epochTime.toString()
184 if (item.value != rtcString) { 184 if (item.value != rtcString) {
185 notifyItemChanged(clickedPosition)
186 fragmentView.onSettingChanged() 185 fragmentView.onSettingChanged()
187 } 186 }
188 item.setSelectedValue(rtcString) 187 notifyItemChanged(clickedPosition)
188 val setting = item.setSelectedValue(rtcString)
189 fragmentView.putSetting(setting)
189 clickedItem = null 190 clickedItem = null
190 } 191 }
191 datePicker.show( 192 datePicker.show(
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 9a7b60581..d36afa932 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
@@ -13,8 +13,10 @@ import org.yuzu.yuzu_emu.YuzuApplication
13import org.yuzu.yuzu_emu.features.settings.model.AbstractBooleanSetting 13import org.yuzu.yuzu_emu.features.settings.model.AbstractBooleanSetting
14import org.yuzu.yuzu_emu.features.settings.model.AbstractIntSetting 14import org.yuzu.yuzu_emu.features.settings.model.AbstractIntSetting
15import org.yuzu.yuzu_emu.features.settings.model.AbstractSetting 15import org.yuzu.yuzu_emu.features.settings.model.AbstractSetting
16import org.yuzu.yuzu_emu.features.settings.model.BooleanSetting
16import org.yuzu.yuzu_emu.features.settings.model.IntSetting 17import org.yuzu.yuzu_emu.features.settings.model.IntSetting
17import org.yuzu.yuzu_emu.features.settings.model.Settings 18import org.yuzu.yuzu_emu.features.settings.model.Settings
19import org.yuzu.yuzu_emu.features.settings.model.StringSetting
18import org.yuzu.yuzu_emu.features.settings.model.view.* 20import org.yuzu.yuzu_emu.features.settings.model.view.*
19import org.yuzu.yuzu_emu.features.settings.utils.SettingsFile 21import org.yuzu.yuzu_emu.features.settings.utils.SettingsFile
20import org.yuzu.yuzu_emu.utils.ThemeHelper 22import org.yuzu.yuzu_emu.utils.ThemeHelper
@@ -121,7 +123,7 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
121 R.string.frame_limit_enable, 123 R.string.frame_limit_enable,
122 R.string.frame_limit_enable_description, 124 R.string.frame_limit_enable_description,
123 IntSetting.RENDERER_USE_SPEED_LIMIT.key, 125 IntSetting.RENDERER_USE_SPEED_LIMIT.key,
124 true 126 IntSetting.RENDERER_USE_SPEED_LIMIT.defaultValue
125 ) 127 )
126 ) 128 )
127 add( 129 add(
@@ -133,7 +135,7 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
133 200, 135 200,
134 "%", 136 "%",
135 IntSetting.RENDERER_SPEED_LIMIT.key, 137 IntSetting.RENDERER_SPEED_LIMIT.key,
136 100 138 IntSetting.RENDERER_SPEED_LIMIT.defaultValue
137 ) 139 )
138 ) 140 )
139 add( 141 add(
@@ -144,7 +146,7 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
144 R.array.cpuAccuracyNames, 146 R.array.cpuAccuracyNames,
145 R.array.cpuAccuracyValues, 147 R.array.cpuAccuracyValues,
146 IntSetting.CPU_ACCURACY.key, 148 IntSetting.CPU_ACCURACY.key,
147 0 149 IntSetting.CPU_ACCURACY.defaultValue
148 ) 150 )
149 ) 151 )
150 } 152 }
@@ -159,7 +161,7 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
159 R.string.use_docked_mode, 161 R.string.use_docked_mode,
160 R.string.use_docked_mode_description, 162 R.string.use_docked_mode_description,
161 IntSetting.USE_DOCKED_MODE.key, 163 IntSetting.USE_DOCKED_MODE.key,
162 false 164 IntSetting.USE_DOCKED_MODE.defaultValue
163 ) 165 )
164 ) 166 )
165 add( 167 add(
@@ -170,7 +172,7 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
170 R.array.regionNames, 172 R.array.regionNames,
171 R.array.regionValues, 173 R.array.regionValues,
172 IntSetting.REGION_INDEX.key, 174 IntSetting.REGION_INDEX.key,
173 -1 175 IntSetting.REGION_INDEX.defaultValue
174 ) 176 )
175 ) 177 )
176 add( 178 add(
@@ -181,7 +183,25 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
181 R.array.languageNames, 183 R.array.languageNames,
182 R.array.languageValues, 184 R.array.languageValues,
183 IntSetting.LANGUAGE_INDEX.key, 185 IntSetting.LANGUAGE_INDEX.key,
184 1 186 IntSetting.LANGUAGE_INDEX.defaultValue
187 )
188 )
189 add(
190 SwitchSetting(
191 BooleanSetting.USE_CUSTOM_RTC,
192 R.string.use_custom_rtc,
193 R.string.use_custom_rtc_description,
194 BooleanSetting.USE_CUSTOM_RTC.key,
195 BooleanSetting.USE_CUSTOM_RTC.defaultValue
196 )
197 )
198 add(
199 DateTimeSetting(
200 StringSetting.CUSTOM_RTC,
201 R.string.set_custom_rtc,
202 0,
203 StringSetting.CUSTOM_RTC.key,
204 StringSetting.CUSTOM_RTC.defaultValue
185 ) 205 )
186 ) 206 )
187 } 207 }
@@ -198,7 +218,7 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
198 R.array.rendererApiNames, 218 R.array.rendererApiNames,
199 R.array.rendererApiValues, 219 R.array.rendererApiValues,
200 IntSetting.RENDERER_BACKEND.key, 220 IntSetting.RENDERER_BACKEND.key,
201 1 221 IntSetting.RENDERER_BACKEND.defaultValue
202 ) 222 )
203 ) 223 )
204 add( 224 add(
@@ -209,7 +229,7 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
209 R.array.rendererAccuracyNames, 229 R.array.rendererAccuracyNames,
210 R.array.rendererAccuracyValues, 230 R.array.rendererAccuracyValues,
211 IntSetting.RENDERER_ACCURACY.key, 231 IntSetting.RENDERER_ACCURACY.key,
212 0 232 IntSetting.RENDERER_ACCURACY.defaultValue
213 ) 233 )
214 ) 234 )
215 add( 235 add(
@@ -220,7 +240,7 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
220 R.array.rendererResolutionNames, 240 R.array.rendererResolutionNames,
221 R.array.rendererResolutionValues, 241 R.array.rendererResolutionValues,
222 IntSetting.RENDERER_RESOLUTION.key, 242 IntSetting.RENDERER_RESOLUTION.key,
223 2 243 IntSetting.RENDERER_RESOLUTION.defaultValue
224 ) 244 )
225 ) 245 )
226 add( 246 add(
@@ -231,7 +251,7 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
231 R.array.rendererScalingFilterNames, 251 R.array.rendererScalingFilterNames,
232 R.array.rendererScalingFilterValues, 252 R.array.rendererScalingFilterValues,
233 IntSetting.RENDERER_SCALING_FILTER.key, 253 IntSetting.RENDERER_SCALING_FILTER.key,
234 1 254 IntSetting.RENDERER_SCALING_FILTER.defaultValue
235 ) 255 )
236 ) 256 )
237 add( 257 add(
@@ -242,7 +262,7 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
242 R.array.rendererAntiAliasingNames, 262 R.array.rendererAntiAliasingNames,
243 R.array.rendererAntiAliasingValues, 263 R.array.rendererAntiAliasingValues,
244 IntSetting.RENDERER_ANTI_ALIASING.key, 264 IntSetting.RENDERER_ANTI_ALIASING.key,
245 0 265 IntSetting.RENDERER_ANTI_ALIASING.defaultValue
246 ) 266 )
247 ) 267 )
248 add( 268 add(
@@ -253,7 +273,7 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
253 R.array.rendererAspectRatioNames, 273 R.array.rendererAspectRatioNames,
254 R.array.rendererAspectRatioValues, 274 R.array.rendererAspectRatioValues,
255 IntSetting.RENDERER_ASPECT_RATIO.key, 275 IntSetting.RENDERER_ASPECT_RATIO.key,
256 0 276 IntSetting.RENDERER_ASPECT_RATIO.defaultValue
257 ) 277 )
258 ) 278 )
259 add( 279 add(
@@ -262,7 +282,7 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
262 R.string.use_disk_shader_cache, 282 R.string.use_disk_shader_cache,
263 R.string.use_disk_shader_cache_description, 283 R.string.use_disk_shader_cache_description,
264 IntSetting.RENDERER_USE_DISK_SHADER_CACHE.key, 284 IntSetting.RENDERER_USE_DISK_SHADER_CACHE.key,
265 true 285 IntSetting.RENDERER_USE_DISK_SHADER_CACHE.defaultValue
266 ) 286 )
267 ) 287 )
268 add( 288 add(
@@ -271,7 +291,7 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
271 R.string.renderer_force_max_clock, 291 R.string.renderer_force_max_clock,
272 R.string.renderer_force_max_clock_description, 292 R.string.renderer_force_max_clock_description,
273 IntSetting.RENDERER_FORCE_MAX_CLOCK.key, 293 IntSetting.RENDERER_FORCE_MAX_CLOCK.key,
274 true 294 IntSetting.RENDERER_FORCE_MAX_CLOCK.defaultValue
275 ) 295 )
276 ) 296 )
277 add( 297 add(
@@ -280,7 +300,7 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
280 R.string.renderer_asynchronous_shaders, 300 R.string.renderer_asynchronous_shaders,
281 R.string.renderer_asynchronous_shaders_description, 301 R.string.renderer_asynchronous_shaders_description,
282 IntSetting.RENDERER_ASYNCHRONOUS_SHADERS.key, 302 IntSetting.RENDERER_ASYNCHRONOUS_SHADERS.key,
283 false 303 IntSetting.RENDERER_ASYNCHRONOUS_SHADERS.defaultValue
284 ) 304 )
285 ) 305 )
286 add( 306 add(
@@ -289,7 +309,7 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
289 R.string.renderer_debug, 309 R.string.renderer_debug,
290 R.string.renderer_debug_description, 310 R.string.renderer_debug_description,
291 IntSetting.RENDERER_DEBUG.key, 311 IntSetting.RENDERER_DEBUG.key,
292 false 312 IntSetting.RENDERER_DEBUG.defaultValue
293 ) 313 )
294 ) 314 )
295 } 315 }
@@ -306,7 +326,7 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
306 100, 326 100,
307 "%", 327 "%",
308 IntSetting.AUDIO_VOLUME.key, 328 IntSetting.AUDIO_VOLUME.key,
309 100 329 IntSetting.AUDIO_VOLUME.defaultValue
310 ) 330 )
311 ) 331 )
312 } 332 }
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/DateTimeViewHolder.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/DateTimeViewHolder.kt
index fb0c6c9e5..b101a790d 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/DateTimeViewHolder.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/DateTimeViewHolder.kt
@@ -5,10 +5,14 @@ package org.yuzu.yuzu_emu.features.settings.ui.viewholder
5 5
6import android.view.View 6import android.view.View
7import org.yuzu.yuzu_emu.databinding.ListItemSettingBinding 7import org.yuzu.yuzu_emu.databinding.ListItemSettingBinding
8import org.yuzu.yuzu_emu.features.settings.model.AbstractStringSetting
9import org.yuzu.yuzu_emu.features.settings.model.view.DateTimeSetting 8import org.yuzu.yuzu_emu.features.settings.model.view.DateTimeSetting
10import org.yuzu.yuzu_emu.features.settings.model.view.SettingsItem 9import org.yuzu.yuzu_emu.features.settings.model.view.SettingsItem
11import org.yuzu.yuzu_emu.features.settings.ui.SettingsAdapter 10import org.yuzu.yuzu_emu.features.settings.ui.SettingsAdapter
11import java.time.Instant
12import java.time.ZoneId
13import java.time.ZonedDateTime
14import java.time.format.DateTimeFormatter
15import java.time.format.FormatStyle
12 16
13class DateTimeViewHolder(val binding: ListItemSettingBinding, adapter: SettingsAdapter) : 17class DateTimeViewHolder(val binding: ListItemSettingBinding, adapter: SettingsAdapter) :
14 SettingViewHolder(binding.root, adapter) { 18 SettingViewHolder(binding.root, adapter) {
@@ -21,7 +25,11 @@ class DateTimeViewHolder(val binding: ListItemSettingBinding, adapter: SettingsA
21 binding.textSettingDescription.setText(item.descriptionId) 25 binding.textSettingDescription.setText(item.descriptionId)
22 binding.textSettingDescription.visibility = View.VISIBLE 26 binding.textSettingDescription.visibility = View.VISIBLE
23 } else { 27 } else {
24 binding.textSettingDescription.visibility = View.GONE 28 val epochTime = setting.value.toLong()
29 val instant = Instant.ofEpochMilli(epochTime * 1000)
30 val zonedTime = ZonedDateTime.ofInstant(instant, ZoneId.of("UTC"))
31 val dateFormatter = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM)
32 binding.textSettingDescription.text = dateFormatter.format(zonedTime)
25 } 33 }
26 } 34 }
27 35
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/utils/SettingsFile.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/utils/SettingsFile.kt
index 9c6515a54..4027df838 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/utils/SettingsFile.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/utils/SettingsFile.kt
@@ -209,6 +209,13 @@ object SettingsFile {
209 floatSetting.float = value.toFloat() 209 floatSetting.float = value.toFloat()
210 return floatSetting 210 return floatSetting
211 } 211 }
212
213 val stringSetting = StringSetting.from(key)
214 if (stringSetting != null) {
215 stringSetting.string = value
216 return stringSetting
217 }
218
212 return StringSetting.from(key) 219 return StringSetting.from(key)
213 } 220 }
214 221
diff --git a/src/android/app/src/main/res/values/strings.xml b/src/android/app/src/main/res/values/strings.xml
index f6d742206..cd93bfc38 100644
--- a/src/android/app/src/main/res/values/strings.xml
+++ b/src/android/app/src/main/res/values/strings.xml
@@ -114,6 +114,9 @@
114 <string name="emulated_language">Emulated language</string> 114 <string name="emulated_language">Emulated language</string>
115 <string name="select_rtc_date">Select RTC Date</string> 115 <string name="select_rtc_date">Select RTC Date</string>
116 <string name="select_rtc_time">Select RTC Time</string> 116 <string name="select_rtc_time">Select RTC Time</string>
117 <string name="use_custom_rtc">Enable Custom RTC</string>
118 <string name="use_custom_rtc_description">This setting allows you to set a custom real time clock separate from your current system time</string>
119 <string name="set_custom_rtc">Set Custom RTC</string>
117 120
118 <!-- Graphics settings strings --> 121 <!-- Graphics settings strings -->
119 <string name="renderer_api">API</string> 122 <string name="renderer_api">API</string>