[android] warn on higher than resolution 2x

Signed-off-by: Aleksandr Popovich <alekpopo@pm.me>
This commit is contained in:
Aleksandr Popovich 2025-07-03 12:53:27 -04:00
parent a002730d68
commit 943d2bc562
Signed by: AleksandrPopovich
GPG key ID: 459ABE97C452F1C4
5 changed files with 21 additions and 3 deletions

View file

@ -372,7 +372,9 @@ abstract class SettingsItem(
IntSetting.RENDERER_RESOLUTION, IntSetting.RENDERER_RESOLUTION,
titleId = R.string.renderer_resolution, titleId = R.string.renderer_resolution,
choicesId = R.array.rendererResolutionNames, choicesId = R.array.rendererResolutionNames,
valuesId = R.array.rendererResolutionValues valuesId = R.array.rendererResolutionValues,
warnChoices = (5..6).toList(),
warningMessage = R.string.warning_resolution
) )
) )

View file

@ -15,7 +15,9 @@ class SingleChoiceSetting(
@StringRes descriptionId: Int = 0, @StringRes descriptionId: Int = 0,
descriptionString: String = "", descriptionString: String = "",
@ArrayRes val choicesId: Int, @ArrayRes val choicesId: Int,
@ArrayRes val valuesId: Int @ArrayRes val valuesId: Int,
val warnChoices: List<Int> = ArrayList(),
@StringRes val warningMessage: Int = 0,
) : SettingsItem(setting, titleId, titleString, descriptionId, descriptionString) { ) : SettingsItem(setting, titleId, titleString, descriptionId, descriptionString) {
override val type = TYPE_SINGLE_CHOICE override val type = TYPE_SINGLE_CHOICE

View file

@ -14,7 +14,6 @@ import android.text.TextWatcher
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.EditText
import androidx.core.view.isVisible import androidx.core.view.isVisible
import androidx.fragment.app.DialogFragment import androidx.fragment.app.DialogFragment
import androidx.fragment.app.activityViewModels import androidx.fragment.app.activityViewModels
@ -113,6 +112,7 @@ class SettingsDialogFragment : DialogFragment(), DialogInterface.OnClickListener
SettingsItem.TYPE_SINGLE_CHOICE -> { SettingsItem.TYPE_SINGLE_CHOICE -> {
val item = settingsViewModel.clickedItem as SingleChoiceSetting val item = settingsViewModel.clickedItem as SingleChoiceSetting
val value = getSelectionForSingleChoiceValue(item) val value = getSelectionForSingleChoiceValue(item)
MaterialAlertDialogBuilder(requireContext()) MaterialAlertDialogBuilder(requireContext())
.setTitle(item.title) .setTitle(item.title)
.setSingleChoiceItems(item.choicesId, value, this) .setSingleChoiceItems(item.choicesId, value, this)
@ -125,6 +125,7 @@ class SettingsDialogFragment : DialogFragment(), DialogInterface.OnClickListener
settingsViewModel.setSliderTextValue(item.getSelectedValue().toFloat(), item.units) settingsViewModel.setSliderTextValue(item.getSelectedValue().toFloat(), item.units)
sliderBinding.slider.apply { sliderBinding.slider.apply {
stepSize = 1.0f
valueFrom = item.min.toFloat() valueFrom = item.min.toFloat()
valueTo = item.max.toFloat() valueTo = item.max.toFloat()
value = settingsViewModel.sliderProgress.value.toFloat() value = settingsViewModel.sliderProgress.value.toFloat()
@ -244,6 +245,13 @@ class SettingsDialogFragment : DialogFragment(), DialogInterface.OnClickListener
is SingleChoiceSetting -> { is SingleChoiceSetting -> {
val scSetting = settingsViewModel.clickedItem as SingleChoiceSetting val scSetting = settingsViewModel.clickedItem as SingleChoiceSetting
val value = getValueForSingleChoiceSelection(scSetting, which) val value = getValueForSingleChoiceSelection(scSetting, which)
if (value in scSetting.warnChoices) {
MaterialAlertDialogBuilder(requireContext())
.setTitle(R.string.warning)
.setMessage(scSetting.warningMessage)
.create().show()
}
scSetting.setSelectedValue(value) scSetting.setSelectedValue(value)
} }

View file

@ -254,6 +254,7 @@
<string name="about">О томе</string> <string name="about">О томе</string>
<string name="about_description">Изградите верзију, кредите и још много тога</string> <string name="about_description">Изградите верзију, кредите и још много тога</string>
<string name="warning_help">Помоћи</string> <string name="warning_help">Помоћи</string>
<string name="warning">упозорење</string>
<string name="warning_skip">Прескочити</string> <string name="warning_skip">Прескочити</string>
<string name="warning_cancel">Отказати</string> <string name="warning_cancel">Отказати</string>
<string name="install_amiibo_keys">Инсталирајте Амиибо Кеис</string> <string name="install_amiibo_keys">Инсталирајте Амиибо Кеис</string>
@ -434,6 +435,8 @@
<string name="anisotropic_filtering">Анисотропни филтрирање</string> <string name="anisotropic_filtering">Анисотропни филтрирање</string>
<string name="anisotropic_filtering_description">Побољшава квалитет текстура када се посматра у косим угловима</string> <string name="anisotropic_filtering_description">Побољшава квалитет текстура када се посматра у косим угловима</string>
<string name="warning_resolution">Познато је да скалирање резолуције изнад 2x изазива проблеме и може довести до значајног успоравања вашег уређаја.</string>
<!-- Debug settings strings --> <!-- Debug settings strings -->
<string name="cpu">ЦПУ</string> <string name="cpu">ЦПУ</string>
<string name="cpu_debug_mode">ЦПУ уклањање погрешака</string> <string name="cpu_debug_mode">ЦПУ уклањање погрешака</string>

View file

@ -288,6 +288,7 @@
<string name="about">About</string> <string name="about">About</string>
<string name="about_description">Build version, credits, and more</string> <string name="about_description">Build version, credits, and more</string>
<string name="warning_help">Help</string> <string name="warning_help">Help</string>
<string name="warning">Warning</string>
<string name="warning_skip">Skip</string> <string name="warning_skip">Skip</string>
<string name="warning_cancel">Cancel</string> <string name="warning_cancel">Cancel</string>
<string name="install_amiibo_keys">Install Amiibo keys</string> <string name="install_amiibo_keys">Install Amiibo keys</string>
@ -489,6 +490,8 @@
<string name="anisotropic_filtering">Anisotropic filtering</string> <string name="anisotropic_filtering">Anisotropic filtering</string>
<string name="anisotropic_filtering_description">Improves the quality of textures when viewed at oblique angles</string> <string name="anisotropic_filtering_description">Improves the quality of textures when viewed at oblique angles</string>
<string name="warning_resolution">Resolution scaling above 2x is known to cause issues, and may result in significant slowdowns of your device.</string>
<!-- Debug settings strings --> <!-- Debug settings strings -->
<string name="cpu">CPU</string> <string name="cpu">CPU</string>
<string name="cpu_debug_mode">CPU Debugging</string> <string name="cpu_debug_mode">CPU Debugging</string>