Merge "Minor touch changes for resizing" into rvc-dev am: 813ac747b6 am: b2a13977ea
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/11840049 Change-Id: I2c9e9ce0ebf7d29f32058f4bce604d94416b340a
This commit is contained in:
@@ -260,12 +260,14 @@ public class PipResizeGestureHandler {
|
|||||||
|
|
||||||
private void onMotionEvent(MotionEvent ev) {
|
private void onMotionEvent(MotionEvent ev) {
|
||||||
int action = ev.getActionMasked();
|
int action = ev.getActionMasked();
|
||||||
|
float x = ev.getX();
|
||||||
|
float y = ev.getY();
|
||||||
if (action == MotionEvent.ACTION_DOWN) {
|
if (action == MotionEvent.ACTION_DOWN) {
|
||||||
mLastResizeBounds.setEmpty();
|
mLastResizeBounds.setEmpty();
|
||||||
mAllowGesture = isWithinTouchRegion((int) ev.getX(), (int) ev.getY());
|
mAllowGesture = isWithinTouchRegion((int) x, (int) y);
|
||||||
if (mAllowGesture) {
|
if (mAllowGesture) {
|
||||||
setCtrlType((int) ev.getX(), (int) ev.getY());
|
setCtrlType((int) x, (int) y);
|
||||||
mDownPoint.set(ev.getX(), ev.getY());
|
mDownPoint.set(x, y);
|
||||||
mLastDownBounds.set(mMotionHelper.getBounds());
|
mLastDownBounds.set(mMotionHelper.getBounds());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -277,20 +279,23 @@ public class PipResizeGestureHandler {
|
|||||||
break;
|
break;
|
||||||
case MotionEvent.ACTION_MOVE:
|
case MotionEvent.ACTION_MOVE:
|
||||||
// Capture inputs
|
// Capture inputs
|
||||||
float dx = Math.abs(ev.getX() - mDownPoint.x);
|
if (!mThresholdCrossed
|
||||||
float dy = Math.abs(ev.getY() - mDownPoint.y);
|
&& Math.hypot(x - mDownPoint.x, y - mDownPoint.y) > mTouchSlop) {
|
||||||
if (!mThresholdCrossed && dx > mTouchSlop && dy > mTouchSlop) {
|
|
||||||
mThresholdCrossed = true;
|
mThresholdCrossed = true;
|
||||||
|
// Reset the down to begin resizing from this point
|
||||||
|
mDownPoint.set(x, y);
|
||||||
mInputMonitor.pilferPointers();
|
mInputMonitor.pilferPointers();
|
||||||
}
|
}
|
||||||
final Rect currentPipBounds = mMotionHelper.getBounds();
|
if (mThresholdCrossed) {
|
||||||
mLastResizeBounds.set(TaskResizingAlgorithm.resizeDrag(ev.getX(), ev.getY(),
|
final Rect currentPipBounds = mMotionHelper.getBounds();
|
||||||
mDownPoint.x, mDownPoint.y, currentPipBounds, mCtrlType, mMinSize.x,
|
mLastResizeBounds.set(TaskResizingAlgorithm.resizeDrag(x, y,
|
||||||
mMinSize.y, mMaxSize, true,
|
mDownPoint.x, mDownPoint.y, currentPipBounds, mCtrlType, mMinSize.x,
|
||||||
mLastDownBounds.width() > mLastDownBounds.height()));
|
mMinSize.y, mMaxSize, true,
|
||||||
mPipBoundsHandler.transformBoundsToAspectRatio(mLastResizeBounds);
|
mLastDownBounds.width() > mLastDownBounds.height()));
|
||||||
mPipTaskOrganizer.scheduleUserResizePip(mLastDownBounds, mLastResizeBounds,
|
mPipBoundsHandler.transformBoundsToAspectRatio(mLastResizeBounds);
|
||||||
null);
|
mPipTaskOrganizer.scheduleUserResizePip(mLastDownBounds, mLastResizeBounds,
|
||||||
|
null);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case MotionEvent.ACTION_UP:
|
case MotionEvent.ACTION_UP:
|
||||||
case MotionEvent.ACTION_CANCEL:
|
case MotionEvent.ACTION_CANCEL:
|
||||||
|
|||||||
@@ -200,11 +200,13 @@ public class OverviewProxyService extends CurrentUserTracker implements
|
|||||||
mInputFocusTransferStartY = event.getY();
|
mInputFocusTransferStartY = event.getY();
|
||||||
mInputFocusTransferStartMillis = event.getEventTime();
|
mInputFocusTransferStartMillis = event.getEventTime();
|
||||||
statusBar.onInputFocusTransfer(
|
statusBar.onInputFocusTransfer(
|
||||||
mInputFocusTransferStarted, 0 /* velocity */);
|
mInputFocusTransferStarted, false /* cancel */,
|
||||||
|
0 /* velocity */);
|
||||||
}
|
}
|
||||||
if (action == ACTION_UP || action == ACTION_CANCEL) {
|
if (action == ACTION_UP || action == ACTION_CANCEL) {
|
||||||
mInputFocusTransferStarted = false;
|
mInputFocusTransferStarted = false;
|
||||||
statusBar.onInputFocusTransfer(mInputFocusTransferStarted,
|
statusBar.onInputFocusTransfer(mInputFocusTransferStarted,
|
||||||
|
action == ACTION_CANCEL,
|
||||||
(event.getY() - mInputFocusTransferStartY)
|
(event.getY() - mInputFocusTransferStartY)
|
||||||
/ (event.getEventTime() - mInputFocusTransferStartMillis));
|
/ (event.getEventTime() - mInputFocusTransferStartMillis));
|
||||||
}
|
}
|
||||||
@@ -692,7 +694,8 @@ public class OverviewProxyService extends CurrentUserTracker implements
|
|||||||
mHandler.post(()-> {
|
mHandler.post(()-> {
|
||||||
mStatusBarOptionalLazy.ifPresent(statusBarLazy -> {
|
mStatusBarOptionalLazy.ifPresent(statusBarLazy -> {
|
||||||
mInputFocusTransferStarted = false;
|
mInputFocusTransferStarted = false;
|
||||||
statusBarLazy.get().onInputFocusTransfer(false, 0 /* velocity */);
|
statusBarLazy.get().onInputFocusTransfer(false, true /* cancel */,
|
||||||
|
0 /* velocity */);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1328,11 +1328,15 @@ public class NotificationPanelViewController extends PanelViewController {
|
|||||||
*
|
*
|
||||||
* @param velocity unit is in px / millis
|
* @param velocity unit is in px / millis
|
||||||
*/
|
*/
|
||||||
public void stopWaitingForOpenPanelGesture(final float velocity) {
|
public void stopWaitingForOpenPanelGesture(boolean cancel, final float velocity) {
|
||||||
if (mExpectingSynthesizedDown) {
|
if (mExpectingSynthesizedDown) {
|
||||||
mExpectingSynthesizedDown = false;
|
mExpectingSynthesizedDown = false;
|
||||||
maybeVibrateOnOpening();
|
if (cancel) {
|
||||||
fling(velocity > 1f ? 1000f * velocity : 0, true /* expand */);
|
collapse(false /* delayed */, 1.0f /* speedUpFactor */);
|
||||||
|
} else {
|
||||||
|
maybeVibrateOnOpening();
|
||||||
|
fling(velocity > 1f ? 1000f * velocity : 0, true /* expand */);
|
||||||
|
}
|
||||||
onTrackingStopped(false);
|
onTrackingStopped(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2109,7 +2109,7 @@ public class StatusBar extends SystemUI implements DemoMode,
|
|||||||
/**
|
/**
|
||||||
* Called when another window is about to transfer it's input focus.
|
* 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()) {
|
if (!mCommandQueue.panelsEnabled()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -2117,7 +2117,7 @@ public class StatusBar extends SystemUI implements DemoMode,
|
|||||||
if (start) {
|
if (start) {
|
||||||
mNotificationPanelViewController.startWaitingForOpenPanelGesture();
|
mNotificationPanelViewController.startWaitingForOpenPanelGesture();
|
||||||
} else {
|
} else {
|
||||||
mNotificationPanelViewController.stopWaitingForOpenPanelGesture(velocity);
|
mNotificationPanelViewController.stopWaitingForOpenPanelGesture(cancel, velocity);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user