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

Commit a3e8e6ff authored by Jason Chang's avatar Jason Chang Committed by Automerger Merge Worker
Browse files

Merge "Fix toggle QS tiles don't respond when One-handed mode triggered" into tm-dev am: 1ef440bb

parents b3fb69ab 1ef440bb
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -3642,6 +3642,18 @@ public class NotificationStackScrollLayout extends ViewGroup implements Dumpable
    @ShadeViewRefactor(RefactorComponent.INPUT)
    protected boolean isInsideQsHeader(MotionEvent ev) {
        mQsHeader.getBoundsOnScreen(mQsHeaderBound);
        /**
         * One-handed mode defines a feature FEATURE_ONE_HANDED of DisplayArea {@link DisplayArea}
         * that will translate down the Y-coordinate whole window screen type except for
         * TYPE_NAVIGATION_BAR and TYPE_NAVIGATION_BAR_PANEL .{@link DisplayAreaPolicy}.
         *
         * So, to consider triggered One-handed mode would translate down the absolute Y-coordinate
         * of DisplayArea into relative coordinates for all windows, we need to correct the
         * QS Head bounds here.
         */
        final int xOffset = Math.round(ev.getRawX() - ev.getX());
        final int yOffset = Math.round(ev.getRawY() - ev.getY());
        mQsHeaderBound.offsetTo(xOffset, yOffset);
        return mQsHeaderBound.contains((int) ev.getRawX(), (int) ev.getRawY());
    }

+2 −2
Original line number Diff line number Diff line
@@ -608,10 +608,10 @@ public class NotificationStackScrollLayoutTest extends SysuiTestCase {
        assertFalse(mStackScroller.isInsideQsHeader(event1));

        MotionEvent event2 = transformEventForView(createMotionEvent(150f, 150f), mStackScroller);
        assertTrue(mStackScroller.isInsideQsHeader(event2));
        assertFalse(mStackScroller.isInsideQsHeader(event2));

        MotionEvent event3 = transformEventForView(createMotionEvent(250f, 250f), mStackScroller);
        assertTrue(mStackScroller.isInsideQsHeader(event2));
        assertTrue(mStackScroller.isInsideQsHeader(event3));
    }

    @Test