Merge "Minor touch changes for resizing" into rvc-dev

This commit is contained in:
Winson Chung
2020-06-15 18:05:48 +00:00
committed by Android (Google) Code Review
4 changed files with 33 additions and 21 deletions

View File

@@ -260,12 +260,14 @@ public class PipResizeGestureHandler {
private void onMotionEvent(MotionEvent ev) {
int action = ev.getActionMasked();
float x = ev.getX();
float y = ev.getY();
if (action == MotionEvent.ACTION_DOWN) {
mLastResizeBounds.setEmpty();
mAllowGesture = isWithinTouchRegion((int) ev.getX(), (int) ev.getY());
mAllowGesture = isWithinTouchRegion((int) x, (int) y);
if (mAllowGesture) {
setCtrlType((int) ev.getX(), (int) ev.getY());
mDownPoint.set(ev.getX(), ev.getY());
setCtrlType((int) x, (int) y);
mDownPoint.set(x, y);
mLastDownBounds.set(mMotionHelper.getBounds());
}
@@ -277,20 +279,23 @@ public class PipResizeGestureHandler {
break;
case MotionEvent.ACTION_MOVE:
// Capture inputs
float dx = Math.abs(ev.getX() - mDownPoint.x);
float dy = Math.abs(ev.getY() - mDownPoint.y);
if (!mThresholdCrossed && dx > mTouchSlop && dy > mTouchSlop) {
if (!mThresholdCrossed
&& Math.hypot(x - mDownPoint.x, y - mDownPoint.y) > mTouchSlop) {
mThresholdCrossed = true;
// Reset the down to begin resizing from this point
mDownPoint.set(x, y);
mInputMonitor.pilferPointers();
}
final Rect currentPipBounds = mMotionHelper.getBounds();
mLastResizeBounds.set(TaskResizingAlgorithm.resizeDrag(ev.getX(), ev.getY(),
mDownPoint.x, mDownPoint.y, currentPipBounds, mCtrlType, mMinSize.x,
mMinSize.y, mMaxSize, true,
mLastDownBounds.width() > mLastDownBounds.height()));
mPipBoundsHandler.transformBoundsToAspectRatio(mLastResizeBounds);
mPipTaskOrganizer.scheduleUserResizePip(mLastDownBounds, mLastResizeBounds,
null);
if (mThresholdCrossed) {
final Rect currentPipBounds = mMotionHelper.getBounds();
mLastResizeBounds.set(TaskResizingAlgorithm.resizeDrag(x, y,
mDownPoint.x, mDownPoint.y, currentPipBounds, mCtrlType, mMinSize.x,
mMinSize.y, mMaxSize, true,
mLastDownBounds.width() > mLastDownBounds.height()));
mPipBoundsHandler.transformBoundsToAspectRatio(mLastResizeBounds);
mPipTaskOrganizer.scheduleUserResizePip(mLastDownBounds, mLastResizeBounds,
null);
}
break;
case MotionEvent.ACTION_UP:
case MotionEvent.ACTION_CANCEL:

View File

@@ -200,11 +200,13 @@ public class OverviewProxyService extends CurrentUserTracker implements
mInputFocusTransferStartY = event.getY();
mInputFocusTransferStartMillis = event.getEventTime();
statusBar.onInputFocusTransfer(
mInputFocusTransferStarted, 0 /* velocity */);
mInputFocusTransferStarted, false /* cancel */,
0 /* velocity */);
}
if (action == ACTION_UP || action == ACTION_CANCEL) {
mInputFocusTransferStarted = false;
statusBar.onInputFocusTransfer(mInputFocusTransferStarted,
action == ACTION_CANCEL,
(event.getY() - mInputFocusTransferStartY)
/ (event.getEventTime() - mInputFocusTransferStartMillis));
}
@@ -692,7 +694,8 @@ public class OverviewProxyService extends CurrentUserTracker implements
mHandler.post(()-> {
mStatusBarOptionalLazy.ifPresent(statusBarLazy -> {
mInputFocusTransferStarted = false;
statusBarLazy.get().onInputFocusTransfer(false, 0 /* velocity */);
statusBarLazy.get().onInputFocusTransfer(false, true /* cancel */,
0 /* velocity */);
});
});
}

View File

@@ -1328,11 +1328,15 @@ public class NotificationPanelViewController extends PanelViewController {
*
* @param velocity unit is in px / millis
*/
public void stopWaitingForOpenPanelGesture(final float velocity) {
public void stopWaitingForOpenPanelGesture(boolean cancel, final float velocity) {
if (mExpectingSynthesizedDown) {
mExpectingSynthesizedDown = false;
maybeVibrateOnOpening();
fling(velocity > 1f ? 1000f * velocity : 0, true /* expand */);
if (cancel) {
collapse(false /* delayed */, 1.0f /* speedUpFactor */);
} else {
maybeVibrateOnOpening();
fling(velocity > 1f ? 1000f * velocity : 0, true /* expand */);
}
onTrackingStopped(false);
}
}

View File

@@ -2093,7 +2093,7 @@ public class StatusBar extends SystemUI implements DemoMode,
/**
* Called when another window is about to transfer it's input focus.
*/
public void onInputFocusTransfer(boolean start, float velocity) {
public void onInputFocusTransfer(boolean start, boolean cancel, float velocity) {
if (!mCommandQueue.panelsEnabled()) {
return;
}
@@ -2101,7 +2101,7 @@ public class StatusBar extends SystemUI implements DemoMode,
if (start) {
mNotificationPanelViewController.startWaitingForOpenPanelGesture();
} else {
mNotificationPanelViewController.stopWaitingForOpenPanelGesture(velocity);
mNotificationPanelViewController.stopWaitingForOpenPanelGesture(cancel, velocity);
}
}