Handle duplicate DOWN event am: 83d700c593

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15899337

Change-Id: I5958d3858657a30565f15bdad5de9852708edb93
This commit is contained in:
Matt Pietal
2021-09-24 17:00:18 +00:00
committed by Automerger Merge Worker

View File

@@ -3869,6 +3869,9 @@ public class NotificationPanelViewController extends PanelViewController {
@Override @Override
protected TouchHandler createTouchHandler() { protected TouchHandler createTouchHandler() {
return new TouchHandler() { return new TouchHandler() {
private long mLastTouchDownTime = -1L;
@Override @Override
public boolean onInterceptTouchEvent(MotionEvent event) { public boolean onInterceptTouchEvent(MotionEvent event) {
if (mBlockTouches || mQsFullyExpanded && mQs.disallowPanelTouches()) { if (mBlockTouches || mQsFullyExpanded && mQs.disallowPanelTouches()) {
@@ -3898,6 +3901,19 @@ public class NotificationPanelViewController extends PanelViewController {
@Override @Override
public boolean onTouch(View v, MotionEvent event) { public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
if (event.getDownTime() == mLastTouchDownTime) {
// An issue can occur when swiping down after unlock, where multiple down
// events are received in this handler with identical downTimes. Until the
// source of the issue can be located, detect this case and ignore.
// see b/193350347
Log.w(TAG, "Duplicate down event detected... ignoring");
return true;
}
mLastTouchDownTime = event.getDownTime();
}
if (mBlockTouches || (mQsFullyExpanded && mQs != null if (mBlockTouches || (mQsFullyExpanded && mQs != null
&& mQs.disallowPanelTouches())) { && mQs.disallowPanelTouches())) {
return false; return false;