Loading quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java +30 −11 Original line number Diff line number Diff line Loading @@ -1205,18 +1205,29 @@ public abstract class AbsSwipeUpHandler<T extends RecentsViewContainer, } /** @return Whether this was the task we were waiting to appear, and thus handled it. */ protected boolean handleTaskAppeared(RemoteAnimationTarget[] appearedTaskTarget) { protected boolean handleTaskAppeared(@NonNull RemoteAnimationTarget[] appearedTaskTargets, @NonNull ActiveGestureLog.CompoundString failureReason) { if (mStateCallback.hasStates(STATE_HANDLER_INVALIDATED)) { failureReason.append("State handler was invalidated"); return false; } boolean hasStartedTaskBefore = Arrays.stream(appearedTaskTarget).anyMatch( mGestureState.mLastStartedTaskIdPredicate); if (mStateCallback.hasStates(STATE_START_NEW_TASK) && hasStartedTaskBefore) { reset(); return true; boolean stateStartNewTaskSet = mStateCallback.hasStates(STATE_START_NEW_TASK); if (!stateStartNewTaskSet || !hasStartedTaskBefore(appearedTaskTargets)) { if (!stateStartNewTaskSet) { failureReason.append("STATE_START_NEW_TASK was never set"); } else { TaskInfo taskInfo = appearedTaskTargets[0].taskInfo; failureReason.append("Unexpected task appeared") .append(" id=") .append(taskInfo.taskId) .append(" pkg=") .append(taskInfo.baseIntent.getComponent().getPackageName()); } return false; } reset(); return true; } private float dpiFromPx(float pixels) { return Utilities.dpiFromPx(pixels, mContext.getResources().getDisplayMetrics().densityDpi); Loading Loading @@ -2402,14 +2413,18 @@ public abstract class AbsSwipeUpHandler<T extends RecentsViewContainer, } } private boolean hasStartedTaskBefore(@NonNull RemoteAnimationTarget[] appearedTaskTargets) { return Arrays.stream(appearedTaskTargets) .anyMatch(mGestureState.mLastStartedTaskIdPredicate); } @Override public void onTasksAppeared(@NonNull RemoteAnimationTarget[] appearedTaskTargets) { if (mRecentsAnimationController == null) { return; } boolean hasStartedTaskBefore = Arrays.stream(appearedTaskTargets).anyMatch( mGestureState.mLastStartedTaskIdPredicate); if (!mStateCallback.hasStates(STATE_GESTURE_COMPLETED) && !hasStartedTaskBefore) { if (!mStateCallback.hasStates(STATE_GESTURE_COMPLETED) && !hasStartedTaskBefore(appearedTaskTargets)) { // This is a special case, if a task is started mid-gesture that wasn't a part of a // previous quickswitch task launch, then cancel the animation back to the app RemoteAnimationTarget appearedTaskTarget = appearedTaskTargets[0]; Loading @@ -2423,7 +2438,11 @@ public abstract class AbsSwipeUpHandler<T extends RecentsViewContainer, finishRecentsAnimationOnTasksAppeared(null /* onFinishComplete */); return; } if (!handleTaskAppeared(appearedTaskTargets)) { ActiveGestureLog.CompoundString handleTaskFailureReason = new ActiveGestureLog.CompoundString("handleTaskAppeared check failed: "); if (!handleTaskAppeared(appearedTaskTargets, handleTaskFailureReason)) { ActiveGestureLog.INSTANCE.addLog(handleTaskFailureReason); finishRecentsAnimationOnTasksAppeared(null /* onFinishComplete */); return; } Optional<RemoteAnimationTarget> taskTargetOptional = Loading quickstep/src/com/android/quickstep/FallbackSwipeHandler.java +5 −2 Original line number Diff line number Diff line Loading @@ -64,6 +64,7 @@ import com.android.launcher3.states.StateAnimationConfig; import com.android.launcher3.util.DisplayController; import com.android.quickstep.fallback.FallbackRecentsView; import com.android.quickstep.fallback.RecentsState; import com.android.quickstep.util.ActiveGestureLog; import com.android.quickstep.util.RectFSpringAnim; import com.android.quickstep.util.SurfaceTransaction.SurfaceProperties; import com.android.quickstep.util.TransformParams; Loading Loading @@ -170,14 +171,16 @@ public class FallbackSwipeHandler extends } @Override protected boolean handleTaskAppeared(RemoteAnimationTarget[] appearedTaskTarget) { protected boolean handleTaskAppeared(@NonNull RemoteAnimationTarget[] appearedTaskTarget, @NonNull ActiveGestureLog.CompoundString failureReason) { if (mActiveAnimationFactory != null && mActiveAnimationFactory.handleHomeTaskAppeared(appearedTaskTarget)) { mActiveAnimationFactory = null; failureReason.append("(FallbackSwipeHandler) should be handled as home task appeared"); return false; } return super.handleTaskAppeared(appearedTaskTarget); return super.handleTaskAppeared(appearedTaskTarget, failureReason); } @Override Loading Loading
quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java +30 −11 Original line number Diff line number Diff line Loading @@ -1205,18 +1205,29 @@ public abstract class AbsSwipeUpHandler<T extends RecentsViewContainer, } /** @return Whether this was the task we were waiting to appear, and thus handled it. */ protected boolean handleTaskAppeared(RemoteAnimationTarget[] appearedTaskTarget) { protected boolean handleTaskAppeared(@NonNull RemoteAnimationTarget[] appearedTaskTargets, @NonNull ActiveGestureLog.CompoundString failureReason) { if (mStateCallback.hasStates(STATE_HANDLER_INVALIDATED)) { failureReason.append("State handler was invalidated"); return false; } boolean hasStartedTaskBefore = Arrays.stream(appearedTaskTarget).anyMatch( mGestureState.mLastStartedTaskIdPredicate); if (mStateCallback.hasStates(STATE_START_NEW_TASK) && hasStartedTaskBefore) { reset(); return true; boolean stateStartNewTaskSet = mStateCallback.hasStates(STATE_START_NEW_TASK); if (!stateStartNewTaskSet || !hasStartedTaskBefore(appearedTaskTargets)) { if (!stateStartNewTaskSet) { failureReason.append("STATE_START_NEW_TASK was never set"); } else { TaskInfo taskInfo = appearedTaskTargets[0].taskInfo; failureReason.append("Unexpected task appeared") .append(" id=") .append(taskInfo.taskId) .append(" pkg=") .append(taskInfo.baseIntent.getComponent().getPackageName()); } return false; } reset(); return true; } private float dpiFromPx(float pixels) { return Utilities.dpiFromPx(pixels, mContext.getResources().getDisplayMetrics().densityDpi); Loading Loading @@ -2402,14 +2413,18 @@ public abstract class AbsSwipeUpHandler<T extends RecentsViewContainer, } } private boolean hasStartedTaskBefore(@NonNull RemoteAnimationTarget[] appearedTaskTargets) { return Arrays.stream(appearedTaskTargets) .anyMatch(mGestureState.mLastStartedTaskIdPredicate); } @Override public void onTasksAppeared(@NonNull RemoteAnimationTarget[] appearedTaskTargets) { if (mRecentsAnimationController == null) { return; } boolean hasStartedTaskBefore = Arrays.stream(appearedTaskTargets).anyMatch( mGestureState.mLastStartedTaskIdPredicate); if (!mStateCallback.hasStates(STATE_GESTURE_COMPLETED) && !hasStartedTaskBefore) { if (!mStateCallback.hasStates(STATE_GESTURE_COMPLETED) && !hasStartedTaskBefore(appearedTaskTargets)) { // This is a special case, if a task is started mid-gesture that wasn't a part of a // previous quickswitch task launch, then cancel the animation back to the app RemoteAnimationTarget appearedTaskTarget = appearedTaskTargets[0]; Loading @@ -2423,7 +2438,11 @@ public abstract class AbsSwipeUpHandler<T extends RecentsViewContainer, finishRecentsAnimationOnTasksAppeared(null /* onFinishComplete */); return; } if (!handleTaskAppeared(appearedTaskTargets)) { ActiveGestureLog.CompoundString handleTaskFailureReason = new ActiveGestureLog.CompoundString("handleTaskAppeared check failed: "); if (!handleTaskAppeared(appearedTaskTargets, handleTaskFailureReason)) { ActiveGestureLog.INSTANCE.addLog(handleTaskFailureReason); finishRecentsAnimationOnTasksAppeared(null /* onFinishComplete */); return; } Optional<RemoteAnimationTarget> taskTargetOptional = Loading
quickstep/src/com/android/quickstep/FallbackSwipeHandler.java +5 −2 Original line number Diff line number Diff line Loading @@ -64,6 +64,7 @@ import com.android.launcher3.states.StateAnimationConfig; import com.android.launcher3.util.DisplayController; import com.android.quickstep.fallback.FallbackRecentsView; import com.android.quickstep.fallback.RecentsState; import com.android.quickstep.util.ActiveGestureLog; import com.android.quickstep.util.RectFSpringAnim; import com.android.quickstep.util.SurfaceTransaction.SurfaceProperties; import com.android.quickstep.util.TransformParams; Loading Loading @@ -170,14 +171,16 @@ public class FallbackSwipeHandler extends } @Override protected boolean handleTaskAppeared(RemoteAnimationTarget[] appearedTaskTarget) { protected boolean handleTaskAppeared(@NonNull RemoteAnimationTarget[] appearedTaskTarget, @NonNull ActiveGestureLog.CompoundString failureReason) { if (mActiveAnimationFactory != null && mActiveAnimationFactory.handleHomeTaskAppeared(appearedTaskTarget)) { mActiveAnimationFactory = null; failureReason.append("(FallbackSwipeHandler) should be handled as home task appeared"); return false; } return super.handleTaskAppeared(appearedTaskTarget); return super.handleTaskAppeared(appearedTaskTarget, failureReason); } @Override Loading