Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c90dba8c authored by Jeff DeCew's avatar Jeff DeCew Committed by Automerger Merge Worker
Browse files

Merge "Fix shade flicker & touch absorption" into sc-dev am: 85978872

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

Change-Id: I670e0cba722021b7bddadfa2ac667ce16d38a8c5
parents 61e27395 85978872
Loading
Loading
Loading
Loading
+7 −6
Original line number Diff line number Diff line
@@ -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