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

Commit 6d543051 authored by Orhan Uysal's avatar Orhan Uysal
Browse files

Pass OverviewComponentObserver as a parameter.

Instead of instantiating a new OVerviewComponentObserver, instantiate
one in QuickstepLauncher and pass it down to relevant classes.

Test: Manual
Bug: 336155199
Flag: ACONFIG com.android.window.flags.enable_desktop_windowing_mode DEVELOPMENT
Change-Id: Ifcc40c63f0649544a92e7f6d4a00d9edcd9f7fe1
parent 1ebeb1d1
Loading
Loading
Loading
Loading
+9 −2
Original line number Diff line number Diff line
@@ -166,6 +166,8 @@ import com.android.launcher3.util.StartActivityParams;
import com.android.launcher3.util.TouchController;
import com.android.launcher3.widget.LauncherWidgetHolder;
import com.android.quickstep.OverviewCommandHelper;
import com.android.quickstep.OverviewComponentObserver;
import com.android.quickstep.RecentsAnimationDeviceState;
import com.android.quickstep.RecentsModel;
import com.android.quickstep.SystemUiProxy;
import com.android.quickstep.TaskUtils;
@@ -264,6 +266,10 @@ public class QuickstepLauncher extends Launcher implements RecentsViewContainer
                        getDepthController(), getStatsLogManager(),
                        systemUiProxy, RecentsModel.INSTANCE.get(this),
                        () -> onStateBack());
        RecentsAnimationDeviceState deviceState = new RecentsAnimationDeviceState(asContext());
        // TODO(b/337863494): Explore use of the same OverviewComponentObserver across launcher
        OverviewComponentObserver overviewComponentObserver = new OverviewComponentObserver(
                asContext(), deviceState);
        if (enableDesktopWindowingMode()) {
            mDesktopRecentsTransitionController = new DesktopRecentsTransitionController(
                    getStateManager(), systemUiProxy, getIApplicationThread(),
@@ -272,7 +278,7 @@ public class QuickstepLauncher extends Launcher implements RecentsViewContainer
        overviewPanel.init(mActionsView, mSplitSelectStateController,
                mDesktopRecentsTransitionController);
        mSplitWithKeyboardShortcutController = new SplitWithKeyboardShortcutController(this,
                mSplitSelectStateController);
                mSplitSelectStateController, overviewComponentObserver, deviceState);
        mSplitToWorkspaceController = new SplitToWorkspaceController(this,
                mSplitSelectStateController);
        mActionsView.updateDimension(getDeviceProfile(), overviewPanel.getLastComputedTaskSize());
@@ -287,7 +293,8 @@ public class QuickstepLauncher extends Launcher implements RecentsViewContainer
        if (enableDesktopWindowingMode()) {
            mDesktopVisibilityController = new DesktopVisibilityController(this);
            mDesktopVisibilityController.registerSystemUiListener();
            mSplitSelectStateController.initSplitFromDesktopController(this);
            mSplitSelectStateController.initSplitFromDesktopController(this,
                    overviewComponentObserver);
        }
        mHotseatPredictionController = new HotseatPredictionController(this);

+2 −0
Original line number Diff line number Diff line
@@ -109,6 +109,8 @@ public final class OverviewComponentObserver {
     * Sets a listener for changes in {@link #isHomeAndOverviewSame()}
     */
    public void setOverviewChangeListener(Consumer<Boolean> overviewChangeListener) {
        // TODO(b/337861962): This method should be able to support multiple listeners instead of
        // one so that we can reuse the same instance of this class across multiple places
        mOverviewChangeListener = overviewChangeListener;
    }

+10 −8
Original line number Diff line number Diff line
@@ -90,7 +90,6 @@ import com.android.launcher3.util.SplitConfigurationOptions.StagePosition;
import com.android.quickstep.OverviewComponentObserver;
import com.android.quickstep.RecentsAnimationCallbacks;
import com.android.quickstep.RecentsAnimationController;
import com.android.quickstep.RecentsAnimationDeviceState;
import com.android.quickstep.RecentsAnimationTargets;
import com.android.quickstep.RecentsModel;
import com.android.quickstep.SplitSelectionListener;
@@ -646,8 +645,13 @@ public class SplitSelectStateController {
        }
    }

    public void initSplitFromDesktopController(QuickstepLauncher launcher) {
        initSplitFromDesktopController(new SplitFromDesktopController(launcher));
    /**
     * Init {@code SplitFromDesktopController}
     */
    public void initSplitFromDesktopController(QuickstepLauncher launcher,
            OverviewComponentObserver overviewComponentObserver) {
        initSplitFromDesktopController(
                new SplitFromDesktopController(launcher, overviewComponentObserver));
    }

    @VisibleForTesting
@@ -956,12 +960,10 @@ public class SplitSelectStateController {
        private ISplitSelectListener mSplitSelectListener;
        private Drawable mAppIcon;

        public SplitFromDesktopController(QuickstepLauncher launcher) {
        public SplitFromDesktopController(QuickstepLauncher launcher,
                OverviewComponentObserver overviewComponentObserver) {
            mLauncher = launcher;
            RecentsAnimationDeviceState deviceState = new RecentsAnimationDeviceState(
                    launcher.getApplicationContext());
            mOverviewComponentObserver =
                    new OverviewComponentObserver(launcher.getApplicationContext(), deviceState);
            mOverviewComponentObserver = overviewComponentObserver;
            mSplitPlaceholderSize = mLauncher.getResources().getDimensionPixelSize(
                    R.dimen.split_placeholder_size);
            mSplitPlaceholderInset = mLauncher.getResources().getDimensionPixelSize(
+5 −4
Original line number Diff line number Diff line
@@ -62,12 +62,13 @@ public class SplitWithKeyboardShortcutController {
    private final int mSplitPlaceholderInset;

    public SplitWithKeyboardShortcutController(QuickstepLauncher launcher,
            SplitSelectStateController controller) {
            SplitSelectStateController controller,
            OverviewComponentObserver overviewComponentObserver,
            RecentsAnimationDeviceState deviceState) {
        mLauncher = launcher;
        mController = controller;
        mDeviceState = new RecentsAnimationDeviceState(launcher.getApplicationContext());
        mOverviewComponentObserver = new OverviewComponentObserver(launcher.getApplicationContext(),
                mDeviceState);
        mDeviceState = deviceState;
        mOverviewComponentObserver = overviewComponentObserver;

        mSplitPlaceholderSize = mLauncher.getResources().getDimensionPixelSize(
                R.dimen.split_placeholder_size);