summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Jason Chang <jasonsfchang@google.com> 2022-06-07 07:48:25 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2022-06-07 07:48:25 +0000
commitb5149141aaba7975c3e77c7bccc91644550227ff (patch)
tree40d97d5542dc4aeb80be65861dab42455862b7ef
parent125630da5c167b61f8bd404a2c35118364040ded (diff)
parent1ef440bbed93494d3ab7c01224e2692947ae5892 (diff)
Merge "Fix toggle QS tiles don't respond when One-handed mode triggered" into tm-dev am: 1ef440bbed
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/18467054 Change-Id: Icb2a6bdb842fa9ff3614eb8812559bdd0fde2351 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java12
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutTest.java4
2 files changed, 14 insertions, 2 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java
index 270eb13c4224..ed1e78f5cc1d 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java
@@ -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());
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutTest.java
index 63e0f53e093d..9961aaee4224 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutTest.java
@@ -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