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

Co-authored-by: Aleksandr Popovich <alekpopo@pm.me>
Reviewed-on: https://git.bixed.xyz/Bix/eden/pulls/21
This commit is contained in:
crueter 2025-07-06 18:20:30 +00:00
parent 444109c251
commit 05f536694a
28 changed files with 56 additions and 10 deletions

View file

@ -378,7 +378,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..7).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,15 @@ 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)
.setPositiveButton(R.string.ok, null)
.create()
.show()
}
scSetting.setSelectedValue(value)
}

View file

@ -678,6 +678,7 @@
<string name="resolution_half">0.5X (360p/540p)</string>
<string name="resolution_three_quarter">0.75X (540p/810p)</string>
<string name="resolution_one">1X (720p/1080p)</string>
<string name="resolution_three_half">1.5X (1080p/1620p)</string>
<string name="resolution_two">2X (1440p/2160p) (بطيء)</string>
<string name="resolution_three">3X (2160p/3240p) (بطيء)</string>
<string name="resolution_four">4X (2880p/4320p) (بطيء)</string>

View file

@ -636,6 +636,7 @@
<string name="resolution_half">0.5X (360p/540p)</string>
<string name="resolution_three_quarter">0.75X (540p/810p)</string>
<string name="resolution_one">1X (720p/1080p)</string>
<string name="resolution_three_half">1.5X (1080p/1620p)</string>
<string name="resolution_two">2X (1440p/2160p) (خاو)</string>
<string name="resolution_three">3X (2160p/3240p) (خاو)</string>
<string name="resolution_four">4X (2880p/4320p) (خاو)</string>

View file

@ -577,6 +577,7 @@
<string name="resolution_half">0.5X (360p/540p)</string>
<string name="resolution_three_quarter">0.75X (540p/810p)</string>
<string name="resolution_one">1X (720p/1080p)</string>
<string name="resolution_three_half">1.5X (1080p/1620p)</string>
<string name="resolution_two">2X (1440p/2160p) (Pomalé)</string>
<string name="resolution_three">3X (2160p/3240p) (Pomalé)</string>
<string name="resolution_four">4X (2880p/4320p) (Pomalé)</string>

View file

@ -721,6 +721,7 @@ Wirklich fortfahren?</string>
<string name="resolution_half">0.5X (360p/540p)</string>
<string name="resolution_three_quarter">0.75X (540p/810p)</string>
<string name="resolution_one">1X (720p/1080p)</string>
<string name="resolution_three_half">1.5X (1080p/1620p)</string>
<string name="resolution_two">2X (1440p/2160p) (Langsam)</string>
<string name="resolution_three">3X (2160p/3240p) (Langsam)</string>
<string name="resolution_four">4X (2880p/4320p) (Langsam)</string>

View file

@ -786,6 +786,7 @@
<string name="resolution_half">0.5X (360p/540p)</string>
<string name="resolution_three_quarter">0.75X (540p/810p)</string>
<string name="resolution_one">x1 (720p/1080p)</string>
<string name="resolution_three_half">x1 (1080p/1620p)</string>
<string name="resolution_two">2X (1440p/2160p) (Lento)</string>
<string name="resolution_three">3X (2160p/3240p) (Lento)</string>
<string name="resolution_four">4X (2880p/4320p) (Lento)</string>

View file

@ -785,6 +785,7 @@
<string name="resolution_half">0.5X (360p/540p)</string>
<string name="resolution_three_quarter">0.75X (540p/810p)</string>
<string name="resolution_one">1X (720p/1080p)</string>
<string name="resolution_three_half">1.5X (1080p/1620p)</string>
<string name="resolution_two">2X (1440p/2160p) (کند)</string>
<string name="resolution_three">3X (2160p/3240p) (کند)</string>
<string name="resolution_four">4X (2880p/4320p) (کند)</string>

View file

@ -834,6 +834,7 @@
<string name="resolution_half">0.5X (360p/540p)</string>
<string name="resolution_three_quarter">0.75X (540p/810p)</string>
<string name="resolution_one">1X (720p/1080p)</string>
<string name="resolution_three_half">1.5X (1080p/1620p)</string>
<string name="resolution_two">2X (1440p/2160p) (Lent)</string>
<string name="resolution_three">3X (2160p/3240p) (Lent)</string>
<string name="resolution_four">4X (2880p/4320p) (Lent)</string>

View file

@ -698,6 +698,7 @@
<string name="resolution_half">0.5X (360p/540p)</string>
<string name="resolution_three_quarter">0.75X (540p/810p)</string>
<string name="resolution_one">1X (720p/1080p)</string>
<string name="resolution_three_half">1.5X (1080p/1620p)</string>
<string name="resolution_two">2X (1440p/2160p) (איטי)</string>
<string name="resolution_three">3X (2160p/3240p) (איטי)</string>
<string name="resolution_four">4X (2880p/4320p) (איטי)</string>

View file

