From 4e9af5b7592bc0abccf639c8e771c34e001baef4 Mon Sep 17 00:00:00 2001 From: Alejandro Nijamkin Date: Thu, 18 May 2023 09:50:46 -0700 Subject: [PATCH] [flexiglass] Fixes extraneous haptic feedback in pattern bouncer. There's a bug where we vibrate when we first open the bouncer UI in the pattern configuration and when we stop dragging. This CL fixes that. Bug: 281871687 Test: manually verified that, after the fix, we only get haptic feedback when selecting a new dot and not when we first bring up the UI nor when we stop dragging. Change-Id: I808698e74a3d9300c11b7422fc70dfdfc5fea80b --- .../systemui/bouncer/ui/composable/PatternBouncer.kt | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/bouncer/ui/composable/PatternBouncer.kt b/packages/SystemUI/compose/features/src/com/android/systemui/bouncer/ui/composable/PatternBouncer.kt index e20833d7db173..0609d1409c076 100644 --- a/packages/SystemUI/compose/features/src/com/android/systemui/bouncer/ui/composable/PatternBouncer.kt +++ b/packages/SystemUI/compose/features/src/com/android/systemui/bouncer/ui/composable/PatternBouncer.kt @@ -100,10 +100,14 @@ internal fun PatternBouncer( // When the current dot is changed, we need to update our animations. LaunchedEffect(currentDot, isAnimationEnabled) { - view.performHapticFeedback( - HapticFeedbackConstants.VIRTUAL_KEY, - HapticFeedbackConstants.FLAG_IGNORE_VIEW_SETTING, - ) + // Perform haptic feedback, but only if the current dot is not null, so we don't perform it + // when the UI first shows up or when the user lifts their pointer/finger. + if (currentDot != null) { + view.performHapticFeedback( + HapticFeedbackConstants.VIRTUAL_KEY, + HapticFeedbackConstants.FLAG_IGNORE_VIEW_SETTING, + ) + } if (!isAnimationEnabled) { return@LaunchedEffect