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

Commit a6209a69 authored by Xiaowen Lei's avatar Xiaowen Lei
Browse files

Don't set expansion for downward (upward) scroll when the bouncer is hidden (shown).

Bug: 227348372
Fix: 227348372
Test: atest BouncerSwipeTouchHandlerTest
Change-Id: Ideea05789a026bde906bae614570486bf4e6e075
parent b1f0535c
Loading
Loading
Loading
Loading
+12 −4
Original line number Diff line number Diff line
@@ -117,15 +117,23 @@ public class BouncerSwipeTouchHandler implements DreamTouchHandler {
                        return false;
                    }

                    // Don't set expansion for downward scroll when the bouncer is hidden.
                    if (!mBouncerInitiallyShowing && (e1.getY() < e2.getY())) {
                        return true;
                    }

                    // Don't set expansion for upward scroll when the bouncer is shown.
                    if (mBouncerInitiallyShowing && (e1.getY() > e2.getY())) {
                        return true;
                    }

                    // For consistency, we adopt the expansion definition found in the
                    // PanelViewController. In this case, expansion refers to the view above the
                    // bouncer. As that view's expansion shrinks, the bouncer appears. The bouncer
                    // is fully hidden at full expansion (1) and fully visible when fully collapsed
                    // (0).
                    final float dy = mBouncerInitiallyShowing ? e2.getY() - e1.getY()
                            : e1.getY() - e2.getY();
                    final float screenTravelPercentage = Math.max(0,
                            dy / mCentralSurfaces.getDisplayHeight());
                    final float screenTravelPercentage = Math.abs(e1.getY() - e2.getY())
                            / mCentralSurfaces.getDisplayHeight();
                    setPanelExpansion(mBouncerInitiallyShowing
                            ? screenTravelPercentage : 1 - screenTravelPercentage);
                    return true;
+4 −16
Original line number Diff line number Diff line
@@ -169,7 +169,7 @@ public class BouncerSwipeTouchHandlerTest extends SysuiTestCase {
     * Makes sure swiping up when bouncer initially showing doesn't change the expansion amount.
     */
    @Test
    public void testSwipeUp_whenBouncerInitiallyShowing_keepsExpansionAtZero() {
    public void testSwipeUp_whenBouncerInitiallyShowing_doesNotSetExpansion() {
        when(mCentralSurfaces.isBouncerShowing()).thenReturn(true);

        mTouchHandler.onSessionStart(mTouchSession);
@@ -191,21 +191,15 @@ public class BouncerSwipeTouchHandlerTest extends SysuiTestCase {
        assertThat(gestureListener.onScroll(event1, event2, 0, distanceY))
                .isTrue();

        // Ensure only called once
        verify(mStatusBarKeyguardViewManager)
        verify(mStatusBarKeyguardViewManager, never())
                .onPanelExpansionChanged(anyFloat(), anyBoolean(), anyBoolean());

        // TODO(b/227348372): update the logic and also this test.
        // Ensure the expansion is kept at 0.
        verify(mStatusBarKeyguardViewManager).onPanelExpansionChanged(eq(0f), eq(false),
                eq(true));
    }

    /**
     * Makes sure swiping down when bouncer initially hidden doesn't change the expansion amount.
     */
    @Test
    public void testSwipeDown_whenBouncerInitiallyHidden_keepsExpansionAtOne() {
    public void testSwipeDown_whenBouncerInitiallyHidden_doesNotSetExpansion() {
        mTouchHandler.onSessionStart(mTouchSession);
        ArgumentCaptor<GestureDetector.OnGestureListener> gestureListenerCaptor =
                ArgumentCaptor.forClass(GestureDetector.OnGestureListener.class);
@@ -225,14 +219,8 @@ public class BouncerSwipeTouchHandlerTest extends SysuiTestCase {
        assertThat(gestureListener.onScroll(event1, event2, 0, distanceY))
                .isTrue();

        // Ensure only called once
        verify(mStatusBarKeyguardViewManager)
        verify(mStatusBarKeyguardViewManager, never())
                .onPanelExpansionChanged(anyFloat(), anyBoolean(), anyBoolean());

        // TODO(b/227348372): update the logic and also this test.
        // Ensure the expansion is kept at 1.
        verify(mStatusBarKeyguardViewManager).onPanelExpansionChanged(eq(1f), eq(false),
                eq(true));
    }

    /**