treat default button as value change for SliderPreference

This commit is contained in:
Helium314 2025-04-05 10:24:24 +02:00
parent 087f87e95c
commit 6995266bd1
2 changed files with 4 additions and 4 deletions

View file

@ -26,7 +26,7 @@ fun <T: Number> SliderPreference(
default: T,
range: ClosedFloatingPointRange<Float>,
stepSize: Int? = null,
onValueChanged: (Float) -> Unit = { },
onValueChanged: (Float?) -> Unit = { },
) {
val ctx = LocalContext.current
val prefs = ctx.prefs()
@ -59,7 +59,7 @@ fun <T: Number> SliderPreference(
},
onValueChanged = onValueChanged,
showDefault = true,
onDefault = { prefs.edit().remove(key).apply() },
onDefault = { prefs.edit().remove(key).apply(); onValueChanged(null) },
intermediateSteps = stepSize?.let {
// this is not nice, but slider wants it like this...
((range.endInclusive - range.start) / it - 1).toInt()

View file

@ -172,7 +172,7 @@ fun createPreferencesSettings(context: Context) = listOf(
else stringResource(R.string.abbreviation_unit_milliseconds, it.toString())
},
range = -1f..100f,
onValueChanged = { AudioAndHapticFeedbackManager.getInstance().vibrate(it.toLong()) }
onValueChanged = { it?.let { AudioAndHapticFeedbackManager.getInstance().vibrate(it.toLong()) } }
)
},
Setting(context, Settings.PREF_KEYPRESS_SOUND_VOLUME, R.string.prefs_keypress_sound_volume_settings) { setting ->
@ -186,7 +186,7 @@ fun createPreferencesSettings(context: Context) = listOf(
else (it * 100).toInt().toString()
},
range = -0.01f..1f,
onValueChanged = { audioManager.playSoundEffect(AudioManager.FX_KEYPRESS_STANDARD, it) }
onValueChanged = { it?.let { audioManager.playSoundEffect(AudioManager.FX_KEYPRESS_STANDARD, it) } }
)
},
)