From d7c4ceaaa92fdde8a72dab487540472953104567 Mon Sep 17 00:00:00 2001 From: kosenda Date: Mon, 13 Jan 2025 13:27:53 +0900 Subject: [PATCH] feature: add ConfirmHapticFeedback in IconButton --- .../core/designsystem/component/IconButton.kt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/core/designsystem/src/main/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/component/IconButton.kt b/core/designsystem/src/main/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/component/IconButton.kt index 43ec11f0b..5034a30d5 100644 --- a/core/designsystem/src/main/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/component/IconButton.kt +++ b/core/designsystem/src/main/kotlin/com/google/samples/apps/nowinandroid/core/designsystem/component/IconButton.kt @@ -24,6 +24,8 @@ import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color +import androidx.compose.ui.hapticfeedback.HapticFeedbackType +import androidx.compose.ui.platform.LocalHapticFeedback import com.google.samples.apps.nowinandroid.core.designsystem.icon.NiaIcons import com.google.samples.apps.nowinandroid.core.designsystem.theme.NiaTheme @@ -48,11 +50,15 @@ fun NiaIconToggleButton( icon: @Composable () -> Unit, checkedIcon: @Composable () -> Unit = icon, ) { + val haptics = LocalHapticFeedback.current // TODO: File bug // Can't use regular IconToggleButton as it doesn't include a shape (appears square) FilledIconToggleButton( checked = checked, - onCheckedChange = onCheckedChange, + onCheckedChange = { isChecked -> + onCheckedChange(isChecked) + if (isChecked) haptics.performHapticFeedback(HapticFeedbackType.Confirm) + }, modifier = modifier, enabled = enabled, colors = IconButtonDefaults.iconToggleButtonColors(