diff --git a/app/src/main/java/helium314/keyboard/settings/preferences/SliderPreference.kt b/app/src/main/java/helium314/keyboard/settings/preferences/SliderPreference.kt index 8a52a914d..97138672a 100644 --- a/app/src/main/java/helium314/keyboard/settings/preferences/SliderPreference.kt +++ b/app/src/main/java/helium314/keyboard/settings/preferences/SliderPreference.kt @@ -27,6 +27,7 @@ fun SliderPreference( range: ClosedFloatingPointRange, stepSize: Int? = null, onValueChanged: (Float?) -> Unit = { }, + onConfirmed: (T) -> Unit = { }, ) { val ctx = LocalContext.current val prefs = ctx.prefs() @@ -48,8 +49,13 @@ fun SliderPreference( SliderDialog( onDismissRequest = { showDialog = false }, onDone = { - if (default is Int) prefs.edit().putInt(key, it.toInt()).apply() - else prefs.edit().putFloat(key, it).apply() + if (default is Int) { + prefs.edit().putInt(key, it.toInt()).apply() + onConfirmed(it.toInt() as T) + } else { + prefs.edit().putFloat(key, it).apply() + onConfirmed(it as T) + } }, initialValue = initialValue.toFloat(), range = range, @@ -59,7 +65,7 @@ fun SliderPreference( }, onValueChanged = onValueChanged, showDefault = true, - onDefault = { prefs.edit().remove(key).apply(); onValueChanged(null) }, + onDefault = { prefs.edit().remove(key).apply(); onConfirmed(default) }, intermediateSteps = stepSize?.let { // this is not nice, but slider wants it like this... ((range.endInclusive - range.start) / it - 1).toInt() diff --git a/app/src/main/java/helium314/keyboard/settings/screens/AdvancedScreen.kt b/app/src/main/java/helium314/keyboard/settings/screens/AdvancedScreen.kt index badc404d3..59b137d37 100644 --- a/app/src/main/java/helium314/keyboard/settings/screens/AdvancedScreen.kt +++ b/app/src/main/java/helium314/keyboard/settings/screens/AdvancedScreen.kt @@ -233,7 +233,7 @@ fun createAdvancedSettings(context: Context) = listOf( else -> "version unknown" } }, - onValueChanged = { KeyboardSwitcher.getInstance().setThemeNeedsReload() } + onConfirmed = { KeyboardSwitcher.getInstance().setThemeNeedsReload() } ) }, Setting(context, Settings.PREF_URL_DETECTION, R.string.url_detection_title, R.string.url_detection_summary) {