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

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

Merge changes I53d8e217,Iff38e372 into udc-dev am: 50ca6419

parents 29ca9cb9 50ca6419
Loading
Loading
Loading
Loading
+35 −5
Original line number Original line Diff line number Diff line
@@ -548,6 +548,10 @@ public class SwipeHelper implements Gefingerpoken, Dumpable {
            if (!cancelled) {
            if (!cancelled) {
                updateSwipeProgressFromOffset(animView, canBeDismissed);
                updateSwipeProgressFromOffset(animView, canBeDismissed);
                resetSwipeOfView(animView);
                resetSwipeOfView(animView);
                // Clear the snapped view after success, assuming it's not being swiped now
                if (animView == mTouchedView && !mIsSwiping) {
                    mTouchedView = null;
                }
            }
            }
            onChildSnappedBack(animView, targetLeft);
            onChildSnappedBack(animView, targetLeft);
        });
        });
@@ -813,13 +817,39 @@ public class SwipeHelper implements Gefingerpoken, Dumpable {
        }
        }
    }
    }


    public void resetSwipeState() {
    private void resetSwipeState() {
        View swipedView = getSwipedView();
        resetSwipeStates(/* resetAll= */ false);
    }

    public void resetTouchState() {
        resetSwipeStates(/* resetAll= */ true);
    }

    /** This method resets the swipe state, and if `resetAll` is true, also resets the snap state */
    private void resetSwipeStates(boolean resetAll) {
        final View touchedView = mTouchedView;
        final boolean wasSnapping = mSnappingChild;
        final boolean wasSwiping = mIsSwiping;
        mTouchedView = null;
        mTouchedView = null;
        mIsSwiping = false;
        mIsSwiping = false;
        if (swipedView != null) {
        // If we were swiping, then we resetting swipe requires resetting everything.
            snapChildIfNeeded(swipedView, false, 0);
        resetAll |= wasSwiping;
            onChildSnappedBack(swipedView, 0);
        if (resetAll) {
            mSnappingChild = false;
        }
        if (touchedView == null) return;  // No view to reset visually
        // When snap needs to be reset, first thing is to cancel any translation animation
        final boolean snapNeedsReset = resetAll && wasSnapping;
        if (snapNeedsReset) {
            cancelTranslateAnimation(touchedView);
        }
        // actually reset the view to default state
        if (resetAll) {
            snapChildIfNeeded(touchedView, false, 0);
        }
        // report if a swipe or snap was reset.
        if (wasSwiping || snapNeedsReset) {
            onChildSnappedBack(touchedView, 0);
        }
        }
    }
    }


+2 −1
Original line number Original line Diff line number Diff line
@@ -4406,6 +4406,7 @@ public class NotificationStackScrollLayout extends ViewGroup implements Dumpable
        boolean nowHiddenAtAll = mAmbientState.isHiddenAtAll();
        boolean nowHiddenAtAll = mAmbientState.isHiddenAtAll();
        if (nowFullyHidden != wasFullyHidden) {
        if (nowFullyHidden != wasFullyHidden) {
            updateVisibility();
            updateVisibility();
            mSwipeHelper.resetTouchState();
        }
        }
        if (!wasHiddenAtAll && nowHiddenAtAll) {
        if (!wasHiddenAtAll && nowHiddenAtAll) {
            resetExposedMenuView(true /* animate */, true /* animate */);
            resetExposedMenuView(true /* animate */, true /* animate */);
@@ -5866,7 +5867,7 @@ public class NotificationStackScrollLayout extends ViewGroup implements Dumpable
    }
    }


    private void cancelActiveSwipe() {
    private void cancelActiveSwipe() {
        mSwipeHelper.resetSwipeState();
        mSwipeHelper.resetTouchState();
        updateContinuousShadowDrawing();
        updateContinuousShadowDrawing();
    }
    }


+6 −6
Original line number Original line Diff line number Diff line
@@ -836,7 +836,7 @@ public class NotificationStackScrollLayoutTest extends SysuiTestCase {
    }
    }


    @Test
    @Test
    public void onShadeClosesWithAnimationWillResetSwipeState() {
    public void onShadeClosesWithAnimationWillResetTouchState() {
        // GIVEN shade is expanded
        // GIVEN shade is expanded
        mStackScroller.setIsExpanded(true);
        mStackScroller.setIsExpanded(true);
        clearInvocations(mNotificationSwipeHelper);
        clearInvocations(mNotificationSwipeHelper);
@@ -846,12 +846,12 @@ public class NotificationStackScrollLayoutTest extends SysuiTestCase {
        mStackScroller.setIsExpanded(false);
        mStackScroller.setIsExpanded(false);
        mStackScroller.onExpansionStopped();
        mStackScroller.onExpansionStopped();


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


    @Test
    @Test
    public void onShadeClosesWithoutAnimationWillResetSwipeState() {
    public void onShadeClosesWithoutAnimationWillResetTouchState() {
        // GIVEN shade is expanded
        // GIVEN shade is expanded
        mStackScroller.setIsExpanded(true);
        mStackScroller.setIsExpanded(true);
        clearInvocations(mNotificationSwipeHelper);
        clearInvocations(mNotificationSwipeHelper);
@@ -859,8 +859,8 @@ public class NotificationStackScrollLayoutTest extends SysuiTestCase {
        // WHEN closing the shade without the animation
        // WHEN closing the shade without the animation
        mStackScroller.setIsExpanded(false);
        mStackScroller.setIsExpanded(false);


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


    @Test
    @Test