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

Commit d0c700fc authored by Lucas Silva's avatar Lucas Silva
Browse files

Fix bouncer swipe touch handler

This fix takes the direction of the swipe into account, depending on if
the bouncer is showing or not. This prevents downward swipes from
showing the bouncer.

Test: atest BouncerSwipeTouchHandlerTest
Test: manually on device
Bug: 224996347
Change-Id: I33a7bbd0ca466bdb3412103454d7a2ad57cdcd09
parent 97a0b1d5
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -116,8 +116,10 @@ public class BouncerSwipeTouchHandler implements DreamTouchHandler {
                    // 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 screenTravelPercentage =
                            Math.abs((e1.getY() - e2.getY()) / mCentralSurfaces.getDisplayHeight());
                    final float dy = mBouncerInitiallyShowing ? e2.getY() - e1.getY()
                            : e1.getY() - e2.getY();
                    final float screenTravelPercentage = Math.max(0,
                            dy / mCentralSurfaces.getDisplayHeight());
                    setPanelExpansion(mBouncerInitiallyShowing
                            ? screenTravelPercentage : 1 - screenTravelPercentage);
                    return true;
+2 −2
Original line number Diff line number Diff line
@@ -234,9 +234,9 @@ public class BouncerSwipeTouchHandlerTest extends SysuiTestCase {
        final float distanceY = SCREEN_HEIGHT_PX * scrollAmount;

        final MotionEvent event1 = MotionEvent.obtain(0, 0, MotionEvent.ACTION_MOVE,
                0, SCREEN_HEIGHT_PX, 0);
        final MotionEvent event2 = MotionEvent.obtain(0, 0, MotionEvent.ACTION_MOVE,
                0, SCREEN_HEIGHT_PX - distanceY, 0);
        final MotionEvent event2 = MotionEvent.obtain(0, 0, MotionEvent.ACTION_MOVE,
                0, SCREEN_HEIGHT_PX, 0);

        assertThat(gestureListenerCaptor.getValue().onScroll(event1, event2, 0, distanceY))
                .isTrue();