@ -822,6 +822,7 @@
<string name="resolution_half">0.5X (360p/540p)</string>
<string name="resolution_three_quarter">0.75X (540p/810p)</string>
<string name="resolution_one">1X (720p/1080p)</string>
<string name="resolution_three_half">1.5X (1080p/1620p)</string>
<string name="resolution_two">2X (1440p/2160p) (Lassú)</string>
<string name="resolution_three">3X (2160p/3240p) (Lassú)</string>
<string name="resolution_four">4X (2880p/4320p) (Lassú)</string>

View file

@ -778,6 +778,7 @@
<string name="resolution_half">0.5X (360p/540p)</string>
<string name="resolution_three_quarter">0.75X (540p/810p)</string>
<string name="resolution_one">1X (720p/1080p)</string>
<string name="resolution_three_half">1.5X (1080p/1620p)</string>
<string name="resolution_two">2X (1440p/2160p) (Lambat)</string>
<string name="resolution_three">3X (2160p/3240p) (Lambat)</string>
<string name="resolution_four">4X (2880p/4320p) (Lambat)</string>

View file

@ -736,6 +736,7 @@
<string name="resolution_half">0.5X (360p/540p)</string>
<string name="resolution_three_quarter">0.75X (540p/810p)</string>
<string name="resolution_one">1X (720p/1080p)</string>
<string name="resolution_three_half">1.5X (1080p/1620p)</string>
<string name="resolution_two">2X (1440p/2160p) (Slow)</string>
<string name="resolution_three">3X (2160p/3240p) (Slow)</string>
<string name="resolution_four">4X (2880p/4320p) (Slow)</string>

View file

@ -686,6 +686,7 @@
<string name="resolution_half">0.5X (360p/540p)</string>
<string name="resolution_three_quarter">0.75X (540p/810p)</string>
<string name="resolution_one">1X (720p/1080p)</string>
<string name="resolution_three_half">1.5X (1080p/1620p)</string>
<string name="resolution_two">2X (1440p/2160p) (低速)</string>
<string name="resolution_three">3X (2160p/3240p) (低速)</string>
<string name="resolution_four">4X (2880p/4320p) (低速)</string>

View file

@ -777,6 +777,7 @@
<string name="resolution_half">0.5X (360p/540p)</string>
<string name="resolution_three_quarter">0.75X (540p/810p)</string>
<string name="resolution_one">1X (720p/1080p)</string>
<string name="resolution_three_half">1.5X (1080p/1620p)</string>
<string name="resolution_two">2X (1440p/2160p) (느림)</string>
<string name="resolution_three">3X (2160p/3240p) (느림)</string>
<string name="resolution_four">4X (2880p/4320p) (느림)</string>

View file

@ -645,6 +645,7 @@
<string name="resolution_half">0.5X (360p/540p)</string>
<string name="resolution_three_quarter">0.75X (540p/810p)</string>
<string name="resolution_one">1X (720p/1080p)</string>
<string name="resolution_three_half">1.5X (1080p/1620p)</string>
<string name="resolution_two">2X (1440p/2160p) (Slow)</string>
<string name="resolution_three">3X (2160p/3240p) (Slow)</string>
<string name="resolution_four">4X (2880p/4320p) (Slow)</string>

View file

@ -643,6 +643,7 @@
<string name="resolution_half">0.5X (360p/540p)</string>
<string name="resolution_three_quarter">0.75X (540p/810p)</string>
<string name="resolution_one">1X (720p/1080p)</string>
<string name="resolution_three_half">1.5X (1080p/1620p)</string>
<string name="resolution_two">2X (1440p/2160p) (Wolno)</string>
<string name="resolution_three">3X (2160p/3240p) (Wolno)</string>
<string name="resolution_four">4X (2880p/4320p) (Wolno)</string>

View file

@ -835,6 +835,7 @@ uma tentativa de mapeamento automático</string>
<string name="resolution_half">0.5X (360p/540p)</string>
<string name="resolution_three_quarter">0.75X (540p/810p)</string>
<string name="resolution_one">1X (720p/1080p)</string>
<string name="resolution_three_half">1.5X (1080p/1620p)</string>
<string name="resolution_two">2X (1440p/2160p) (Lento)</string>
<string name="resolution_three">3X (2160p/3240p) (Lento)</string>
<string name="resolution_four">4X (2880p/4320p) (Lento)</string>

View file

@ -835,6 +835,7 @@ uma tentativa de mapeamento automático</string>
<string name="resolution_half">0.5X (360p/540p)</string>
<string name="resolution_three_quarter">0.75X (540p/810p)</string>
<string name="resolution_one">1X (720p/1080p)</string>
<string name="resolution_three_half">1.5X (1080p/1620p)</string>
<string name="resolution_two">2X (1440p/2160p) (Lento)</string>
<string name="resolution_three">3X (2160p/3240p) (Lento)</string>
<string name="resolution_four">4X (2880p/4320p) (Lento)</string>

View file

