diff --git a/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java b/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java index 8c2085096a..00fef6c587 100644 --- a/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java +++ b/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java @@ -213,9 +213,9 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener private static final int WIDGET_CROSSFADE_DURATION_MILLIS = 125; protected final QuickstepLauncher mLauncher; - private final DragLayer mDragLayer; + protected final DragLayer mDragLayer; - final Handler mHandler; + protected final Handler mHandler; private final float mClosingWindowTransY; private final float mMaxShadowRadius; @@ -1097,31 +1097,37 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener return; } if (hasControlRemoteAppTransitionPermission()) { - mWallpaperOpenRunner = createWallpaperOpenRunner(false /* fromUnlock */); - RemoteAnimationDefinition definition = new RemoteAnimationDefinition(); - definition.addRemoteAnimation(WindowManager.TRANSIT_OLD_WALLPAPER_OPEN, - WindowConfiguration.ACTIVITY_TYPE_STANDARD, - new RemoteAnimationAdapter( - new LauncherAnimationRunner(mHandler, mWallpaperOpenRunner, - false /* startAtFrontOfQueue */), - CLOSING_TRANSITION_DURATION_MS, 0 /* statusBarTransitionDelay */)); - - if (KEYGUARD_ANIMATION.get()) { - mKeyguardGoingAwayRunner = createWallpaperOpenRunner(true /* fromUnlock */); - definition.addRemoteAnimation( - WindowManager.TRANSIT_OLD_KEYGUARD_GOING_AWAY_ON_WALLPAPER, - new RemoteAnimationAdapter( - new LauncherAnimationRunner( - mHandler, mKeyguardGoingAwayRunner, - true /* startAtFrontOfQueue */), - CLOSING_TRANSITION_DURATION_MS, 0 /* statusBarTransitionDelay */)); - } - + addRemoteAnimations(definition); mLauncher.registerRemoteAnimations(definition); } } + /** + * Adds remote animations to a {@link RemoteAnimationDefinition}. May be overridden to add + * additional animations. + */ + protected void addRemoteAnimations(RemoteAnimationDefinition definition) { + mWallpaperOpenRunner = createWallpaperOpenRunner(false /* fromUnlock */); + definition.addRemoteAnimation(WindowManager.TRANSIT_OLD_WALLPAPER_OPEN, + WindowConfiguration.ACTIVITY_TYPE_STANDARD, + new RemoteAnimationAdapter( + new LauncherAnimationRunner(mHandler, mWallpaperOpenRunner, + false /* startAtFrontOfQueue */), + CLOSING_TRANSITION_DURATION_MS, 0 /* statusBarTransitionDelay */)); + + if (KEYGUARD_ANIMATION.get()) { + mKeyguardGoingAwayRunner = createWallpaperOpenRunner(true /* fromUnlock */); + definition.addRemoteAnimation( + WindowManager.TRANSIT_OLD_KEYGUARD_GOING_AWAY_ON_WALLPAPER, + new RemoteAnimationAdapter( + new LauncherAnimationRunner( + mHandler, mKeyguardGoingAwayRunner, + true /* startAtFrontOfQueue */), + CLOSING_TRANSITION_DURATION_MS, 0 /* statusBarTransitionDelay */)); + } + } + /** * Registers remote animations used when closing apps to home screen. */ @@ -1163,7 +1169,7 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener SystemUiProxy.INSTANCE.get(mLauncher).setStartingWindowListener(null); } - private void unregisterRemoteAnimations() { + protected void unregisterRemoteAnimations() { if (SEPARATE_RECENTS_ACTIVITY.get()) { return; } diff --git a/quickstep/src/com/android/launcher3/uioverrides/QuickstepLauncher.java b/quickstep/src/com/android/launcher3/uioverrides/QuickstepLauncher.java index 9a97bca87f..2cbb8996c8 100644 --- a/quickstep/src/com/android/launcher3/uioverrides/QuickstepLauncher.java +++ b/quickstep/src/com/android/launcher3/uioverrides/QuickstepLauncher.java @@ -239,7 +239,7 @@ public class QuickstepLauncher extends Launcher { mActionsView.updateDimension(getDeviceProfile(), overviewPanel.getLastComputedTaskSize()); mActionsView.updateVerticalMargin(DisplayController.getNavigationMode(this)); - mAppTransitionManager = new QuickstepTransitionManager(this); + mAppTransitionManager = buildAppTransitionManager(); mAppTransitionManager.registerRemoteAnimations(); mAppTransitionManager.registerRemoteTransitions(); @@ -308,6 +308,13 @@ public class QuickstepLauncher extends Launcher { return mHotseatPredictionController; } + /** + * Builds the {@link QuickstepTransitionManager} instance to use for managing transitions. + */ + protected QuickstepTransitionManager buildAppTransitionManager() { + return new QuickstepTransitionManager(this); + } + @Override protected QuickstepOnboardingPrefs createOnboardingPrefs(SharedPreferences sharedPrefs) { return new QuickstepOnboardingPrefs(this, sharedPrefs); diff --git a/src/com/android/launcher3/config/FeatureFlags.java b/src/com/android/launcher3/config/FeatureFlags.java index 2dc3e70302..674ed2ecde 100644 --- a/src/com/android/launcher3/config/FeatureFlags.java +++ b/src/com/android/launcher3/config/FeatureFlags.java @@ -379,6 +379,10 @@ public final class FeatureFlags { "Enable the ability to generate monochromatic icons, if it is not provided by the app" ); + public static final BooleanFlag ENABLE_DREAM_TRANSITION = getDebugFlag( + "ENABLE_DREAM_TRANSITION", true, + "Enable the launcher transition when the device enters a dream"); + public static final BooleanFlag ENABLE_TASKBAR_EDU_TOOLTIP = getDebugFlag( "ENABLE_TASKBAR_EDU_TOOLTIP", true, "Enable the tooltip version of the Taskbar education flow.");