Loading quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/NavBarToHomeTouchController.java +4 −3 Original line number Diff line number Diff line Loading @@ -17,6 +17,8 @@ package com.android.launcher3.uioverrides.touchcontrollers; import static com.android.launcher3.AbstractFloatingView.TYPE_ALL; import static com.android.launcher3.AbstractFloatingView.TYPE_ALL_APPS_EDU; import static com.android.launcher3.LauncherAnimUtils.SUCCESS_TRANSITION_PROGRESS; import static com.android.launcher3.LauncherAnimUtils.newCancelListener; import static com.android.launcher3.LauncherState.ALL_APPS; import static com.android.launcher3.LauncherState.NORMAL; import static com.android.launcher3.allapps.AllAppsTransitionController.ALL_APPS_PROGRESS; Loading @@ -24,7 +26,6 @@ import static com.android.launcher3.anim.Interpolators.DEACCEL_3; import static com.android.launcher3.config.FeatureFlags.ENABLE_ALL_APPS_EDU; import static com.android.launcher3.config.FeatureFlags.ENABLE_QUICKSTEP_LIVE_TILE; import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_HOME_GESTURE; import static com.android.launcher3.touch.AbstractStateChangeTouchController.SUCCESS_TRANSITION_PROGRESS; import static com.android.systemui.shared.system.ActivityManagerWrapper.CLOSE_SYSTEM_WINDOWS_REASON_RECENTS; import android.animation.ValueAnimator; Loading Loading @@ -186,8 +187,8 @@ public class NavBarToHomeTouchController implements TouchController, if (topView != null) { topView.addHintCloseAnim(mPullbackDistance, PULLBACK_INTERPOLATOR, builder); } mCurrentAnimation = builder.createPlaybackController() .setOnCancelRunnable(this::clearState); mCurrentAnimation = builder.createPlaybackController(); mCurrentAnimation.getTarget().addListener(newCancelListener(this::clearState)); } private void clearState() { Loading quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/NoButtonNavbarToOverviewTouchController.java +6 −3 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.launcher3.uioverrides.touchcontrollers; import static com.android.launcher3.LauncherAnimUtils.newCancelListener; import static com.android.launcher3.LauncherState.ALL_APPS; import static com.android.launcher3.LauncherState.HINT_STATE; import static com.android.launcher3.LauncherState.NORMAL; Loading Loading @@ -191,15 +192,17 @@ public class NoButtonNavbarToOverviewTouchController extends PortraitStatesTouch return; } mNormalToHintOverviewScrimAnimator = null; mCurrentAnimation.dispatchOnCancelWithoutCancelRunnable(() -> { mCurrentAnimation.getTarget().addListener(newCancelListener(() -> mLauncher.getStateManager().goToState(OVERVIEW, true, () -> { mOverviewResistYAnim = AnimatorControllerWithResistance .createRecentsResistanceFromOverviewAnim(mLauncher, null) .createPlaybackController(); mReachedOverview = true; maybeSwipeInteractionToOverviewComplete(); }); }); }))); mCurrentAnimation.getTarget().removeListener(mClearStateOnCancelListener); mCurrentAnimation.dispatchOnCancel(); mStartedOverview = true; VibratorWrapper.INSTANCE.get(mLauncher).vibrate(OVERVIEW_HAPTIC); } Loading quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/NoButtonQuickSwitchTouchController.java +8 −3 Original line number Diff line number Diff line Loading @@ -15,6 +15,7 @@ */ package com.android.launcher3.uioverrides.touchcontrollers; import static com.android.launcher3.LauncherAnimUtils.newCancelListener; import static com.android.launcher3.LauncherState.NORMAL; import static com.android.launcher3.LauncherState.OVERVIEW; import static com.android.launcher3.LauncherState.OVERVIEW_BUTTONS; Loading Loading @@ -44,6 +45,7 @@ import static com.android.quickstep.views.RecentsView.TASK_SECONDARY_TRANSLATION import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_OVERVIEW_DISABLED; import android.animation.Animator; import android.animation.Animator.AnimatorListener; import android.animation.AnimatorListenerAdapter; import android.animation.ValueAnimator; import android.graphics.PointF; Loading Loading @@ -92,6 +94,8 @@ public class NoButtonQuickSwitchTouchController implements TouchController, private final MotionPauseDetector mMotionPauseDetector; private final float mMotionPauseMinDisplacement; private final LauncherRecentsView mRecentsView; protected final AnimatorListener mClearStateOnCancelListener = newCancelListener(this::clearState); private boolean mNoIntercept; private LauncherState mStartState; Loading Loading @@ -204,8 +208,8 @@ public class NoButtonQuickSwitchTouchController implements TouchController, config.duration = (long) (Math.max(mXRange, mYRange) * 2); config.animFlags = config.animFlags | SKIP_OVERVIEW; mNonOverviewAnim = mLauncher.getStateManager() .createAnimationToNewWorkspace(toState, config) .setOnCancelRunnable(this::clearState); .createAnimationToNewWorkspace(toState, config); mNonOverviewAnim.getTarget().addListener(mClearStateOnCancelListener); } private void setupOverviewAnimators() { Loading Loading @@ -379,7 +383,8 @@ public class NoButtonQuickSwitchTouchController implements TouchController, if (canceled) { // Let the state manager know that the animation didn't go to the target state, // but don't clean up yet (we already clean up when the animation completes). mNonOverviewAnim.dispatchOnCancelWithoutCancelRunnable(); mNonOverviewAnim.getTarget().removeListener(mClearStateOnCancelListener); mNonOverviewAnim.dispatchOnCancel(); } float startProgress = mNonOverviewAnim.getProgressFraction(); float endProgress = canceled ? 0 : 1; Loading quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/PortraitStatesTouchController.java +11 −18 Original line number Diff line number Diff line Loading @@ -245,29 +245,29 @@ public class PortraitStatesTouchController extends AbstractStateChangeTouchContr config.animFlags = animFlags; config.duration = maxAccuracy; cancelPendingAnim(); if (mCurrentAnimation != null) { mCurrentAnimation.getTarget().removeListener(mClearStateOnCancelListener); mCurrentAnimation.dispatchOnCancel(); } mGoingBetweenStates = true; if (mFromState == OVERVIEW && mToState == NORMAL && mOverviewPortraitStateTouchHelper.shouldSwipeDownReturnToApp()) { // Reset the state manager, when changing the interaction mode mLauncher.getStateManager().goToState(OVERVIEW, false /* animate */); mPendingAnimation = mOverviewPortraitStateTouchHelper .createSwipeDownToTaskAppAnimation(maxAccuracy, Interpolators.LINEAR); Runnable onCancelRunnable = () -> { cancelPendingAnim(); clearState(); }; mCurrentAnimation = mPendingAnimation.createPlaybackController() .setOnCancelRunnable(onCancelRunnable); mGoingBetweenStates = false; mCurrentAnimation = mOverviewPortraitStateTouchHelper .createSwipeDownToTaskAppAnimation(maxAccuracy, Interpolators.LINEAR) .createPlaybackController(); mLauncher.getStateManager().setCurrentUserControlledAnimation(mCurrentAnimation); RecentsView recentsView = mLauncher.getOverviewPanel(); totalShift = LayoutUtils.getShelfTrackingDistance(mLauncher, mLauncher.getDeviceProfile(), recentsView.getPagedOrientationHandler()); } else { mCurrentAnimation = mLauncher.getStateManager() .createAnimationToNewWorkspace(mToState, config) .setOnCancelRunnable(this::clearState); .createAnimationToNewWorkspace(mToState, config); } mCurrentAnimation.getTarget().addListener(mClearStateOnCancelListener); if (totalShift == 0) { totalShift = Math.signum(mFromState.ordinal - mToState.ordinal) Loading @@ -276,13 +276,6 @@ public class PortraitStatesTouchController extends AbstractStateChangeTouchContr return 1 / totalShift; } private void cancelPendingAnim() { if (mPendingAnimation != null) { mPendingAnimation.finish(false); mPendingAnimation = null; } } @Override protected void updateSwipeCompleteAnimation(ValueAnimator animator, long expectedDuration, LauncherState targetState, float velocity, boolean isFling) { Loading quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/QuickSwitchTouchController.java +2 −2 Original line number Diff line number Diff line Loading @@ -106,8 +106,8 @@ public class QuickSwitchTouchController extends AbstractStateChangeTouchControll setupInterpolators(config); config.duration = (long) (getShiftRange() * 2); mCurrentAnimation = mLauncher.getStateManager() .createAnimationToNewWorkspace(mToState, config) .setOnCancelRunnable(this::clearState); .createAnimationToNewWorkspace(mToState, config); mCurrentAnimation.getTarget().addListener(mClearStateOnCancelListener); mCurrentAnimation.getAnimationPlayer().addUpdateListener(valueAnimator -> updateFullscreenProgress((Float) valueAnimator.getAnimatedValue())); return 1 / getShiftRange(); Loading Loading
quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/NavBarToHomeTouchController.java +4 −3 Original line number Diff line number Diff line Loading @@ -17,6 +17,8 @@ package com.android.launcher3.uioverrides.touchcontrollers; import static com.android.launcher3.AbstractFloatingView.TYPE_ALL; import static com.android.launcher3.AbstractFloatingView.TYPE_ALL_APPS_EDU; import static com.android.launcher3.LauncherAnimUtils.SUCCESS_TRANSITION_PROGRESS; import static com.android.launcher3.LauncherAnimUtils.newCancelListener; import static com.android.launcher3.LauncherState.ALL_APPS; import static com.android.launcher3.LauncherState.NORMAL; import static com.android.launcher3.allapps.AllAppsTransitionController.ALL_APPS_PROGRESS; Loading @@ -24,7 +26,6 @@ import static com.android.launcher3.anim.Interpolators.DEACCEL_3; import static com.android.launcher3.config.FeatureFlags.ENABLE_ALL_APPS_EDU; import static com.android.launcher3.config.FeatureFlags.ENABLE_QUICKSTEP_LIVE_TILE; import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_HOME_GESTURE; import static com.android.launcher3.touch.AbstractStateChangeTouchController.SUCCESS_TRANSITION_PROGRESS; import static com.android.systemui.shared.system.ActivityManagerWrapper.CLOSE_SYSTEM_WINDOWS_REASON_RECENTS; import android.animation.ValueAnimator; Loading Loading @@ -186,8 +187,8 @@ public class NavBarToHomeTouchController implements TouchController, if (topView != null) { topView.addHintCloseAnim(mPullbackDistance, PULLBACK_INTERPOLATOR, builder); } mCurrentAnimation = builder.createPlaybackController() .setOnCancelRunnable(this::clearState); mCurrentAnimation = builder.createPlaybackController(); mCurrentAnimation.getTarget().addListener(newCancelListener(this::clearState)); } private void clearState() { Loading
quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/NoButtonNavbarToOverviewTouchController.java +6 −3 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.launcher3.uioverrides.touchcontrollers; import static com.android.launcher3.LauncherAnimUtils.newCancelListener; import static com.android.launcher3.LauncherState.ALL_APPS; import static com.android.launcher3.LauncherState.HINT_STATE; import static com.android.launcher3.LauncherState.NORMAL; Loading Loading @@ -191,15 +192,17 @@ public class NoButtonNavbarToOverviewTouchController extends PortraitStatesTouch return; } mNormalToHintOverviewScrimAnimator = null; mCurrentAnimation.dispatchOnCancelWithoutCancelRunnable(() -> { mCurrentAnimation.getTarget().addListener(newCancelListener(() -> mLauncher.getStateManager().goToState(OVERVIEW, true, () -> { mOverviewResistYAnim = AnimatorControllerWithResistance .createRecentsResistanceFromOverviewAnim(mLauncher, null) .createPlaybackController(); mReachedOverview = true; maybeSwipeInteractionToOverviewComplete(); }); }); }))); mCurrentAnimation.getTarget().removeListener(mClearStateOnCancelListener); mCurrentAnimation.dispatchOnCancel(); mStartedOverview = true; VibratorWrapper.INSTANCE.get(mLauncher).vibrate(OVERVIEW_HAPTIC); } Loading
quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/NoButtonQuickSwitchTouchController.java +8 −3 Original line number Diff line number Diff line Loading @@ -15,6 +15,7 @@ */ package com.android.launcher3.uioverrides.touchcontrollers; import static com.android.launcher3.LauncherAnimUtils.newCancelListener; import static com.android.launcher3.LauncherState.NORMAL; import static com.android.launcher3.LauncherState.OVERVIEW; import static com.android.launcher3.LauncherState.OVERVIEW_BUTTONS; Loading Loading @@ -44,6 +45,7 @@ import static com.android.quickstep.views.RecentsView.TASK_SECONDARY_TRANSLATION import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_OVERVIEW_DISABLED; import android.animation.Animator; import android.animation.Animator.AnimatorListener; import android.animation.AnimatorListenerAdapter; import android.animation.ValueAnimator; import android.graphics.PointF; Loading Loading @@ -92,6 +94,8 @@ public class NoButtonQuickSwitchTouchController implements TouchController, private final MotionPauseDetector mMotionPauseDetector; private final float mMotionPauseMinDisplacement; private final LauncherRecentsView mRecentsView; protected final AnimatorListener mClearStateOnCancelListener = newCancelListener(this::clearState); private boolean mNoIntercept; private LauncherState mStartState; Loading Loading @@ -204,8 +208,8 @@ public class NoButtonQuickSwitchTouchController implements TouchController, config.duration = (long) (Math.max(mXRange, mYRange) * 2); config.animFlags = config.animFlags | SKIP_OVERVIEW; mNonOverviewAnim = mLauncher.getStateManager() .createAnimationToNewWorkspace(toState, config) .setOnCancelRunnable(this::clearState); .createAnimationToNewWorkspace(toState, config); mNonOverviewAnim.getTarget().addListener(mClearStateOnCancelListener); } private void setupOverviewAnimators() { Loading Loading @@ -379,7 +383,8 @@ public class NoButtonQuickSwitchTouchController implements TouchController, if (canceled) { // Let the state manager know that the animation didn't go to the target state, // but don't clean up yet (we already clean up when the animation completes). mNonOverviewAnim.dispatchOnCancelWithoutCancelRunnable(); mNonOverviewAnim.getTarget().removeListener(mClearStateOnCancelListener); mNonOverviewAnim.dispatchOnCancel(); } float startProgress = mNonOverviewAnim.getProgressFraction(); float endProgress = canceled ? 0 : 1; Loading
quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/PortraitStatesTouchController.java +11 −18 Original line number Diff line number Diff line Loading @@ -245,29 +245,29 @@ public class PortraitStatesTouchController extends AbstractStateChangeTouchContr config.animFlags = animFlags; config.duration = maxAccuracy; cancelPendingAnim(); if (mCurrentAnimation != null) { mCurrentAnimation.getTarget().removeListener(mClearStateOnCancelListener); mCurrentAnimation.dispatchOnCancel(); } mGoingBetweenStates = true; if (mFromState == OVERVIEW && mToState == NORMAL && mOverviewPortraitStateTouchHelper.shouldSwipeDownReturnToApp()) { // Reset the state manager, when changing the interaction mode mLauncher.getStateManager().goToState(OVERVIEW, false /* animate */); mPendingAnimation = mOverviewPortraitStateTouchHelper .createSwipeDownToTaskAppAnimation(maxAccuracy, Interpolators.LINEAR); Runnable onCancelRunnable = () -> { cancelPendingAnim(); clearState(); }; mCurrentAnimation = mPendingAnimation.createPlaybackController() .setOnCancelRunnable(onCancelRunnable); mGoingBetweenStates = false; mCurrentAnimation = mOverviewPortraitStateTouchHelper .createSwipeDownToTaskAppAnimation(maxAccuracy, Interpolators.LINEAR) .createPlaybackController(); mLauncher.getStateManager().setCurrentUserControlledAnimation(mCurrentAnimation); RecentsView recentsView = mLauncher.getOverviewPanel(); totalShift = LayoutUtils.getShelfTrackingDistance(mLauncher, mLauncher.getDeviceProfile(), recentsView.getPagedOrientationHandler()); } else { mCurrentAnimation = mLauncher.getStateManager() .createAnimationToNewWorkspace(mToState, config) .setOnCancelRunnable(this::clearState); .createAnimationToNewWorkspace(mToState, config); } mCurrentAnimation.getTarget().addListener(mClearStateOnCancelListener); if (totalShift == 0) { totalShift = Math.signum(mFromState.ordinal - mToState.ordinal) Loading @@ -276,13 +276,6 @@ public class PortraitStatesTouchController extends AbstractStateChangeTouchContr return 1 / totalShift; } private void cancelPendingAnim() { if (mPendingAnimation != null) { mPendingAnimation.finish(false); mPendingAnimation = null; } } @Override protected void updateSwipeCompleteAnimation(ValueAnimator animator, long expectedDuration, LauncherState targetState, float velocity, boolean isFling) { Loading
quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/QuickSwitchTouchController.java +2 −2 Original line number Diff line number Diff line Loading @@ -106,8 +106,8 @@ public class QuickSwitchTouchController extends AbstractStateChangeTouchControll setupInterpolators(config); config.duration = (long) (getShiftRange() * 2); mCurrentAnimation = mLauncher.getStateManager() .createAnimationToNewWorkspace(mToState, config) .setOnCancelRunnable(this::clearState); .createAnimationToNewWorkspace(mToState, config); mCurrentAnimation.getTarget().addListener(mClearStateOnCancelListener); mCurrentAnimation.getAnimationPlayer().addUpdateListener(valueAnimator -> updateFullscreenProgress((Float) valueAnimator.getAnimatedValue())); return 1 / getShiftRange(); Loading