Browse Source
android: Abstract settings
android: Abstract settings
Previously we could only add settings that would change our ini file. Now we can create abstract settings in our presenter to alter things like shared preferences for theme support!nce_cpp
committed by
bunnei
24 changed files with 418 additions and 363 deletions
-
8src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/AbstractBooleanSetting.kt
-
8src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/AbstractFloatSetting.kt
-
8src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/AbstractIntSetting.kt
-
11src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/AbstractSetting.kt
-
8src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/AbstractStringSetting.kt
-
35src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/BooleanSetting.kt
-
34src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/FloatSetting.kt
-
123src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/IntSetting.kt
-
27src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/Setting.kt
-
8src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/SettingSection.kt
-
34src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/StringSetting.kt
-
30src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/DateTimeSetting.kt
-
7src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/HeaderSetting.kt
-
8src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SettingsItem.kt
-
31src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SingleChoiceSetting.kt
-
51src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SliderSetting.kt
-
32src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/StringSingleChoiceSetting.kt
-
9src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SubmenuSetting.kt
-
87src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SwitchSetting.kt
-
24src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsAdapter.kt
-
5src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragment.kt
-
131src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt
-
4src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentView.kt
-
58src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/utils/SettingsFile.kt
@ -0,0 +1,8 @@ |
|||||
|
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project |
||||
|
// SPDX-License-Identifier: GPL-2.0-or-later |
||||
|
|
||||
|
package org.yuzu.yuzu_emu.features.settings.model |
||||
|
|
||||
|
interface AbstractBooleanSetting : AbstractSetting { |
||||
|
var boolean: Boolean |
||||
|
} |
||||
@ -0,0 +1,8 @@ |
|||||
|
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project |
||||
|
// SPDX-License-Identifier: GPL-2.0-or-later |
||||
|
|
||||
|
package org.yuzu.yuzu_emu.features.settings.model |
||||
|
|
||||
|
interface AbstractFloatSetting : AbstractSetting { |
||||
|
var float: Float |
||||
|
} |
||||
@ -0,0 +1,8 @@ |
|||||
|
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project |
||||
|
// SPDX-License-Identifier: GPL-2.0-or-later |
||||
|
|
||||
|
package org.yuzu.yuzu_emu.features.settings.model |
||||
|
|
||||
|
interface AbstractIntSetting : AbstractSetting { |
||||
|
var int: Int |
||||
|
} |
||||
@ -0,0 +1,11 @@ |
|||||
|
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project |
||||
|
// SPDX-License-Identifier: GPL-2.0-or-later |
||||
|
|
||||
|
package org.yuzu.yuzu_emu.features.settings.model |
||||
|
|
||||
|
interface AbstractSetting { |
||||
|
val key: String? |
||||
|
val section: String? |
||||
|
val isRuntimeEditable: Boolean |
||||
|
val valueAsString: String |
||||
|
} |
||||
@ -0,0 +1,8 @@ |
|||||
|
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project |
||||
|
// SPDX-License-Identifier: GPL-2.0-or-later |
||||
|
|
||||
|
package org.yuzu.yuzu_emu.features.settings.model |
||||
|
|
||||
|
interface AbstractStringSetting : AbstractSetting { |
||||
|
var string: String |
||||
|
} |
||||
@ -1,27 +0,0 @@ |
|||||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project |
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later |
|
||||
|
|
||||
package org.yuzu.yuzu_emu.features.settings.model |
|
||||
|
|
||||
/** |
|
||||
* Abstraction for a setting item as read from / written to yuzu's configuration ini files. |
|
||||
* These files generally consist of a key/value pair, though the type of value is ambiguous and |
|
||||
* must be inferred at read-time. The type of value determines which child of this class is used |
|
||||
* to represent the Setting. |
|
||||
*/ |
|
||||
abstract class Setting( |
|
||||
/** |
|
||||
* @return The identifier used to write this setting to the ini file. |
|
||||
*/ |
|
||||
val key: String, |
|
||||
/** |
|
||||
* @return The name of the header under which this Setting should be written in the ini file. |
|
||||
*/ |
|
||||
val section: String |
|
||||
) { |
|
||||
|
|
||||
/** |
|
||||
* @return A representation of this Setting's backing value converted to a String (e.g. for serialization). |
|
||||
*/ |
|
||||
abstract val valueAsString: String |
|
||||
} |
|
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue