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..9b5e5c049 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,17 @@ 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 -> + haptics.performHapticFeedback( + if (isChecked) HapticFeedbackType.ToggleOn else HapticFeedbackType.ToggleOff + ) + onCheckedChange(isChecked) + }, modifier = modifier, enabled = enabled, colors = IconButtonDefaults.iconToggleButtonColors( diff --git a/core/ui/src/main/AndroidManifest.xml b/core/ui/src/main/AndroidManifest.xml index 51d0cfc2e..f3d5b0e63 100644 --- a/core/ui/src/main/AndroidManifest.xml +++ b/core/ui/src/main/AndroidManifest.xml @@ -14,4 +14,6 @@ See the License for the specific language governing permissions and limitations under the License. --> - \ No newline at end of file + + + \ No newline at end of file