diff --git a/app/src/main/kotlin/cn/super12138/todo/ui/pages/settings/SettingsInterfaceInteraction.kt b/app/src/main/kotlin/cn/super12138/todo/ui/pages/settings/SettingsInterfaceInteraction.kt index 8ae8d9d..fbd6bb4 100644 --- a/app/src/main/kotlin/cn/super12138/todo/ui/pages/settings/SettingsInterfaceInteraction.kt +++ b/app/src/main/kotlin/cn/super12138/todo/ui/pages/settings/SettingsInterfaceInteraction.kt @@ -32,6 +32,7 @@ import cn.super12138.todo.ui.pages.settings.components.SettingsRadioDialog import cn.super12138.todo.ui.pages.settings.components.SettingsRadioOptions import cn.super12138.todo.ui.pages.settings.components.SwitchSettingsItem import cn.super12138.todo.ui.viewmodels.MainViewModel +import cn.super12138.todo.utils.VibrationUtils @OptIn(ExperimentalMaterial3Api::class) @Composable @@ -80,7 +81,7 @@ fun SettingsInterface( leadingIcon = Icons.Outlined.Vibration, title = stringResource(R.string.pref_haptic_feedback), description = stringResource(R.string.pref_haptic_feedback_desc), - onCheckedChange = {} + onCheckedChange = { VibrationUtils.setEnabled(it) } ) SettingsPlainBox(stringResource(R.string.pref_haptic_feedback_more_info)) } diff --git a/app/src/main/kotlin/cn/super12138/todo/utils/VibrationUtils.kt b/app/src/main/kotlin/cn/super12138/todo/utils/VibrationUtils.kt index f20feba..6c8e0a5 100644 --- a/app/src/main/kotlin/cn/super12138/todo/utils/VibrationUtils.kt +++ b/app/src/main/kotlin/cn/super12138/todo/utils/VibrationUtils.kt @@ -5,11 +5,17 @@ import android.view.View import cn.super12138.todo.constants.GlobalValues object VibrationUtils { + private var isEnabled: Boolean = GlobalValues.hapticFeedback + + fun setEnabled(enabled: Boolean) { + isEnabled = enabled + } + fun performHapticFeedback( view: View, feedbackConstants: Int = HapticFeedbackConstants.CONTEXT_CLICK ) { - if (GlobalValues.hapticFeedback) { + if (isEnabled) { view.performHapticFeedback(feedbackConstants) } }