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

Commit 94a2d6b5 authored by Beverly's avatar Beverly
Browse files

Check unmagnified coordinates to close notif guts

To determine whether touches are inside a notification view, use the
unmagnified coordinates since we aren't scaling the view's size.

Test: manual
  1. enable magnification a11y service
  2. look at notification shade with notifications
  3. magnify a notification
  4. longpress on notification to see its interruptive settings
  5. change the interruptive setting (observe the guts don't close
  instantly upon changing the option, so user is able to still apply new
  interruptive settings)
Test: atest NotificationSwipeHelperTest
Fixes: 146316350
Change-Id: I5ce20763f18412f33310ca5cc547debbe94dbe97
parent c61e30bc
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -426,8 +426,8 @@ class NotificationSwipeHelper extends SwipeHelper implements NotificationSwipeAc
        final int height = (view instanceof ExpandableView)
                ? ((ExpandableView) view).getActualHeight()
                : view.getHeight();
        final int rx = (int) ev.getRawX();
        final int ry = (int) ev.getRawY();
        final int rx = (int) ev.getX();
        final int ry = (int) ev.getY();
        int[] temp = new int[2];
        view.getLocationOnScreen(temp);
        final int x = temp[0];
+6 −6
Original line number Diff line number Diff line
@@ -436,8 +436,8 @@ public class NotificationSwipeHelperTest extends SysuiTestCase {
        assertEquals("returns false when view is null", false,
                NotificationSwipeHelper.isTouchInView(mEvent, null));

        doReturn(5f).when(mEvent).getRawX();
        doReturn(10f).when(mEvent).getRawY();
        doReturn(5f).when(mEvent).getX();
        doReturn(10f).when(mEvent).getY();

        doReturn(20).when(mView).getWidth();
        doReturn(20).when(mView).getHeight();
@@ -453,7 +453,7 @@ public class NotificationSwipeHelperTest extends SysuiTestCase {
        assertTrue("Touch is within the view",
                mSwipeHelper.isTouchInView(mEvent, mView));

        doReturn(50f).when(mEvent).getRawX();
        doReturn(50f).when(mEvent).getX();

        assertFalse("Touch is not within the view",
                mSwipeHelper.isTouchInView(mEvent, mView));
@@ -464,8 +464,8 @@ public class NotificationSwipeHelperTest extends SysuiTestCase {
        assertEquals("returns false when view is null", false,
                NotificationSwipeHelper.isTouchInView(mEvent, null));

        doReturn(5f).when(mEvent).getRawX();
        doReturn(10f).when(mEvent).getRawY();
        doReturn(5f).when(mEvent).getX();
        doReturn(10f).when(mEvent).getY();

        doReturn(20).when(mNotificationRow).getWidth();
        doReturn(20).when(mNotificationRow).getActualHeight();
@@ -481,7 +481,7 @@ public class NotificationSwipeHelperTest extends SysuiTestCase {
        assertTrue("Touch is within the view",
                mSwipeHelper.isTouchInView(mEvent, mNotificationRow));

        doReturn(50f).when(mEvent).getRawX();
        doReturn(50f).when(mEvent).getX();

        assertFalse("Touch is not within the view",
                mSwipeHelper.isTouchInView(mEvent, mNotificationRow));