diff options
| author | 2018-06-22 19:24:08 +0000 | |
|---|---|---|
| committer | 2018-06-22 19:24:08 +0000 | |
| commit | 95b7c25a58e51f97cde349e1aef3c1d87c156830 (patch) | |
| tree | e1d15b26c0385fa70ed38a6f4934d13999b177b0 | |
| parent | 3a09ade4d1bbe42151f777889c6f66824f9b6f2a (diff) | |
| parent | 472d3e4898b513441b5c9d5a171933f01c7895da (diff) | |
Merge "Allow quickscrub after deadzone consumes touch" into pi-dev
3 files changed, 15 insertions, 9 deletions
diff --git a/packages/SystemUI/shared/src/com/android/systemui/shared/system/NavigationBarCompat.java b/packages/SystemUI/shared/src/com/android/systemui/shared/system/NavigationBarCompat.java index cd831d1e31f6..d38cc0f608ce 100644 --- a/packages/SystemUI/shared/src/com/android/systemui/shared/system/NavigationBarCompat.java +++ b/packages/SystemUI/shared/src/com/android/systemui/shared/system/NavigationBarCompat.java @@ -54,6 +54,7 @@ public class NavigationBarCompat { public static final int HIT_TARGET_HOME = 2; public static final int HIT_TARGET_OVERVIEW = 3; public static final int HIT_TARGET_ROTATION = 4; + public static final int HIT_TARGET_DEAD_ZONE = 5; @Retention(RetentionPolicy.SOURCE) @IntDef({FLAG_DISABLE_SWIPE_UP, 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 2a1f92f5edda..f8b79c61c430 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java @@ -18,6 +18,7 @@ package com.android.systemui.statusbar.phone; import static android.view.MotionEvent.ACTION_DOWN; import static com.android.systemui.shared.system.NavigationBarCompat.HIT_TARGET_BACK; +import static com.android.systemui.shared.system.NavigationBarCompat.HIT_TARGET_DEAD_ZONE; import static com.android.systemui.shared.system.NavigationBarCompat.HIT_TARGET_HOME; import static com.android.systemui.shared.system.NavigationBarCompat.HIT_TARGET_NONE; @@ -328,15 +329,15 @@ public class NavigationBarView extends FrameLayout implements PluginListener<Nav @Override public boolean onInterceptTouchEvent(MotionEvent event) { - if (shouldDeadZoneConsumeTouchEvents(event)) { - return true; - } + final boolean deadZoneConsumed = shouldDeadZoneConsumeTouchEvents(event); switch (event.getActionMasked()) { case ACTION_DOWN: int x = (int) event.getX(); int y = (int) event.getY(); mDownHitTarget = HIT_TARGET_NONE; - if (getBackButton().isVisible() && mBackButtonBounds.contains(x, y)) { + if (deadZoneConsumed) { + mDownHitTarget = HIT_TARGET_DEAD_ZONE; + } else if (getBackButton().isVisible() && mBackButtonBounds.contains(x, y)) { mDownHitTarget = HIT_TARGET_BACK; } else if (getHomeButton().isVisible() && mHomeButtonBounds.contains(x, y)) { mDownHitTarget = HIT_TARGET_HOME; @@ -353,9 +354,7 @@ public class NavigationBarView extends FrameLayout implements PluginListener<Nav @Override public boolean onTouchEvent(MotionEvent event) { - if (shouldDeadZoneConsumeTouchEvents(event)) { - return true; - } + shouldDeadZoneConsumeTouchEvents(event); if (mGestureHelper.onTouchEvent(event)) { return true; } @@ -764,7 +763,7 @@ public class NavigationBarView extends FrameLayout implements PluginListener<Nav showSwipeUpUI ? mQuickStepAccessibilityDelegate : null); } - private void updateSlippery() { + public void updateSlippery() { setSlippery(!isQuickStepSwipeUpEnabled() || mPanelView.isFullyExpanded()); } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickStepController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickStepController.java index 860b77e1b251..5194bea2fd87 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickStepController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickStepController.java @@ -22,6 +22,7 @@ import static com.android.systemui.Interpolators.ALPHA_IN; import static com.android.systemui.Interpolators.ALPHA_OUT; import static com.android.systemui.OverviewProxyService.DEBUG_OVERVIEW_PROXY; import static com.android.systemui.OverviewProxyService.TAG_OPS; +import static com.android.systemui.shared.system.NavigationBarCompat.HIT_TARGET_DEAD_ZONE; import android.animation.Animator; import android.animation.AnimatorListenerAdapter; @@ -184,6 +185,8 @@ public class QuickStepController implements GestureHelper { } private boolean handleTouchEvent(MotionEvent event) { + final boolean deadZoneConsumed = + mNavigationBarView.getDownHitTarget() == HIT_TARGET_DEAD_ZONE; if (mOverviewEventSender.getProxy() == null || (!mNavigationBarView.isQuickScrubEnabled() && !mNavigationBarView.isQuickStepSwipeUpEnabled())) { return false; @@ -302,7 +305,7 @@ public class QuickStepController implements GestureHelper { || action == MotionEvent.ACTION_UP)) { proxyMotionEvents(event); } - return mQuickScrubActive || mQuickStepStarted; + return mQuickScrubActive || mQuickStepStarted || deadZoneConsumed; } @Override @@ -424,6 +427,9 @@ public class QuickStepController implements GestureHelper { mTrackAnimator.playTogether(trackAnimator, navBarAnimator); mTrackAnimator.start(); + // Disable slippery for quick scrub to not cancel outside the nav bar + mNavigationBarView.updateSlippery(); + try { mOverviewEventSender.getProxy().onQuickScrubStart(); if (DEBUG_OVERVIEW_PROXY) { |