From 89a0b88187debab2180f1e83fbba45f996317cee Mon Sep 17 00:00:00 2001 From: Jeff DeCew Date: Thu, 18 Nov 2021 15:43:43 -0500 Subject: Fix snooze guts disappearing in split shade In split shade the NSSL is no longer full screen, so the assumption that getX was the absolute X coordinate of the touch was wrong; as a result the NSSL dismissed the guts because it thought the touch was somewhere in the NSSL but not in the guts view (or any other view). Fixes: 204283146 Test: manual Change-Id: I634d378e162e20ed277b164a506d7dace56c8525 --- .../notification/stack/NotificationSwipeHelper.java | 4 ++-- .../notification/stack/NotificationSwipeHelperTest.java | 12 ++++++------ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationSwipeHelper.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationSwipeHelper.java index 664776975b24..a12fd4a644e7 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationSwipeHelper.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationSwipeHelper.java @@ -444,8 +444,8 @@ class NotificationSwipeHelper extends SwipeHelper implements NotificationSwipeAc final int height = (view instanceof ExpandableView) ? ((ExpandableView) view).getActualHeight() : view.getHeight(); - final int rx = (int) ev.getX(); - final int ry = (int) ev.getY(); + final int rx = (int) ev.getRawX(); + final int ry = (int) ev.getRawY(); int[] temp = new int[2]; view.getLocationOnScreen(temp); final int x = temp[0]; diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationSwipeHelperTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationSwipeHelperTest.java index 0faf5d478116..a0e91fc77148 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationSwipeHelperTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationSwipeHelperTest.java @@ -438,8 +438,8 @@ public class NotificationSwipeHelperTest extends SysuiTestCase { assertEquals("returns false when view is null", false, NotificationSwipeHelper.isTouchInView(mEvent, null)); - doReturn(5f).when(mEvent).getX(); - doReturn(10f).when(mEvent).getY(); + doReturn(5f).when(mEvent).getRawX(); + doReturn(10f).when(mEvent).getRawY(); doReturn(20).when(mView).getWidth(); doReturn(20).when(mView).getHeight(); @@ -455,7 +455,7 @@ public class NotificationSwipeHelperTest extends SysuiTestCase { assertTrue("Touch is within the view", mSwipeHelper.isTouchInView(mEvent, mView)); - doReturn(50f).when(mEvent).getX(); + doReturn(50f).when(mEvent).getRawX(); assertFalse("Touch is not within the view", mSwipeHelper.isTouchInView(mEvent, mView)); @@ -466,8 +466,8 @@ public class NotificationSwipeHelperTest extends SysuiTestCase { assertEquals("returns false when view is null", false, NotificationSwipeHelper.isTouchInView(mEvent, null)); - doReturn(5f).when(mEvent).getX(); - doReturn(10f).when(mEvent).getY(); + doReturn(5f).when(mEvent).getRawX(); + doReturn(10f).when(mEvent).getRawY(); doReturn(20).when(mNotificationRow).getWidth(); doReturn(20).when(mNotificationRow).getActualHeight(); @@ -483,7 +483,7 @@ public class NotificationSwipeHelperTest extends SysuiTestCase { assertTrue("Touch is within the view", mSwipeHelper.isTouchInView(mEvent, mNotificationRow)); - doReturn(50f).when(mEvent).getX(); + doReturn(50f).when(mEvent).getRawX(); assertFalse("Touch is not within the view", mSwipeHelper.isTouchInView(mEvent, mNotificationRow)); -- cgit v1.2.3-59-g8ed1b