[android] Fix 1.5x and warn at resolutions >= 2x #21

Merged
crueter merged 2 commits from refs/pull/21/head into master 2025-07-06 20:20:33 +02:00
5 changed files with 21 additions and 3 deletions
Showing only changes of commit 943d2bc562 - Show all commits

View file

@ -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
)
)

View file

@ -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<Int> = ArrayList(),
@StringRes val warningMessage: Int = 0,
) : SettingsItem(setting, titleId, titleString, descriptionId, descriptionString) {
override val type = TYPE_SINGLE_CHOICE

View file

@ -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)
}

View file

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

View file

@ -288,6 +288,7 @@
<string name="about">About</string>
<string name="about_description">Build version, credits, and more</string>
<string name="warning_help">Help</string>
<string name="warning">Warning</string>
<string name="warning_skip">Skip</string>
<string name="warning_cancel">Cancel</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_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 -->
<string name="cpu">CPU</string>
<string name="cpu_debug_mode">CPU Debugging</string>