@ -836,6 +836,7 @@
<string name="resolution_half">0.5X (360p/540p)</string>
<string name="resolution_three_quarter">0.75X (540p/810p)</string>
<string name="resolution_one">1X (720p/1080p)</string>
<string name="resolution_three_half">1.5X (1080p/1620p)</string>
<string name="resolution_two">2X (1440p/2160p) (Медленно)</string>
<string name="resolution_three">3X (2160p/3240p) (Медленно)</string>
<string name="resolution_four">4X (2880p/4320p) (Медленно)</string>

View file

@ -279,6 +279,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>
@ -465,6 +466,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>
@ -852,13 +855,14 @@
<string name="vram_usage_aggressive">Агресиван</string>
<!-- Resolutions -->
<string name="resolution_quarter">0,25к (180п / 270п)</string>
<string name="resolution_half">0,5к (360п / 540п)</string>
<string name="resolution_three_quarter">0,75к (540п / 810п)</string>
<string name="resolution_one">1к (720п / 1080п)</string>
<string name="resolution_two">2к (1440п / 2160п) (споро)</string>
<string name="resolution_three">3к (2160п / 3240п) (споро)</string>
<string name="resolution_four">4к (2880п / 4320п) (споро)</string>
<string name="resolution_quarter">0.25X (180p/270p)</string>
<string name="resolution_half">0.5X (360p/540p)</string>
<string name="resolution_three_quarter">0.75X (540p/810p)</string>
<string name="resolution_one">1X (720p/1080p)</string>
<string name="resolution_three_half">1.5X (1080p/1620p)</string>
<string name="resolution_two">2X (1440p/2160p) (споро)</string>
<string name="resolution_three">3X (2160p/3240p) (споро)</string>
<string name="resolution_four">4X (2880p/4320p) (споро)</string>
<!-- Renderer VSync -->
<string name="renderer_vsync_immediate">Непосредан (искључен)</string>

View file

@ -625,6 +625,7 @@
<string name="resolution_half">0.5X (360p/540p)</string>
<string name="resolution_three_quarter">0.75X (540p/810p)</string>
<string name="resolution_one">1X (720p/1080p)</string>
<string name="resolution_three_half">1.5X (1080p/1620p)</string>
<string name="resolution_two">2X (1440p/2160p) (Повільно)</string>
<string name="resolution_three">3X (2160p/3240p) (Повільно)</string>
<string name="resolution_four">4X (2880p/4320p) (Повільно)</string>

View file

@ -648,6 +648,7 @@
<string name="resolution_half">0.5X (360p/540p)</string>
<string name="resolution_three_quarter">0.75X (540p/810p)</string>
<string name="resolution_one">1X (720p/1080p)</string>
<string name="resolution_three_half">1.5X (1080p/1620p)</string>
<string name="resolution_two">2X (1440p/2160p) (Chậm)</string>
<string name="resolution_three">3X (2160p/3240p) (Chậm)</string>
<string name="resolution_four">4X (2880p/4320p) (Chậm)</string>

View file

@ -829,6 +829,7 @@
<string name="resolution_half">0.5X (360p/540p)</string>
<string name="resolution_three_quarter">0.75X (540p/810p)</string>
<string name="resolution_one">1X (720p/1080p)</string>
<string name="resolution_three_half">1.5X (1080p/1620p)</string>
<string name="resolution_two">2X (1440p/2160p) (慢速)</string>
<string name="resolution_three">3X (2160p/3240p) (慢速)</string>
<string name="resolution_four">4X (2880p/4320p) (慢速)</string>

View file

@ -835,6 +835,7 @@
<string name="resolution_half">0.5X (360p/540p)</string>
<string name="resolution_three_quarter">0.75X (540p/810p)</string>
<string name="resolution_one">1X (720p/1080p)</string>
<string name="resolution_three_half">1.5X (1080p/1620p)</string>
<string name="resolution_two">2X (1440p/2160p) (慢)</string>
<string name="resolution_three">3X (2160p/3240p) (慢)</string>
<string name="resolution_four">4X (2880p/4320p) (慢)</string>

View file

@ -180,6 +180,7 @@
<item>@string/resolution_half</item>
<item>@string/resolution_three_quarter</item>
<item>@string/resolution_one</item>
<item>@string/resolution_three_half</item>
<item>@string/resolution_two</item>
<item>@string/resolution_three</item>
<item>@string/resolution_four</item>
@ -200,6 +201,7 @@
<item>4</item>
<item>5</item>
<item>6</item>
<item>7</item>
</integer-array>
<integer-array name="rendererVSyncValues">

View file

@ -290,6 +290,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>
@ -491,6 +492,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>
@ -884,6 +887,7 @@
<string name="resolution_half">0.5X (360p/540p)</string>
<string name="resolution_three_quarter">0.75X (540p/810p)</string>
<string name="resolution_one">1X (720p/1080p)</string>
<string name="resolution_three_half">1.5X (1080p/1620p)</string>
<string name="resolution_two">2X (1440p/2160p) (Slow)</string>
<string name="resolution_three">3X (2160p/3240p) (Slow)</string>
<string name="resolution_four">4X (2880p/4320p) (Slow)</string>