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

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

Merge "Reset internal and visual swipe state whenever the shade collapses."...

Merge "Reset internal and visual swipe state whenever the shade collapses." into udc-dev am: b91f5bac

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



Change-Id: I2e21d36de97c982fbf762ef909fb2f3f01eb3a90
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents b0f2fcd7 b91f5bac
Loading
Loading
Loading
Loading
+14 −4
Original line number Diff line number Diff line
@@ -374,11 +374,10 @@ public class SwipeHelper implements Gefingerpoken {
            case MotionEvent.ACTION_UP:
            case MotionEvent.ACTION_CANCEL:
                final boolean captured = (mIsSwiping || mLongPressSent || mMenuRowIntercepting);
                mIsSwiping = false;
                mTouchedView = null;
                mLongPressSent = false;
                mCallback.onLongPressSent(null);
                mMenuRowIntercepting = false;
                resetSwipeState();
                cancelLongPress();
                if (captured) return true;
                break;
@@ -491,7 +490,7 @@ public class SwipeHelper implements Gefingerpoken {
                }
                if (!mCancelled || wasRemoved) {
                    mCallback.onChildDismissed(animView);
                    resetSwipeState();
                    resetSwipeOfView(animView);
                }
                if (endAction != null) {
                    endAction.accept(mCancelled);
@@ -546,7 +545,7 @@ public class SwipeHelper implements Gefingerpoken {

            if (!cancelled) {
                updateSwipeProgressFromOffset(animView, canBeDismissed);
                resetSwipeState();
                resetSwipeOfView(animView);
            }
            onChildSnappedBack(animView, targetLeft);
        });
@@ -806,9 +805,20 @@ public class SwipeHelper implements Gefingerpoken {
        return mIsSwiping ? mTouchedView : null;
    }

    protected void resetSwipeOfView(View view) {
        if (getSwipedView() == view) {
            resetSwipeState();
        }
    }

    public void resetSwipeState() {
        View swipedView = getSwipedView();
        mTouchedView = null;
        mIsSwiping = false;
        if (swipedView != null) {
            snapChildIfNeeded(swipedView, false, 0);
            onChildSnappedBack(swipedView, 0);
        }
    }

    private float getTouchSlop(MotionEvent event) {
+9 −5
Original line number Diff line number Diff line
@@ -4189,10 +4189,7 @@ public class NotificationStackScrollLayout extends ViewGroup implements Dumpable
            mCentralSurfaces.resetUserExpandedStates();
            clearTemporaryViews();
            clearUserLockedViews();
            if (mSwipeHelper.isSwiping()) {
                mSwipeHelper.resetSwipeState();
                updateContinuousShadowDrawing();
            }
            cancelActiveSwipe();
        }
    }

@@ -4264,6 +4261,9 @@ public class NotificationStackScrollLayout extends ViewGroup implements Dumpable
            if (!mIsExpanded) {
                mGroupExpansionManager.collapseGroups();
                mExpandHelper.cancelImmediately();
                if (!mIsExpansionChanging) {
                    cancelActiveSwipe();
                }
            }
            updateNotificationAnimationStates();
            updateChronometers();
@@ -6113,7 +6113,11 @@ public class NotificationStackScrollLayout extends ViewGroup implements Dumpable
        }
    }

    @ShadeViewRefactor(RefactorComponent.STATE_RESOLVER)
    private void cancelActiveSwipe() {
        mSwipeHelper.resetSwipeState();
        updateContinuousShadowDrawing();
    }

    void updateContinuousShadowDrawing() {
        boolean continuousShadowUpdate = mAnimationRunning
                || mSwipeHelper.isSwiping();
+28 −0
Original line number Diff line number Diff line
@@ -800,6 +800,34 @@ public class NotificationStackScrollLayoutTest extends SysuiTestCase {
        assertEquals(mAmbientState.getScrollY(), 0);
    }

    @Test
    public void onShadeClosesWithAnimationWillResetSwipeState() {
        // GIVEN shade is expanded
        mStackScroller.setIsExpanded(true);
        clearInvocations(mNotificationSwipeHelper);

        // WHEN closing the shade with the animations
        mStackScroller.onExpansionStarted();
        mStackScroller.setIsExpanded(false);
        mStackScroller.onExpansionStopped();

        // VERIFY swipe is reset
        verify(mNotificationSwipeHelper).resetSwipeState();
    }

    @Test
    public void onShadeClosesWithoutAnimationWillResetSwipeState() {
        // GIVEN shade is expanded
        mStackScroller.setIsExpanded(true);
        clearInvocations(mNotificationSwipeHelper);

        // WHEN closing the shade without the animation
        mStackScroller.setIsExpanded(false);

        // VERIFY swipe is reset
        verify(mNotificationSwipeHelper).resetSwipeState();
    }

    @Test
    public void testSplitShade_hasTopOverscroll() {
        mTestableResources