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