diff --git a/app/src/main/java/app/revanced/manager/ui/component/haptics/HapticSwitch.kt b/app/src/main/java/app/revanced/manager/ui/component/haptics/HapticSwitch.kt index c2491397..f1e26e2c 100644 --- a/app/src/main/java/app/revanced/manager/ui/component/haptics/HapticSwitch.kt +++ b/app/src/main/java/app/revanced/manager/ui/component/haptics/HapticSwitch.kt @@ -9,6 +9,7 @@ import androidx.compose.material3.SwitchDefaults import androidx.compose.runtime.Composable import androidx.compose.runtime.remember import androidx.compose.ui.Modifier +import androidx.compose.ui.platform.LocalView @Composable fun HapticSwitch( @@ -20,16 +21,19 @@ fun HapticSwitch( colors: SwitchColors = SwitchDefaults.colors(), interactionSource: MutableInteractionSource = remember { MutableInteractionSource() }, ) { + val view = LocalView.current Switch( checked = checked, onCheckedChange = { newChecked -> val useNewConstants = Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE - when { + val hapticFeedbackType = when { newChecked && useNewConstants -> HapticFeedbackConstants.TOGGLE_ON newChecked -> HapticFeedbackConstants.VIRTUAL_KEY !newChecked && useNewConstants -> HapticFeedbackConstants.TOGGLE_OFF !newChecked -> HapticFeedbackConstants.CLOCK_TICK + else -> {HapticFeedbackConstants.VIRTUAL_KEY} } + view.performHapticFeedback(hapticFeedbackType) onCheckedChange(newChecked) }, modifier = modifier,