Add haptic feedback for profile avatar interactions
- Implemented haptic feedback on avatar collapse when reaching the notch. - Added haptic feedback for snap back action when the avatar returns from an expanded state. - Introduced state management for triggering haptic feedback to ensure it only occurs at appropriate times.
This commit is contained in:
@@ -69,7 +69,7 @@ fun Modifier.customBlur(blur: Float) = this.then(
|
|||||||
.createBlurEffect(
|
.createBlurEffect(
|
||||||
blur,
|
blur,
|
||||||
blur,
|
blur,
|
||||||
Shader.TileMode.DECAL,
|
Shader.TileMode.CLAMP,
|
||||||
)
|
)
|
||||||
.asComposeRenderEffect()
|
.asComposeRenderEffect()
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -409,6 +409,28 @@ fun ProfileScreen(
|
|||||||
hasTriggeredExpandHaptic = false
|
hasTriggeredExpandHaptic = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Haptic on collapse — light tick when avatar reaches notch
|
||||||
|
var hasTriggeredCollapseHaptic by remember { mutableStateOf(false) }
|
||||||
|
LaunchedEffect(collapseProgress) {
|
||||||
|
if (collapseProgress >= 0.95f && !hasTriggeredCollapseHaptic) {
|
||||||
|
hapticFeedback.performHapticFeedback(HapticFeedbackType.TextHandleMove)
|
||||||
|
hasTriggeredCollapseHaptic = true
|
||||||
|
} else if (collapseProgress < 0.5f) {
|
||||||
|
hasTriggeredCollapseHaptic = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Haptic on snap back — when avatar snaps back from expanded
|
||||||
|
var hasTriggeredSnapBackHaptic by remember { mutableStateOf(false) }
|
||||||
|
LaunchedEffect(isPulledDown, expansionProgress) {
|
||||||
|
if (!isPulledDown && expansionProgress < 0.05f && hasTriggeredSnapBackHaptic) {
|
||||||
|
hapticFeedback.performHapticFeedback(HapticFeedbackType.TextHandleMove)
|
||||||
|
hasTriggeredSnapBackHaptic = false
|
||||||
|
} else if (isPulledDown) {
|
||||||
|
hasTriggeredSnapBackHaptic = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// DEBUG LOGS
|
// DEBUG LOGS
|
||||||
// ═══════════════════════════════════════════════════════════════
|
// ═══════════════════════════════════════════════════════════════
|
||||||
|
|||||||
Reference in New Issue
Block a user