Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 099341fa authored by Lucas Silva's avatar Lucas Silva
Browse files

Allow QuickstepTransitionManager to be overridden

This allows for custom animations in classes inheriting from
QuickstepLauncher

Bug: 260637266
Test: flashed device and verified animation
Change-Id: I21fa112851e9ce43037151fc4c2fd21e90056712
parent f5f3a809
Loading
Loading
Loading
Loading
+28 −22
Original line number Diff line number Diff line
@@ -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,9 +1097,18 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener
            return;
        }
        if (hasControlRemoteAppTransitionPermission()) {
            mWallpaperOpenRunner = createWallpaperOpenRunner(false /* fromUnlock */);

            RemoteAnimationDefinition definition = new RemoteAnimationDefinition();
            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(
@@ -1117,9 +1126,6 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener
                                    true /* startAtFrontOfQueue */),
                            CLOSING_TRANSITION_DURATION_MS, 0 /* statusBarTransitionDelay */));
        }

            mLauncher.registerRemoteAnimations(definition);
        }
    }

    /**
@@ -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;
        }
+8 −1
Original line number Diff line number Diff line
@@ -238,7 +238,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();

@@ -307,6 +307,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);
+4 −0
Original line number Diff line number Diff line
@@ -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.");