Merge "Keep recents attached to app window on continued switching" into ub-launcher3-rvc-dev

This commit is contained in:
TreeHugger Robot
2020-05-27 18:07:11 +00:00
committed by Android (Google) Code Review
2 changed files with 16 additions and 4 deletions
@@ -112,6 +112,9 @@ public class OtherActivityInputConsumer extends ContextWrapper implements InputC
private boolean mPassedWindowMoveSlop;
// Slop used to determine when we say that the gesture has started.
private boolean mPassedPilferInputSlop;
// Same as mPassedPilferInputSlop, except when continuing a gesture mPassedPilferInputSlop is
// initially true while this one is false.
private boolean mPassedSlopOnThisGesture;
// Might be displacement in X or Y, depending on the direction we are swiping from the nav bar.
private float mStartDisplacement;
@@ -244,6 +247,7 @@ public class OtherActivityInputConsumer extends ContextWrapper implements InputC
mLastPos.set(ev.getX(pointerIndex), ev.getY(pointerIndex));
float displacement = getDisplacement(ev);
float displacementX = mLastPos.x - mDownPos.x;
float displacementY = mLastPos.y - mDownPos.y;
if (!mPassedWindowMoveSlop) {
if (!mIsDeferredDownTarget) {
@@ -258,11 +262,18 @@ public class OtherActivityInputConsumer extends ContextWrapper implements InputC
float horizontalDist = Math.abs(displacementX);
float upDist = -displacement;
boolean isLikelyToStartNewTask = horizontalDist > upDist;
boolean passedSlop = squaredHypot(displacementX, displacementY)
>= mSquaredTouchSlop;
if (!mPassedSlopOnThisGesture && passedSlop) {
mPassedSlopOnThisGesture = true;
}
// Until passing slop, we don't know what direction we're going, so assume we might
// be quick switching to avoid translating recents away when continuing the gesture.
boolean isLikelyToStartNewTask = !mPassedSlopOnThisGesture
|| horizontalDist > upDist;
if (!mPassedPilferInputSlop) {
float displacementY = mLastPos.y - mDownPos.y;
if (squaredHypot(displacementX, displacementY) >= mSquaredTouchSlop) {
if (passedSlop) {
if (mDisableHorizontalSwipe
&& Math.abs(displacementX) > Math.abs(displacementY)) {
// Horizontal gesture is not allowed in this region
@@ -339,6 +350,7 @@ public class OtherActivityInputConsumer extends ContextWrapper implements InputC
mActiveCallbacks = mTaskAnimationManager.continueRecentsAnimation(mGestureState);
mActiveCallbacks.addListener(mInteractionHandler);
mTaskAnimationManager.notifyRecentsAnimationState(mInteractionHandler);
mInteractionHandler.setIsLikelyToStartNewTask(true);
notifyGestureStarted();
} else {
intent.putExtra(INTENT_EXTRA_LOG_TRACE_ID, mGestureState.getGestureId());
@@ -48,7 +48,7 @@ public class GestureState implements RecentsAnimationCallbacks.RecentsAnimationL
NEW_TASK(false, ContainerType.APP, true),
LAST_TASK(false, ContainerType.APP, false);
LAST_TASK(false, ContainerType.APP, true);
GestureEndTarget(boolean isLauncher, int containerType,
boolean recentsAttachedToAppWindow) {