diff options
| author | Charles Lombardo <clombardo169@gmail.com> | 2023-08-30 10:07:07 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-08-30 10:07:07 -0400 |
| commit | 5e5887a378db28324a8fc8825f21539525412e12 (patch) | |
| tree | 9a032dccfcef8cd21e2405a65fba89e1171295a9 /Source/Android/app/src/main/java | |
| parent | efa820763a4e3ae55d1b6d253b9b71b09c9595b9 (diff) | |
| parent | 53fc3446d5bbfe2b30b344e25316ffc2bcb3453b (diff) | |
Merge pull request #12095 from t895/color-space-settings
Android: Expose color space settings
Diffstat (limited to 'Source/Android/app/src/main/java')
13 files changed, 214 insertions, 71 deletions
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/BooleanSetting.kt b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/BooleanSetting.kt index e32bd1f465..298f2ebe24 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/BooleanSetting.kt +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/BooleanSetting.kt @@ -763,6 +763,18 @@ enum class BooleanSetting( "ArbitraryMipmapDetection", true ), + GFX_CC_CORRECT_COLOR_SPACE( + Settings.FILE_GFX, + Settings.SECTION_GFX_COLOR_CORRECTION, + "CorrectColorSpace", + false + ), + GFX_CC_CORRECT_GAMMA( + Settings.FILE_GFX, + Settings.SECTION_GFX_COLOR_CORRECTION, + "CorrectGamma", + false + ), GFX_STEREO_SWAP_EYES(Settings.FILE_GFX, Settings.SECTION_STEREOSCOPY, "StereoSwapEyes", false), GFX_HACK_EFB_ACCESS_ENABLE( Settings.FILE_GFX, diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/FloatSetting.kt b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/FloatSetting.kt index 99b73251e7..ec5bda11cc 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/FloatSetting.kt +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/FloatSetting.kt @@ -10,7 +10,8 @@ enum class FloatSetting( ) : AbstractFloatSetting { // These entries have the same names and order as in C++, just for consistency. MAIN_EMULATION_SPEED(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "EmulationSpeed", 1.0f), - MAIN_OVERCLOCK(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "Overclock", 1.0f); + MAIN_OVERCLOCK(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "Overclock", 1.0f), + GFX_CC_GAME_GAMMA(Settings.FILE_GFX, Settings.SECTION_GFX_COLOR_CORRECTION, "GameGamma", 2.35f); override val isOverridden: Boolean get() = NativeConfig.isOverridden(file, section, key) diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/IntSetting.kt b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/IntSetting.kt index 256e68007e..22bb47528b 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/IntSetting.kt +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/IntSetting.kt @@ -119,6 +119,12 @@ enum class IntSetting( "MaxAnisotropy", 0 ), + GFX_CC_GAME_COLOR_SPACE( + Settings.FILE_GFX, + Settings.SECTION_GFX_COLOR_CORRECTION, + "GameColorSpace", + 0 + ), GFX_STEREO_MODE(Settings.FILE_GFX, Settings.SECTION_STEREOSCOPY, "StereoMode", 0), GFX_STEREO_DEPTH(Settings.FILE_GFX, Settings.SECTION_STEREOSCOPY, "StereoDepth", 20), GFX_STEREO_CONVERGENCE_PERCENTAGE( diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/Settings.kt b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/Settings.kt index b363104703..27291718dc 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/Settings.kt +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/Settings.kt @@ -135,6 +135,7 @@ class Settings : Closeable { const val SECTION_LOGGER_OPTIONS = "Options" const val SECTION_GFX_SETTINGS = "Settings" const val SECTION_GFX_ENHANCEMENTS = "Enhancements" + const val SECTION_GFX_COLOR_CORRECTION = "ColorCorrection" const val SECTION_GFX_HACKS = "Hacks" const val SECTION_DEBUG = "Debug" const val SECTION_EMULATED_USB_DEVICES = "EmulatedUSBDevices" diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/view/FloatSliderSetting.kt b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/view/FloatSliderSetting.kt index 5b2ee40fe7..c226e3e47e 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/view/FloatSliderSetting.kt +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/view/FloatSliderSetting.kt @@ -6,7 +6,8 @@ import android.content.Context import org.dolphinemu.dolphinemu.features.settings.model.AbstractFloatSetting import org.dolphinemu.dolphinemu.features.settings.model.AbstractSetting import org.dolphinemu.dolphinemu.features.settings.model.Settings -import kotlin.math.roundToInt +import java.math.BigDecimal +import java.math.MathContext open class FloatSliderSetting : SliderSetting { var floatSetting: AbstractFloatSetting @@ -19,11 +20,12 @@ open class FloatSliderSetting : SliderSetting { setting: AbstractFloatSetting, titleId: Int, descriptionId: Int, - min: Int, - max: Int, + min: Float, + max: Float, units: String?, - stepSize: Int - ) : super(context, titleId, descriptionId, min, max, units, stepSize) { + stepSize: Float, + showDecimal: Boolean + ) : super(context, titleId, descriptionId, min, max, units, stepSize, showDecimal) { floatSetting = setting } @@ -31,17 +33,21 @@ open class FloatSliderSetting : SliderSetting { setting: AbstractFloatSetting, name: CharSequence, description: CharSequence?, - min: Int, - max: Int, - units: String? - ) : super(name, description, min, max, units) { + min: Float, + max: Float, + units: String?, + showDecimal: Boolean + ) : super(name, description, min, max, units, showDecimal) { floatSetting = setting } - override val selectedValue: Int - get() = floatSetting.float.roundToInt() + override val selectedValue: Float + get() = floatSetting.float open fun setSelectedValue(settings: Settings?, selection: Float) { - floatSetting.setFloat(settings!!, selection) + floatSetting.setFloat( + settings!!, + BigDecimal((selection).toDouble()).round(MathContext(3)).toFloat() + ) } } diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/view/IntSliderSetting.kt b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/view/IntSliderSetting.kt index 23bcd49317..09a415fc97 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/view/IntSliderSetting.kt +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/view/IntSliderSetting.kt @@ -16,7 +16,7 @@ class IntSliderSetting( max: Int, units: String?, stepSize: Int -) : SliderSetting(context, titleId, descriptionId, min, max, units, stepSize) { +) : SliderSetting(context, titleId, descriptionId, min, max, units, stepSize, false) { override val setting: AbstractSetting get() = intSetting diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/view/PercentSliderSetting.kt b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/view/PercentSliderSetting.kt index db6454b0c5..165bdebdc8 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/view/PercentSliderSetting.kt +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/view/PercentSliderSetting.kt @@ -4,24 +4,38 @@ package org.dolphinemu.dolphinemu.features.settings.model.view import android.content.Context import org.dolphinemu.dolphinemu.features.settings.model.AbstractFloatSetting -import org.dolphinemu.dolphinemu.features.settings.model.AbstractSetting import org.dolphinemu.dolphinemu.features.settings.model.Settings -import kotlin.math.roundToInt +import java.math.BigDecimal +import java.math.MathContext class PercentSliderSetting( context: Context, override val setting: AbstractFloatSetting, titleId: Int, descriptionId: Int, - min: Int, - max: Int, + min: Float, + max: Float, units: String?, - stepSize: Int -) : FloatSliderSetting(context, setting, titleId, descriptionId, min, max, units, stepSize) { - override val selectedValue: Int - get() = (floatSetting.float * 100).roundToInt() + stepSize: Float, + showDecimal: Boolean +) : FloatSliderSetting( + context, + setting, + titleId, + descriptionId, + min, + max, + units, + stepSize, + showDecimal +) { + override val selectedValue: Float + get() = (floatSetting.float * 100) override fun setSelectedValue(settings: Settings?, selection: Float) { - floatSetting.setFloat(settings!!, selection / 100) + floatSetting.setFloat( + settings!!, + BigDecimal((selection / 100).toDouble()).round(MathContext(3)).toFloat() + ) } } diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/view/SliderSetting.kt b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/view/SliderSetting.kt index f595c4cea3..d3edccc025 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/view/SliderSetting.kt +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/view/SliderSetting.kt @@ -4,44 +4,50 @@ package org.dolphinemu.dolphinemu.features.settings.model.view import android.content.Context -abstract class SliderSetting : SettingsItem { +sealed class SliderSetting : SettingsItem { override val type: Int = TYPE_SLIDER - var min: Int + var min: Any private set - var max: Int + var max: Any private set var units: String? private set - var stepSize = 0 + var stepSize: Any = 0 + private set + var showDecimal: Boolean = false private set constructor( context: Context, nameId: Int, descriptionId: Int, - min: Int, - max: Int, + min: Any, + max: Any, units: String?, - stepSize: Int + stepSize: Any, + showDecimal: Boolean ) : super(context, nameId, descriptionId) { this.min = min this.max = max this.units = units this.stepSize = stepSize + this.showDecimal = showDecimal } constructor( name: CharSequence, description: CharSequence?, - min: Int, - max: Int, - units: String? + min: Any, + max: Any, + units: String?, + showDecimal: Boolean ) : super(name, description) { this.min = min this.max = max this.units = units + this.showDecimal = showDecimal } - abstract val selectedValue: Int + abstract val selectedValue: Any } diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/MenuTag.kt b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/MenuTag.kt index 6b4def552c..0bfcb96d6c 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/MenuTag.kt +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/MenuTag.kt @@ -19,6 +19,7 @@ enum class MenuTag { DEBUG("debug"), GRAPHICS("graphics"), ENHANCEMENTS("enhancements"), + COLOR_CORRECTION("color_correction"), STEREOSCOPY("stereoscopy"), HACKS("hacks"), STATISTICS("statistics"), diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsAdapter.kt b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsAdapter.kt index 3623f167bb..eff1b3ba13 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsAdapter.kt +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsAdapter.kt @@ -51,7 +51,7 @@ class SettingsAdapter( private var settingsList: ArrayList<SettingsItem>? = null private var clickedItem: SettingsItem? = null private var clickedPosition: Int = -1 - private var seekbarProgress = 0 + private var seekbarProgress: Float = 0f private var dialog: AlertDialog? = null private var textSliderValue: TextView? = null @@ -229,21 +229,37 @@ class SettingsAdapter( fun onSliderClick(item: SliderSetting, position: Int) { clickedItem = item clickedPosition = position - seekbarProgress = item.selectedValue + seekbarProgress = when (item) { + is FloatSliderSetting -> item.selectedValue + is IntSliderSetting -> item.selectedValue.toFloat() + } val inflater = LayoutInflater.from(fragmentView.fragmentActivity) val binding = DialogSliderBinding.inflate(inflater) textSliderValue = binding.textValue - textSliderValue!!.text = seekbarProgress.toString() + textSliderValue!!.text = if (item.showDecimal) { + String.format("%.2f", seekbarProgress) + } else { + seekbarProgress.toInt().toString() + } binding.textUnits.text = item.units val slider = binding.slider - slider.valueFrom = item.min.toFloat() - slider.valueTo = item.max.toFloat() - slider.value = seekbarProgress.toFloat() - slider.stepSize = item.stepSize.toFloat() + when (item) { + is FloatSliderSetting -> { + slider.valueFrom = item.min as Float + slider.valueTo = item.max as Float + slider.stepSize = item.stepSize as Float + } + is IntSliderSetting -> { + slider.valueFrom = (item.min as Int).toFloat() + slider.valueTo = (item.max as Int).toFloat() + slider.stepSize = (item.stepSize as Int).toFloat() + } + } + slider.value = seekbarProgress slider.addOnChangeListener(this) dialog = MaterialAlertDialogBuilder(fragmentView.fragmentActivity) @@ -480,8 +496,10 @@ class SettingsAdapter( } is IntSliderSetting -> { val sliderSetting = clickedItem as IntSliderSetting - if (sliderSetting.selectedValue != seekbarProgress) fragmentView.onSettingChanged() - sliderSetting.setSelectedValue(settings, seekbarProgress) + if (sliderSetting.selectedValue != seekbarProgress.toInt()) { + fragmentView.onSettingChanged() + } + sliderSetting.setSelectedValue(settings, seekbarProgress.toInt()) closeDialog() } is FloatSliderSetting -> { @@ -489,13 +507,13 @@ class SettingsAdapter( if (sliderSetting.selectedValue != seekbarProgress) fragmentView.onSettingChanged() - sliderSetting.setSelectedValue(settings, seekbarProgress.toFloat()) + sliderSetting.setSelectedValue(settings, seekbarProgress) closeDialog() } } clickedItem = null - seekbarProgress = -1 + seekbarProgress = -1f } fun closeDialog() { @@ -510,8 +528,12 @@ class SettingsAdapter( } override fun onValueChange(slider: Slider, progress: Float, fromUser: Boolean) { - seekbarProgress = progress.toInt() - textSliderValue!!.text = seekbarProgress.toString() + seekbarProgress = progress + textSliderValue!!.text = if ((clickedItem as SliderSetting).showDecimal) { + String.format("%.2f", seekbarProgress) + } else { + seekbarProgress.toInt().toString() + } } private fun getValueForSingleChoiceSelection(item: SingleChoiceSetting, which: Int): Int { diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragment.kt b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragment.kt index 3b67dbd9e8..8101d9efbf 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragment.kt +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragment.kt @@ -272,6 +272,7 @@ class SettingsFragment : Fragment(), SettingsFragmentView { titles[MenuTag.DEBUG] = R.string.debug_submenu titles[MenuTag.GRAPHICS] = R.string.graphics_settings titles[MenuTag.ENHANCEMENTS] = R.string.enhancements_submenu + titles[MenuTag.COLOR_CORRECTION] = R.string.color_correction_submenu titles[MenuTag.STEREOSCOPY] = R.string.stereoscopy_submenu titles[MenuTag.HACKS] = R.string.hacks_submenu titles[MenuTag.STATISTICS] = R.string.statistics_submenu diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.kt b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.kt index 0947e4f294..15d678f752 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.kt +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.kt @@ -34,6 +34,7 @@ import org.dolphinemu.dolphinemu.model.GpuDriverMetadata import org.dolphinemu.dolphinemu.ui.main.MainPresenter import org.dolphinemu.dolphinemu.utils.* import java.util.* +import kotlin.collections.ArrayList import kotlin.math.ceil import kotlin.math.floor @@ -72,9 +73,8 @@ class SettingsFragmentPresenter( && GpuDriverHelper.supportsCustomDriverLoading() ) { this.gpuDriver = - GpuDriverHelper.getInstalledDriverMetadata() ?: GpuDriverHelper.getSystemDriverMetadata( - context.applicationContext - ) + GpuDriverHelper.getInstalledDriverMetadata() + ?: GpuDriverHelper.getSystemDriverMetadata(context.applicationContext) } } @@ -120,6 +120,7 @@ class SettingsFragmentPresenter( MenuTag.GCPAD_TYPE -> addGcPadSettings(sl) MenuTag.WIIMOTE -> addWiimoteSettings(sl) MenuTag.ENHANCEMENTS -> addEnhanceSettings(sl) + MenuTag.COLOR_CORRECTION -> addColorCorrectionSettings(sl) MenuTag.STEREOSCOPY -> addStereoSettings(sl) MenuTag.HACKS -> addHackSettings(sl) MenuTag.STATISTICS -> addStatisticsSettings(sl) @@ -250,10 +251,11 @@ class SettingsFragmentPresenter( FloatSetting.MAIN_EMULATION_SPEED, R.string.speed_limit, 0, - 0, - 200, + 0f, + 200f, "%", - 1 + 1f, + false ) ) sl.add( @@ -713,12 +715,12 @@ class SettingsFragmentPresenter( ) ) sl.add( - SwitchSetting( - context, - BooleanSetting.MAIN_WII_WIILINK_ENABLE, - R.string.wii_enable_wiilink, - R.string.wii_enable_wiilink_description - ) + SwitchSetting( + context, + BooleanSetting.MAIN_WII_WIILINK_ENABLE, + R.string.wii_enable_wiilink, + R.string.wii_enable_wiilink_description + ) ) sl.add( SingleChoiceSetting( @@ -1001,10 +1003,11 @@ class SettingsFragmentPresenter( FloatSetting.MAIN_OVERCLOCK, R.string.overclock_title, R.string.overclock_title_description, - 0, - 400, + 0f, + 400f, "%", - 1 + 1f, + false ) ) @@ -1333,6 +1336,13 @@ class SettingsFragmentPresenter( R.array.textureFilteringValues ) ) + sl.add( + SubmenuSetting( + context, + R.string.color_correction_submenu, + MenuTag.COLOR_CORRECTION + ) + ) val stereoModeValue = IntSetting.GFX_STEREO_MODE.int val anaglyphMode = 3 @@ -1429,6 +1439,53 @@ class SettingsFragmentPresenter( } } + private fun addColorCorrectionSettings(sl: ArrayList<SettingsItem>) { + sl.apply { + add(HeaderSetting(context, R.string.color_space, 0)) + add( + SwitchSetting( + context, + BooleanSetting.GFX_CC_CORRECT_COLOR_SPACE, + R.string.correct_color_space, + R.string.correct_color_space_description + ) + ) + add( + SingleChoiceSetting( + context, + IntSetting.GFX_CC_GAME_COLOR_SPACE, + R.string.game_color_space, + 0, + R.array.colorSpaceEntries, + R.array.colorSpaceValues + ) + ) + + add(HeaderSetting(context, R.string.gamma, 0)) + add( + FloatSliderSetting( + context, + FloatSetting.GFX_CC_GAME_GAMMA, + R.string.game_gamma, + R.string.game_gamma_description, + 2.2f, + 2.8f, + "", + 0.01f, + true + ) + ) + add( + SwitchSetting( + context, + BooleanSetting.GFX_CC_CORRECT_GAMMA, + R.string.correct_sdr_gamma, + 0 + ) + ) + } + } + private fun addHackSettings(sl: ArrayList<SettingsItem>) { sl.add(HeaderSetting(context, R.string.embedded_frame_buffer, 0)) sl.add( @@ -2296,9 +2353,10 @@ class SettingsFragmentPresenter( InputMappingDoubleSetting(setting), setting.getUiName(), "", - ceil(setting.getDoubleMin()).toInt(), - floor(setting.getDoubleMax()).toInt(), - setting.getUiSuffix() + ceil(setting.getDoubleMin()).toFloat(), + floor(setting.getDoubleMax()).toFloat(), + setting.getUiSuffix(), + false ) ) diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/SliderViewHolder.kt b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/SliderViewHolder.kt index 9009be4e7d..6dde8749c2 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/SliderViewHolder.kt +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/SliderViewHolder.kt @@ -7,6 +7,7 @@ import android.text.TextUtils import android.view.View import org.dolphinemu.dolphinemu.R import org.dolphinemu.dolphinemu.databinding.ListItemSettingBinding +import org.dolphinemu.dolphinemu.features.settings.model.view.IntSliderSetting import org.dolphinemu.dolphinemu.features.settings.model.view.SettingsItem import org.dolphinemu.dolphinemu.features.settings.model.view.SliderSetting import org.dolphinemu.dolphinemu.features.settings.ui.SettingsAdapter @@ -14,7 +15,7 @@ import org.dolphinemu.dolphinemu.features.settings.ui.SettingsAdapter class SliderViewHolder( private val binding: ListItemSettingBinding, adapter: SettingsAdapter?, private val context: Context -) : SettingViewHolder(binding.getRoot(), adapter!!) { +) : SettingViewHolder(binding.root, adapter!!) { private lateinit var setting: SliderSetting override val item: SettingsItem @@ -28,11 +29,25 @@ class SliderViewHolder( if (!TextUtils.isEmpty(item.description)) { binding.textSettingDescription.text = item.description } else { - binding.textSettingDescription.text = context.getString( - R.string.slider_setting_value, - setting.selectedValue, - setting.units - ) + val selectedValue: Float = if (item is IntSliderSetting) { + (setting.selectedValue as Int).toFloat() + } else { + setting.selectedValue as Float + } + + if (setting.showDecimal) { + binding.textSettingDescription.text = String.format( + context.getString(R.string.slider_setting_float_value), + selectedValue, + setting.units + ) + } else { + binding.textSettingDescription.text = String.format( + context.getString(R.string.slider_setting_value), + selectedValue, + setting.units + ) + } } setStyle(binding.textSettingName, setting) |
