diff options
| author | 2021-12-16 22:01:04 +0000 | |
|---|---|---|
| committer | 2021-12-16 22:01:04 +0000 | |
| commit | c90dba8c70a306de6d8a93951a9f2efd439f1a4c (patch) | |
| tree | 1fa6ae171fc7f4aaab10ca17b561b75ac1e35d1f | |
| parent | 61e273958b7e5ac171eba8b7fbf095b1dd2c4075 (diff) | |
| parent | 85978872b9a44fc5f1d383d0c82fc5f710fd173b (diff) | |
Merge "Fix shade flicker & touch absorption" into sc-dev am: 85978872b9
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15144663
Change-Id: I670e0cba722021b7bddadfa2ac667ce16d38a8c5
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelViewController.java | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelViewController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelViewController.java index 323a1128d3bb..de0f31d3cf59 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelViewController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelViewController.java @@ -1211,10 +1211,14 @@ public abstract class PanelViewController { case MotionEvent.ACTION_MOVE: final float h = y - mInitialTouchY; addMovement(event); - if (canCollapsePanel || mTouchStartedInEmptyArea || mAnimatingOnDown) { + final boolean openShadeWithoutHun = + mPanelClosedOnDown && !mCollapsedAndHeadsUpOnDown; + if (canCollapsePanel || mTouchStartedInEmptyArea || mAnimatingOnDown + || openShadeWithoutHun) { float hAbs = Math.abs(h); float touchSlop = getTouchSlop(event); - if ((h < -touchSlop || (mAnimatingOnDown && hAbs > touchSlop)) + if ((h < -touchSlop + || ((openShadeWithoutHun || mAnimatingOnDown) && hAbs > touchSlop)) && hAbs > Math.abs(x - mInitialTouchX)) { cancelHeightAnimator(); startExpandMotion(x, y, true /* startTracking */, mExpandedHeight); @@ -1227,10 +1231,7 @@ public abstract class PanelViewController { mVelocityTracker.clear(); break; } - - // Finally, if none of the above cases applies, ensure that touches do not get handled - // by the contents of a panel that is not showing (a bit of a hack to avoid b/178277858) - return (mView.getVisibility() != View.VISIBLE); + return false; } @Override |