diff options
| author | 2023-05-13 16:24:56 -0400 | |
|---|---|---|
| committer | 2023-06-03 00:06:01 -0700 | |
| commit | f7934bdaf7f27bb5e39cbd1c53a01072334517a5 (patch) | |
| tree | 4e3f422088f46955c073407546e1063f213296de /src/android | |
| parent | android: Fix issues with ea/main icons and version codes (diff) | |
| download | yuzu-f7934bdaf7f27bb5e39cbd1c53a01072334517a5.tar.gz yuzu-f7934bdaf7f27bb5e39cbd1c53a01072334517a5.tar.xz yuzu-f7934bdaf7f27bb5e39cbd1c53a01072334517a5.zip | |
android: Reset setting on long press
Diffstat (limited to 'src/android')
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 | |||
| 6 | enum class BooleanSetting( | 6 | enum 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 | |||
| 6 | enum class FloatSetting( | 6 | enum 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 | |||
| 6 | enum class IntSetting( | 6 | enum 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 | |||
| 6 | enum class StringSetting( | 6 | enum 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 | ||
| 6 | import org.yuzu.yuzu_emu.features.settings.model.AbstractSetting | 6 | import org.yuzu.yuzu_emu.features.settings.model.AbstractSetting |
| 7 | import org.yuzu.yuzu_emu.features.settings.model.AbstractStringSetting | 7 | import org.yuzu.yuzu_emu.features.settings.model.AbstractStringSetting |
| 8 | import org.yuzu.yuzu_emu.features.settings.model.StringSetting | ||
| 9 | 8 | ||
| 10 | class DateTimeSetting( | 9 | class 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 | |||
| 13 | import android.widget.TextView | 13 | import android.widget.TextView |
| 14 | import androidx.appcompat.app.AlertDialog | 14 | import androidx.appcompat.app.AlertDialog |
| 15 | import androidx.appcompat.app.AppCompatActivity | 15 | import androidx.appcompat.app.AppCompatActivity |
| 16 | import androidx.fragment.app.setFragmentResultListener | ||
| 16 | import androidx.recyclerview.widget.RecyclerView | 17 | import androidx.recyclerview.widget.RecyclerView |
| 17 | import com.google.android.material.datepicker.MaterialDatePicker | 18 | import com.google.android.material.datepicker.MaterialDatePicker |
| 18 | import com.google.android.material.dialog.MaterialAlertDialogBuilder | 19 | import com.google.android.material.dialog.MaterialAlertDialogBuilder |
| @@ -24,6 +25,11 @@ import org.yuzu.yuzu_emu.databinding.DialogSliderBinding | |||
| 24 | import org.yuzu.yuzu_emu.databinding.ListItemSettingBinding | 25 | import org.yuzu.yuzu_emu.databinding.ListItemSettingBinding |
| 25 | import org.yuzu.yuzu_emu.databinding.ListItemSettingSwitchBinding | 26 | import org.yuzu.yuzu_emu.databinding.ListItemSettingSwitchBinding |
| 26 | import org.yuzu.yuzu_emu.databinding.ListItemSettingsHeaderBinding | 27 | import org.yuzu.yuzu_emu.databinding.ListItemSettingsHeaderBinding |
| 28 | import org.yuzu.yuzu_emu.features.settings.model.AbstractBooleanSetting | ||
| 29 | import org.yuzu.yuzu_emu.features.settings.model.AbstractFloatSetting | ||
| 30 | import org.yuzu.yuzu_emu.features.settings.model.AbstractIntSetting | ||
| 31 | import org.yuzu.yuzu_emu.features.settings.model.AbstractSetting | ||
| 32 | import org.yuzu.yuzu_emu.features.settings.model.AbstractStringSetting | ||
| 27 | import org.yuzu.yuzu_emu.features.settings.model.FloatSetting | 33 | import org.yuzu.yuzu_emu.features.settings.model.FloatSetting |
| 28 | import org.yuzu.yuzu_emu.features.settings.model.view.* | 34 | import org.yuzu.yuzu_emu.features.settings.model.view.* |
| 29 | import org.yuzu.yuzu_emu.features.settings.ui.viewholder.* | 35 | import 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 | ||
| 6 | import android.view.View | 6 | import android.view.View |
| 7 | import org.yuzu.yuzu_emu.databinding.ListItemSettingBinding | 7 | import org.yuzu.yuzu_emu.databinding.ListItemSettingBinding |
| 8 | import org.yuzu.yuzu_emu.features.settings.model.AbstractStringSetting | ||
| 8 | import org.yuzu.yuzu_emu.features.settings.model.view.DateTimeSetting | 9 | import org.yuzu.yuzu_emu.features.settings.model.view.DateTimeSetting |
| 9 | import org.yuzu.yuzu_emu.features.settings.model.view.SettingsItem | 10 | import org.yuzu.yuzu_emu.features.settings.model.view.SettingsItem |
| 10 | import org.yuzu.yuzu_emu.features.settings.ui.SettingsAdapter | 11 | import 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 | |||
| 9 | import org.yuzu.yuzu_emu.features.settings.ui.SettingsAdapter | 9 | import org.yuzu.yuzu_emu.features.settings.ui.SettingsAdapter |
| 10 | 10 | ||
| 11 | abstract class SettingViewHolder(itemView: View, protected val adapter: SettingsAdapter) : | 11 | abstract 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> |