summaryrefslogtreecommitdiff
path: root/src/android
diff options
context:
space:
mode:
authorGravatar Charles Lombardo2023-05-13 16:24:56 -0400
committerGravatar bunnei2023-06-03 00:06:01 -0700
commitf7934bdaf7f27bb5e39cbd1c53a01072334517a5 (patch)
tree4e3f422088f46955c073407546e1063f213296de /src/android
parentandroid: Fix issues with ea/main icons and version codes (diff)
downloadyuzu-f7934bdaf7f27bb5e39cbd1c53a01072334517a5.tar.gz
yuzu-f7934bdaf7f27bb5e39cbd1c53a01072334517a5.tar.xz
yuzu-f7934bdaf7f27bb5e39cbd1c53a01072334517a5.zip
android: Reset setting on long press
Diffstat (limited to 'src/android')
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/AbstractSetting.kt1
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/BooleanSetting.kt2
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/FloatSetting.kt2
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/IntSetting.kt2
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/StringSetting.kt2
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/DateTimeSetting.kt1
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsAdapter.kt38
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt3
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/DateTimeViewHolder.kt8
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/HeaderViewHolder.kt5
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SettingViewHolder.kt5
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SingleChoiceViewHolder.kt7
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SliderViewHolder.kt7
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SubmenuViewHolder.kt5
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SwitchSettingViewHolder.kt7
-rw-r--r--src/android/app/src/main/res/values/strings.xml1
16 files changed, 89 insertions, 7 deletions
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/AbstractSetting.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/AbstractSetting.kt
index 0ebf55ab7..258580209 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/AbstractSetting.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/AbstractSetting.kt
@@ -8,4 +8,5 @@ interface AbstractSetting {
8 val section: String? 8 val section: String?
9 val isRuntimeEditable: Boolean 9 val isRuntimeEditable: Boolean
10 val valueAsString: String 10 val valueAsString: String
11 val defaultValue: Any
11} 12}
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 837e5b89d..9bc0d4176 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
@@ -6,7 +6,7 @@ package org.yuzu.yuzu_emu.features.settings.model
6enum class BooleanSetting( 6enum class BooleanSetting(
7 override val key: String, 7 override val key: String,
8 override val section: String, 8 override val section: String,
9 val defaultValue: Boolean 9 override val defaultValue: Boolean
10) : AbstractBooleanSetting { 10) : AbstractBooleanSetting {
11 // No boolean settings currently exist 11 // No boolean settings currently exist
12 EMPTY_SETTING("", "", false); 12 EMPTY_SETTING("", "", false);
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/FloatSetting.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/FloatSetting.kt
index 4c83e9527..96537782a 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/FloatSetting.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/FloatSetting.kt
@@ -6,7 +6,7 @@ package org.yuzu.yuzu_emu.features.settings.model
6enum class FloatSetting( 6enum class FloatSetting(
7 override val key: String, 7 override val key: String,
8 override val section: String, 8 override val section: String,
9 val defaultValue: Float 9 override val defaultValue: Float
10) : AbstractFloatSetting { 10) : AbstractFloatSetting {
11 // No float settings currently exist 11 // No float settings currently exist
12 EMPTY_SETTING("", "", 0f); 12 EMPTY_SETTING("", "", 0f);
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/IntSetting.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/IntSetting.kt
index 164888016..39f62cab7 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/IntSetting.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/IntSetting.kt
@@ -6,7 +6,7 @@ package org.yuzu.yuzu_emu.features.settings.model
6enum class IntSetting( 6enum class IntSetting(
7 override val key: String, 7 override val key: String,
8 override val section: String, 8 override val section: String,
9 val defaultValue: Int 9 override val defaultValue: Int
10) : AbstractIntSetting { 10) : AbstractIntSetting {
11 RENDERER_USE_SPEED_LIMIT( 11 RENDERER_USE_SPEED_LIMIT(
12 "use_speed_limit", 12 "use_speed_limit",
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 3fe43de26..c41180b77 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
@@ -6,7 +6,7 @@ package org.yuzu.yuzu_emu.features.settings.model
6enum class StringSetting( 6enum class StringSetting(
7 override val key: String, 7 override val key: String,
8 override val section: String, 8 override val section: String,
9 defaultValue: String 9 override val defaultValue: String
10) : AbstractStringSetting { 10) : AbstractStringSetting {
11 // No string settings currently exist 11 // No string settings currently exist
12 EMPTY_SETTING("", "", ""); 12 EMPTY_SETTING("", "", "");
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 3f399dec9..f2038c578 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
@@ -5,7 +5,6 @@ package org.yuzu.yuzu_emu.features.settings.model.view
5 5
6import org.yuzu.yuzu_emu.features.settings.model.AbstractSetting 6import 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
8import org.yuzu.yuzu_emu.features.settings.model.StringSetting
9 8
10class DateTimeSetting( 9class DateTimeSetting(
11 val key: String? = null, 10 val key: String? = null,
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 286823562..f0b9083ab 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
@@ -13,6 +13,7 @@ import android.view.ViewGroup
13import android.widget.TextView 13import android.widget.TextView
14import androidx.appcompat.app.AlertDialog 14import androidx.appcompat.app.AlertDialog
15import androidx.appcompat.app.AppCompatActivity 15import androidx.appcompat.app.AppCompatActivity
16import androidx.fragment.app.setFragmentResultListener
16import androidx.recyclerview.widget.RecyclerView 17import androidx.recyclerview.widget.RecyclerView
17import com.google.android.material.datepicker.MaterialDatePicker 18import com.google.android.material.datepicker.MaterialDatePicker
18import com.google.android.material.dialog.MaterialAlertDialogBuilder 19import com.google.android.material.dialog.MaterialAlertDialogBuilder
@@ -24,6 +25,11 @@ import org.yuzu.yuzu_emu.databinding.DialogSliderBinding
24import org.yuzu.yuzu_emu.databinding.ListItemSettingBinding 25import org.yuzu.yuzu_emu.databinding.ListItemSettingBinding
25import org.yuzu.yuzu_emu.databinding.ListItemSettingSwitchBinding 26import org.yuzu.yuzu_emu.databinding.ListItemSettingSwitchBinding
26import org.yuzu.yuzu_emu.databinding.ListItemSettingsHeaderBinding 27import org.yuzu.yuzu_emu.databinding.ListItemSettingsHeaderBinding
28import org.yuzu.yuzu_emu.features.settings.model.AbstractBooleanSetting
29import org.yuzu.yuzu_emu.features.settings.model.AbstractFloatSetting
30import org.yuzu.yuzu_emu.features.settings.model.AbstractIntSetting
31import org.yuzu.yuzu_emu.features.settings.model.AbstractSetting
32import org.yuzu.yuzu_emu.features.settings.model.AbstractStringSetting
27import org.yuzu.yuzu_emu.features.settings.model.FloatSetting 33import org.yuzu.yuzu_emu.features.settings.model.FloatSetting
28import org.yuzu.yuzu_emu.features.settings.model.view.* 34import org.yuzu.yuzu_emu.features.settings.model.view.*
29import org.yuzu.yuzu_emu.features.settings.ui.viewholder.* 35import org.yuzu.yuzu_emu.features.settings.ui.viewholder.*
@@ -52,21 +58,27 @@ class SettingsAdapter(
52 SettingsItem.TYPE_HEADER -> { 58 SettingsItem.TYPE_HEADER -> {
53 HeaderViewHolder(ListItemSettingsHeaderBinding.inflate(inflater), this) 59 HeaderViewHolder(ListItemSettingsHeaderBinding.inflate(inflater), this)
54 } 60 }
61
55 SettingsItem.TYPE_SWITCH -> { 62 SettingsItem.TYPE_SWITCH -> {
56 SwitchSettingViewHolder(ListItemSettingSwitchBinding.inflate(inflater), this) 63 SwitchSettingViewHolder(ListItemSettingSwitchBinding.inflate(inflater), this)
57 } 64 }
65
58 SettingsItem.TYPE_SINGLE_CHOICE, SettingsItem.TYPE_STRING_SINGLE_CHOICE -> { 66 SettingsItem.TYPE_SINGLE_CHOICE, SettingsItem.TYPE_STRING_SINGLE_CHOICE -> {
59 SingleChoiceViewHolder(ListItemSettingBinding.inflate(inflater), this) 67 SingleChoiceViewHolder(ListItemSettingBinding.inflate(inflater), this)
60 } 68 }
69
61 SettingsItem.TYPE_SLIDER -> { 70 SettingsItem.TYPE_SLIDER -> {
62 SliderViewHolder(ListItemSettingBinding.inflate(inflater), this) 71 SliderViewHolder(ListItemSettingBinding.inflate(inflater), this)
63 } 72 }
73
64 SettingsItem.TYPE_SUBMENU -> { 74 SettingsItem.TYPE_SUBMENU -> {
65 SubmenuViewHolder(ListItemSettingBinding.inflate(inflater), this) 75 SubmenuViewHolder(ListItemSettingBinding.inflate(inflater), this)
66 } 76 }
77
67 SettingsItem.TYPE_DATETIME_SETTING -> { 78 SettingsItem.TYPE_DATETIME_SETTING -> {
68 DateTimeViewHolder(ListItemSettingBinding.inflate(inflater), this) 79 DateTimeViewHolder(ListItemSettingBinding.inflate(inflater), this)
69 } 80 }
81
70 else -> { 82 else -> {
71 // TODO: Create an error view since we can't return null now 83 // TODO: Create an error view since we can't return null now
72 HeaderViewHolder(ListItemSettingsHeaderBinding.inflate(inflater), this) 84 HeaderViewHolder(ListItemSettingsHeaderBinding.inflate(inflater), this)
@@ -176,7 +188,10 @@ class SettingsAdapter(
176 item.setSelectedValue(rtcString) 188 item.setSelectedValue(rtcString)
177 clickedItem = null 189 clickedItem = null
178 } 190 }
179 datePicker.show((fragmentView.activityView as AppCompatActivity).supportFragmentManager, "DatePicker") 191 datePicker.show(
192 (fragmentView.activityView as AppCompatActivity).supportFragmentManager,
193 "DatePicker"
194 )
180 } 195 }
181 196
182 fun onSliderClick(item: SliderSetting, position: Int) { 197 fun onSliderClick(item: SliderSetting, position: Int) {
@@ -231,6 +246,7 @@ class SettingsAdapter(
231 fragmentView.putSetting(setting) 246 fragmentView.putSetting(setting)
232 closeDialog() 247 closeDialog()
233 } 248 }
249
234 is StringSingleChoiceSetting -> { 250 is StringSingleChoiceSetting -> {
235 val scSetting = clickedItem as StringSingleChoiceSetting 251 val scSetting = clickedItem as StringSingleChoiceSetting
236 val value = scSetting.getValueAt(which) 252 val value = scSetting.getValueAt(which)
@@ -239,6 +255,7 @@ class SettingsAdapter(
239 fragmentView.putSetting(setting) 255 fragmentView.putSetting(setting)
240 closeDialog() 256 closeDialog()
241 } 257 }
258
242 is SliderSetting -> { 259 is SliderSetting -> {
243 val sliderSetting = clickedItem as SliderSetting 260 val sliderSetting = clickedItem as SliderSetting
244 if (sliderSetting.selectedValue != sliderProgress) { 261 if (sliderSetting.selectedValue != sliderProgress) {
@@ -259,6 +276,25 @@ class SettingsAdapter(
259 sliderProgress = -1 276 sliderProgress = -1
260 } 277 }
261 278
279 fun onLongClick(setting: AbstractSetting, position: Int): Boolean {
280 MaterialAlertDialogBuilder(context)
281 .setMessage(R.string.reset_setting_confirmation)
282 .setPositiveButton(android.R.string.ok) { dialog: DialogInterface, which: Int ->
283 when (setting) {
284 is AbstractBooleanSetting -> setting.boolean = setting.defaultValue as Boolean
285 is AbstractFloatSetting -> setting.float = setting.defaultValue as Float
286 is AbstractIntSetting -> setting.int = setting.defaultValue as Int
287 is AbstractStringSetting -> setting.string = setting.defaultValue as String
288 }
289 notifyItemChanged(position)
290 fragmentView.onSettingChanged()
291 }
292 .setNegativeButton(android.R.string.cancel, null)
293 .show()
294
295 return true
296 }
297
262 fun closeDialog() { 298 fun closeDialog() {
263 if (dialog != null) { 299 if (dialog != null) {
264 if (clickedPosition != -1) { 300 if (clickedPosition != -1) {
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 f6ab92294..9a7b60581 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
@@ -326,6 +326,7 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
326 override val isRuntimeEditable: Boolean = false 326 override val isRuntimeEditable: Boolean = false
327 override val valueAsString: String 327 override val valueAsString: String
328 get() = preferences.getInt(Settings.PREF_THEME, 0).toString() 328 get() = preferences.getInt(Settings.PREF_THEME, 0).toString()
329 override val defaultValue: Any = 0
329 } 330 }
330 331
331 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { 332 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
@@ -362,6 +363,7 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
362 override val isRuntimeEditable: Boolean = false 363 override val isRuntimeEditable: Boolean = false
363 override val valueAsString: String 364 override val valueAsString: String
364 get() = preferences.getInt(Settings.PREF_THEME_MODE, -1).toString() 365 get() = preferences.getInt(Settings.PREF_THEME_MODE, -1).toString()
366 override val defaultValue: Any = -1
365 } 367 }
366 368
367 add( 369 add(
@@ -386,6 +388,7 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
386 override val isRuntimeEditable: Boolean = false 388 override val isRuntimeEditable: Boolean = false
387 override val valueAsString: String 389 override val valueAsString: String
388 get() = preferences.getBoolean(Settings.PREF_BLACK_BACKGROUNDS, false).toString() 390 get() = preferences.getBoolean(Settings.PREF_BLACK_BACKGROUNDS, false).toString()
391 override val defaultValue: Any = false
389 } 392 }
390 393
391 add( 394 add(
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 e433373ed..fb0c6c9e5 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,6 +5,7 @@ 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
8import org.yuzu.yuzu_emu.features.settings.model.view.DateTimeSetting 9import org.yuzu.yuzu_emu.features.settings.model.view.DateTimeSetting
9import org.yuzu.yuzu_emu.features.settings.model.view.SettingsItem 10import org.yuzu.yuzu_emu.features.settings.model.view.SettingsItem
10import org.yuzu.yuzu_emu.features.settings.ui.SettingsAdapter 11import org.yuzu.yuzu_emu.features.settings.ui.SettingsAdapter
@@ -29,4 +30,11 @@ class DateTimeViewHolder(val binding: ListItemSettingBinding, adapter: SettingsA
29 adapter.onDateTimeClick(setting, bindingAdapterPosition) 30 adapter.onDateTimeClick(setting, bindingAdapterPosition)
30 } 31 }
31 } 32 }
33
34 override fun onLongClick(clicked: View): Boolean {
35 if (setting.isEditable) {
36 return adapter.onLongClick(setting.setting!!, bindingAdapterPosition)
37 }
38 return false
39 }
32} 40}
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/HeaderViewHolder.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/HeaderViewHolder.kt
index 1ac00dbfc..f5bcf705c 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/HeaderViewHolder.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/HeaderViewHolder.kt
@@ -22,4 +22,9 @@ class HeaderViewHolder(val binding: ListItemSettingsHeaderBinding, adapter: Sett
22 override fun onClick(clicked: View) { 22 override fun onClick(clicked: View) {
23 // no-op 23 // no-op
24 } 24 }
25
26 override fun onLongClick(clicked: View): Boolean {
27 // no-op
28 return true
29 }
25} 30}
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SettingViewHolder.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SettingViewHolder.kt
index 73375e757..f56460893 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SettingViewHolder.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SettingViewHolder.kt
@@ -9,10 +9,11 @@ import org.yuzu.yuzu_emu.features.settings.model.view.SettingsItem
9import org.yuzu.yuzu_emu.features.settings.ui.SettingsAdapter 9import org.yuzu.yuzu_emu.features.settings.ui.SettingsAdapter
10 10
11abstract class SettingViewHolder(itemView: View, protected val adapter: SettingsAdapter) : 11abstract class SettingViewHolder(itemView: View, protected val adapter: SettingsAdapter) :
12 RecyclerView.ViewHolder(itemView), View.OnClickListener { 12 RecyclerView.ViewHolder(itemView), View.OnClickListener, View.OnLongClickListener {
13 13
14 init { 14 init {
15 itemView.setOnClickListener(this) 15 itemView.setOnClickListener(this)
16 itemView.setOnLongClickListener(this)
16 } 17 }
17 18
18 /** 19 /**
@@ -30,4 +31,6 @@ abstract class SettingViewHolder(itemView: View, protected val adapter: Settings
30 * @param clicked The view that was clicked on. 31 * @param clicked The view that was clicked on.
31 */ 32 */
32 abstract override fun onClick(clicked: View) 33 abstract override fun onClick(clicked: View)
34
35 abstract override fun onLongClick(clicked: View): Boolean
33} 36}
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SingleChoiceViewHolder.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SingleChoiceViewHolder.kt
index b92334522..487e2e141 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SingleChoiceViewHolder.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SingleChoiceViewHolder.kt
@@ -50,4 +50,11 @@ class SingleChoiceViewHolder(val binding: ListItemSettingBinding, adapter: Setti
50 ) 50 )
51 } 51 }
52 } 52 }
53
54 override fun onLongClick(clicked: View): Boolean {
55 if (setting.isEditable) {
56 return adapter.onLongClick(setting.setting!!, bindingAdapterPosition)
57 }
58 return false
59 }
53} 60}
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SliderViewHolder.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SliderViewHolder.kt
index 1c2f74d56..930bdd152 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SliderViewHolder.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SliderViewHolder.kt
@@ -29,4 +29,11 @@ class SliderViewHolder(val binding: ListItemSettingBinding, adapter: SettingsAda
29 adapter.onSliderClick(setting, bindingAdapterPosition) 29 adapter.onSliderClick(setting, bindingAdapterPosition)
30 } 30 }
31 } 31 }
32
33 override fun onLongClick(clicked: View): Boolean {
34 if (setting.isEditable) {
35 return adapter.onLongClick(setting.setting!!, bindingAdapterPosition)
36 }
37 return false
38 }
32} 39}
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SubmenuViewHolder.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SubmenuViewHolder.kt
index 8125fd865..8bd36e9d5 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SubmenuViewHolder.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SubmenuViewHolder.kt
@@ -27,4 +27,9 @@ class SubmenuViewHolder(val binding: ListItemSettingBinding, adapter: SettingsAd
27 override fun onClick(clicked: View) { 27 override fun onClick(clicked: View) {
28 adapter.onSubmenuClick(item) 28 adapter.onSubmenuClick(item)
29 } 29 }
30
31 override fun onLongClick(clicked: View): Boolean {
32 // no-op
33 return true
34 }
30} 35}
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SwitchSettingViewHolder.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SwitchSettingViewHolder.kt
index 825e9d0d0..c24992e21 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SwitchSettingViewHolder.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SwitchSettingViewHolder.kt
@@ -38,4 +38,11 @@ class SwitchSettingViewHolder(val binding: ListItemSettingSwitchBinding, adapter
38 binding.switchWidget.toggle() 38 binding.switchWidget.toggle()
39 } 39 }
40 } 40 }
41
42 override fun onLongClick(clicked: View): Boolean {
43 if (setting.isEditable) {
44 return adapter.onLongClick(setting.setting!!, bindingAdapterPosition)
45 }
46 return false
47 }
41} 48}
diff --git a/src/android/app/src/main/res/values/strings.xml b/src/android/app/src/main/res/values/strings.xml
index c5f4483d1..f6d742206 100644
--- a/src/android/app/src/main/res/values/strings.xml
+++ b/src/android/app/src/main/res/values/strings.xml
@@ -141,6 +141,7 @@
141 <string name="gameid_saved">Saved settings for %1$s</string> 141 <string name="gameid_saved">Saved settings for %1$s</string>
142 <string name="error_saving">Error saving %1$s.ini: %2$s</string> 142 <string name="error_saving">Error saving %1$s.ini: %2$s</string>
143 <string name="loading">Loading...</string> 143 <string name="loading">Loading...</string>
144 <string name="reset_setting_confirmation">Do you want to reset this setting back to its default value?</string>
144 145
145 <!-- GPU driver installation --> 146 <!-- GPU driver installation -->
146 <string name="select_gpu_driver">Select GPU driver</string> 147 <string name="select_gpu_driver">Select GPU driver</string>