Merge "Fix shade flicker & touch absorption" into sc-qpr1-dev am: dbdc35d2ea am: d15f6024e9

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15546043

Change-Id: I3d51aa33f2ed574243db523a1ec3e9461cf00588
This commit is contained in:
Lyn Han
2021-08-19 01:11:24 +00:00
committed by Automerger Merge Worker

View File

@@ -1213,10 +1213,14 @@ public abstract class PanelViewController {
case MotionEvent.ACTION_MOVE: case MotionEvent.ACTION_MOVE:
final float h = y - mInitialTouchY; final float h = y - mInitialTouchY;
addMovement(event); addMovement(event);
if (canCollapsePanel || mTouchStartedInEmptyArea || mAnimatingOnDown) { final boolean openShadeWithoutHun =
mPanelClosedOnDown && !mCollapsedAndHeadsUpOnDown;
if (canCollapsePanel || mTouchStartedInEmptyArea || mAnimatingOnDown
|| openShadeWithoutHun) {
float hAbs = Math.abs(h); float hAbs = Math.abs(h);
float touchSlop = getTouchSlop(event); float touchSlop = getTouchSlop(event);
if ((h < -touchSlop || (mAnimatingOnDown && hAbs > touchSlop)) if ((h < -touchSlop
|| ((openShadeWithoutHun || mAnimatingOnDown) && hAbs > touchSlop))
&& hAbs > Math.abs(x - mInitialTouchX)) { && hAbs > Math.abs(x - mInitialTouchX)) {
cancelHeightAnimator(); cancelHeightAnimator();
startExpandMotion(x, y, true /* startTracking */, mExpandedHeight); startExpandMotion(x, y, true /* startTracking */, mExpandedHeight);
@@ -1229,10 +1233,7 @@ public abstract class PanelViewController {
mVelocityTracker.clear(); mVelocityTracker.clear();
break; break;
} }
return false;
// 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);
} }
@Override @Override