Merge "Update DesktopModeTouchEventListener to correctly identify click events." into tm-qpr-dev

This commit is contained in:
Matt Sziklay
2023-02-15 17:04:35 +00:00
committed by Android (Google) Code Review
2 changed files with 23 additions and 14 deletions

View File

@@ -250,25 +250,30 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel {
@Override
public boolean onTouch(View v, MotionEvent e) {
boolean isDrag = false;
final int id = v.getId();
if (id != R.id.caption_handle && id != R.id.desktop_mode_caption) {
return false;
}
if (id == R.id.caption_handle) {
isDrag = mDragDetector.onMotionEvent(e);
switch (e.getAction()) {
case MotionEvent.ACTION_DOWN:
mDragDetector.onMotionEvent(e);
final RunningTaskInfo taskInfo = mTaskOrganizer.getRunningTaskInfo(mTaskId);
if (taskInfo.isFocused) {
return mDragDetector.isDragEvent();
}
final WindowContainerTransaction wct = new WindowContainerTransaction();
wct.reorder(mTaskToken, true /* onTop */);
mSyncQueue.queue(wct);
return false;
case MotionEvent.ACTION_UP:
case MotionEvent.ACTION_CANCEL:
boolean res = mDragDetector.isDragEvent();
mDragDetector.onMotionEvent(e);
return res;
default:
mDragDetector.onMotionEvent(e);
return mDragDetector.isDragEvent();
}
if (e.getAction() != MotionEvent.ACTION_DOWN) {
return isDrag;
}
final RunningTaskInfo taskInfo = mTaskOrganizer.getRunningTaskInfo(mTaskId);
if (taskInfo.isFocused) {
return isDrag;
}
final WindowContainerTransaction wct = new WindowContainerTransaction();
wct.reorder(mTaskToken, true /* onTop */);
mSyncQueue.queue(wct);
return true;
}
/**

View File

@@ -94,6 +94,10 @@ class DragDetector {
mTouchSlop = touchSlop;
}
boolean isDragEvent() {
return mIsDragEvent;
}
private void resetState() {
mIsDragEvent = false;
mInputDownPoint.set(0, 0);