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
This commit is contained in:
@@ -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);
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user