From 1682e6273ef78e530d1a07b7198afad914854924 Mon Sep 17 00:00:00 2001 From: Marvin Bernal Date: Sun, 14 May 2023 01:29:39 +0000 Subject: [PATCH] Call BackCallback.setTriggerBack immediately on ACTION_UP Bug: 281275417 Test: Manual Change-Id: I2809a65190c0b6c790c949e3d903b16993493188 --- .../systemui/navigationbar/gestural/BackPanelController.kt | 6 ++++-- .../systemui/navigationbar/gestural/EdgePanelParams.kt | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/navigationbar/gestural/BackPanelController.kt b/packages/SystemUI/src/com/android/systemui/navigationbar/gestural/BackPanelController.kt index edab56e8d9b98..1fd11bd617006 100644 --- a/packages/SystemUI/src/com/android/systemui/navigationbar/gestural/BackPanelController.kt +++ b/packages/SystemUI/src/com/android/systemui/navigationbar/gestural/BackPanelController.kt @@ -323,7 +323,6 @@ class BackPanelController internal constructor( if (isFlungAwayFromEdge(endX = event.x) || previousXTranslation > params.staticTriggerThreshold ) { - updateArrowState(GestureState.ACTIVE) updateArrowState(GestureState.FLUNG) } else { updateArrowState(GestureState.CANCELLED) @@ -331,8 +330,11 @@ class BackPanelController internal constructor( } GestureState.INACTIVE -> { if (isFlungAwayFromEdge(endX = event.x)) { + // This is called outside of updateArrowState so that + // BackAnimationController can immediately evaluate state + // instead of after the flung delay + backCallback.setTriggerBack(true) mainHandler.postDelayed(MIN_DURATION_INACTIVE_BEFORE_FLUNG_ANIMATION) { - updateArrowState(GestureState.ACTIVE) updateArrowState(GestureState.FLUNG) } } else { diff --git a/packages/SystemUI/src/com/android/systemui/navigationbar/gestural/EdgePanelParams.kt b/packages/SystemUI/src/com/android/systemui/navigationbar/gestural/EdgePanelParams.kt index 182ece7cd3283..6d881d527ce48 100644 --- a/packages/SystemUI/src/com/android/systemui/navigationbar/gestural/EdgePanelParams.kt +++ b/packages/SystemUI/src/com/android/systemui/navigationbar/gestural/EdgePanelParams.kt @@ -132,7 +132,7 @@ data class EdgePanelParams(private var resources: Resources) { entryWidthInterpolator = PathInterpolator(.19f, 1.27f, .71f, .86f) entryWidthTowardsEdgeInterpolator = PathInterpolator(1f, -3f, 1f, 1.2f) - activeWidthInterpolator = PathInterpolator(.56f, -0.39f, .18f, 1.46f) + activeWidthInterpolator = PathInterpolator(.7f, -0.24f, .48f, 1.21f) arrowAngleInterpolator = entryWidthInterpolator horizontalTranslationInterpolator = PathInterpolator(0.2f, 1.0f, 1.0f, 1.0f) verticalTranslationInterpolator = PathInterpolator(.5f, 1.15f, .41f, .94f)