From 943d2bc5620afb9dceb05eb68e3dc5e9c7d6989d Mon Sep 17 00:00:00 2001 From: Aleksandr Popovich Date: Thu, 3 Jul 2025 12:53:27 -0400 Subject: [PATCH] [android] warn on higher than resolution 2x Signed-off-by: Aleksandr Popovich --- .../features/settings/model/view/SettingsItem.kt | 4 +++- .../settings/model/view/SingleChoiceSetting.kt | 4 +++- .../features/settings/ui/SettingsDialogFragment.kt | 10 +++++++++- src/android/app/src/main/res/values-sr/strings.xml | 3 +++ src/android/app/src/main/res/values/strings.xml | 3 +++ 5 files changed, 21 insertions(+), 3 deletions(-) diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SettingsItem.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SettingsItem.kt index 91675414a2..b773dd8367 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SettingsItem.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SettingsItem.kt @@ -372,7 +372,9 @@ abstract class SettingsItem( IntSetting.RENDERER_RESOLUTION, titleId = R.string.renderer_resolution, choicesId = R.array.rendererResolutionNames, - valuesId = R.array.rendererResolutionValues + valuesId = R.array.rendererResolutionValues, + warnChoices = (5..6).toList(), + warningMessage = R.string.warning_resolution ) ) diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SingleChoiceSetting.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SingleChoiceSetting.kt index ea5e099ede..624bc2445c 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SingleChoiceSetting.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SingleChoiceSetting.kt @@ -15,7 +15,9 @@ class SingleChoiceSetting( @StringRes descriptionId: Int = 0, descriptionString: String = "", @ArrayRes val choicesId: Int, - @ArrayRes val valuesId: Int + @ArrayRes val valuesId: Int, + val warnChoices: List = ArrayList(), + @StringRes val warningMessage: Int = 0, ) : SettingsItem(setting, titleId, titleString, descriptionId, descriptionString) { override val type = TYPE_SINGLE_CHOICE diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsDialogFragment.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsDialogFragment.kt index 1485d9a6cc..029a040cda 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsDialogFragment.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsDialogFragment.kt @@ -14,7 +14,6 @@ import android.text.TextWatcher import android.view.LayoutInflater import android.view.View import android.view.ViewGroup -import android.widget.EditText import androidx.core.view.isVisible import androidx.fragment.app.DialogFragment import androidx.fragment.app.activityViewModels @@ -113,6 +112,7 @@ class SettingsDialogFragment : DialogFragment(), DialogInterface.OnClickListener SettingsItem.TYPE_SINGLE_CHOICE -> { val item = settingsViewModel.clickedItem as SingleChoiceSetting val value = getSelectionForSingleChoiceValue(item) + MaterialAlertDialogBuilder(requireContext()) .setTitle(item.title) .setSingleChoiceItems(item.choicesId, value, this) @@ -125,6 +125,7 @@ class SettingsDialogFragment : DialogFragment(), DialogInterface.OnClickListener settingsViewModel.setSliderTextValue(item.getSelectedValue().toFloat(), item.units) sliderBinding.slider.apply { + stepSize = 1.0f valueFrom = item.min.toFloat() valueTo = item.max.toFloat() value = settingsViewModel.sliderProgress.value.toFloat() @@ -244,6 +245,13 @@ class SettingsDialogFragment : DialogFragment(), DialogInterface.OnClickListener is SingleChoiceSetting -> { val scSetting = settingsViewModel.clickedItem as SingleChoiceSetting val value = getValueForSingleChoiceSelection(scSetting, which) + + if (value in scSetting.warnChoices) { + MaterialAlertDialogBuilder(requireContext()) + .setTitle(R.string.warning) + .setMessage(scSetting.warningMessage) + .create().show() + } scSetting.setSelectedValue(value) } diff --git a/src/android/app/src/main/res/values-sr/strings.xml b/src/android/app/src/main/res/values-sr/strings.xml index 703429ddd5..4ad93b9709 100644 --- a/src/android/app/src/main/res/values-sr/strings.xml +++ b/src/android/app/src/main/res/values-sr/strings.xml @@ -254,6 +254,7 @@ О томе Изградите верзију, кредите и још много тога Помоћи + упозорење Прескочити Отказати Инсталирајте Амиибо Кеис @@ -434,6 +435,8 @@ Анисотропни филтрирање Побољшава квалитет текстура када се посматра у косим угловима + Познато је да скалирање резолуције изнад 2x изазива проблеме и може довести до значајног успоравања вашег уређаја. + ЦПУ ЦПУ уклањање погрешака diff --git a/src/android/app/src/main/res/values/strings.xml b/src/android/app/src/main/res/values/strings.xml index 9a937b37bb..2e63272f29 100644 --- a/src/android/app/src/main/res/values/strings.xml +++ b/src/android/app/src/main/res/values/strings.xml @@ -288,6 +288,7 @@ About Build version, credits, and more Help + Warning Skip Cancel Install Amiibo keys @@ -489,6 +490,8 @@ Anisotropic filtering Improves the quality of textures when viewed at oblique angles + Resolution scaling above 2x is known to cause issues, and may result in significant slowdowns of your device. + CPU CPU Debugging