summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarEdgePanel.java17
1 files changed, 13 insertions, 4 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarEdgePanel.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarEdgePanel.java
index af442d30011e..64209a7b9e73 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarEdgePanel.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarEdgePanel.java
@@ -114,7 +114,7 @@ public class NavigationBarEdgePanel extends View {
lp.accessibilityTitle = context.getString(R.string.nav_bar_edge_panel);
lp.windowAnimations = 0;
NavigationBarEdgePanel panel = new NavigationBarEdgePanel(
- context, (gravity & Gravity.LEFT) != 0);
+ context, (gravity & Gravity.LEFT) == Gravity.LEFT);
panel.setLayoutParams(lp);
return panel;
}
@@ -269,12 +269,21 @@ public class NavigationBarEdgePanel extends View {
dist));
if (dist < mGestureLength) {
- setLegProgress(MathUtils.constrainedMap(
+ float calculatedLegProgress = MathUtils.constrainedMap(
0f, POINTEDNESS_BEFORE_SNAP_RATIO,
mGestureLength * START_POINTING_RATIO, mGestureLength,
- dist));
+ dist);
- mGestureDetected = false;
+ // Blend animated value with drag calculated value, allow the gesture to continue
+ // while the animation is playing with jump cuts in the animation.
+ setLegProgress(MathUtils.lerp(calculatedLegProgress, mLegProgress, mDragProgress));
+
+ if (mGestureDetected) {
+ mGestureDetected = false;
+
+ mLegAnimator.setFloatValues(POINTEDNESS_BEFORE_SNAP_RATIO);
+ mLegAnimator.start();
+ }
} else {
if (!mGestureDetected) {
performHapticFeedback(HapticFeedbackConstants.CLOCK_TICK);