Commit to OtherActivityInputConsumer when swiping up in app

Fixes: 279634432
Test: swipe up and then immediately down, making sure that the notification shade is not brought down
Change-Id: I5ffdab6cef8162d0f0783c5d4a761197952209dd
This commit is contained in:
Tracy Zhou
2023-04-25 11:30:28 -07:00
parent eb55f83d88
commit 33bcdbbb9d

View File

@@ -33,6 +33,7 @@ public class StatusBarInputConsumer extends DelegateInputConsumer {
private final SystemUiProxy mSystemUiProxy;
private final float mTouchSlop;
private final PointF mDown = new PointF();
private boolean mHasPassedTouchSlop;
public StatusBarInputConsumer(Context context, InputConsumer delegate,
InputMonitorCompat inputMonitor) {
@@ -53,13 +54,21 @@ public class StatusBarInputConsumer extends DelegateInputConsumer {
mDelegate.onMotionEvent(ev);
switch (ev.getActionMasked()) {
case ACTION_DOWN -> mDown.set(ev.getX(), ev.getY());
case ACTION_DOWN -> {
mDown.set(ev.getX(), ev.getY());
mHasPassedTouchSlop = false;
}
case ACTION_MOVE -> {
float displacementY = ev.getY() - mDown.y;
if (displacementY > mTouchSlop) {
setActive(ev);
ev.setAction(ACTION_DOWN);
dispatchTouchEvent(ev);
if (!mHasPassedTouchSlop) {
float displacementY = ev.getY() - mDown.y;
if (Math.abs(displacementY) > mTouchSlop) {
mHasPassedTouchSlop = true;
if (displacementY > 0) {
setActive(ev);
ev.setAction(ACTION_DOWN);
dispatchTouchEvent(ev);
}
}
}
}
}