summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author android-build-team Robot <android-build-team-robot@google.com> 2018-05-04 12:44:07 -0700
committer android-build-merger <android-build-merger@google.com> 2018-05-04 12:44:07 -0700
commitfd61dedd926bcc3d66f822be630c16cc62f9b0f1 (patch)
tree1c3b26eb4c64706382b36c296fde257b8e327601
parenta3329bce9d98c0002c185ee10858f8475e34133b (diff)
parentffee7c721169adddcfde879944900ca426532749 (diff)
Merge "Allow gestures to executed started from deadzone on nav bar" into pi-dev
am: ffee7c7211 Change-Id: I5f28cff723b3c2c64e2ace8cd346b03ca70beef6
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java27
1 files changed, 23 insertions, 4 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java
index 6cc96da96e45..2fac13641405 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java
@@ -124,6 +124,7 @@ public class NavigationBarView extends FrameLayout implements PluginListener<Nav
private GestureHelper mGestureHelper;
private final DeadZone mDeadZone;
+ private boolean mDeadZoneConsuming = false;
private final NavigationBarTransitions mBarTransitions;
private final OverviewProxyService mOverviewProxyService;
@@ -291,8 +292,7 @@ public class NavigationBarView extends FrameLayout implements PluginListener<Nav
@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
- if (mDeadZone.onTouchEvent(event)) {
- // Consumed the touch event
+ if (shouldDeadZoneConsumeTouchEvents(event)) {
return true;
}
switch (event.getActionMasked()) {
@@ -314,8 +314,7 @@ public class NavigationBarView extends FrameLayout implements PluginListener<Nav
@Override
public boolean onTouchEvent(MotionEvent event) {
- if (mDeadZone.onTouchEvent(event)) {
- // Consumed the touch event
+ if (shouldDeadZoneConsumeTouchEvents(event)) {
return true;
}
if (mGestureHelper.onTouchEvent(event)) {
@@ -324,6 +323,26 @@ public class NavigationBarView extends FrameLayout implements PluginListener<Nav
return super.onTouchEvent(event);
}
+ private boolean shouldDeadZoneConsumeTouchEvents(MotionEvent event) {
+ if (mDeadZone.onTouchEvent(event) || mDeadZoneConsuming) {
+ switch (event.getActionMasked()) {
+ case MotionEvent.ACTION_DOWN:
+ // Allow gestures starting in the deadzone to be slippery
+ setSlippery(true);
+ mDeadZoneConsuming = true;
+ break;
+ case MotionEvent.ACTION_CANCEL:
+ case MotionEvent.ACTION_UP:
+ // When a gesture started in the deadzone is finished, restore slippery state
+ updateSlippery();
+ mDeadZoneConsuming = false;
+ break;
+ }
+ return true;
+ }
+ return false;
+ }
+
public @NavigationBarCompat.HitTarget int getDownHitTarget() {
return mDownHitTarget;
}