From f29a8dd4e2dbb12fefd40d1ab20034b61b775445 Mon Sep 17 00:00:00 2001 From: Alex Chau Date: Tue, 20 May 2025 12:33:53 +0100 Subject: [PATCH] Make sure RecentsWindowManager is created for TaskbarUIController Bug: 418965555 Flag: EXEMPT bugfix Test: local + presubmit Change-Id: Ib45df9c0f04534cd88a1b2ae1ff4ab49f8999dff --- .../quickstep/OverviewComponentObserver.java | 28 +++++++++++++------ 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/quickstep/src/com/android/quickstep/OverviewComponentObserver.java b/quickstep/src/com/android/quickstep/OverviewComponentObserver.java index 8d3c6abb18..13ad7673d4 100644 --- a/quickstep/src/com/android/quickstep/OverviewComponentObserver.java +++ b/quickstep/src/com/android/quickstep/OverviewComponentObserver.java @@ -51,6 +51,7 @@ import com.android.launcher3.dagger.LauncherAppSingleton; import com.android.launcher3.util.DaggerSingletonObject; import com.android.launcher3.util.DaggerSingletonTracker; import com.android.launcher3.util.SimpleBroadcastReceiver; +import com.android.quickstep.fallback.window.RecentsWindowManager; import com.android.quickstep.util.ActiveGestureProtoLogProxy; import com.android.systemui.shared.system.PackageManagerWrapper; @@ -77,7 +78,7 @@ public final class OverviewComponentObserver { private final SimpleBroadcastReceiver mUserPreferenceChangeReceiver; private final SimpleBroadcastReceiver mOtherHomeAppUpdateReceiver; - private final PerDisplayRepository mFallbackWindowInterfaceRepository; + private final PerDisplayRepository mRecentsWindowManagerRepository; private final Intent mCurrentPrimaryHomeIntent; private final Intent mSecondaryHomeIntent; @@ -99,13 +100,13 @@ public final class OverviewComponentObserver { @Inject public OverviewComponentObserver( @ApplicationContext Context context, - PerDisplayRepository fallbackWindowInterfaceRepository, + PerDisplayRepository recentsWindowManagerRepository, DaggerSingletonTracker lifecycleTracker) { mUserPreferenceChangeReceiver = new SimpleBroadcastReceiver(context, MAIN_EXECUTOR, this::updateOverviewTargets); mOtherHomeAppUpdateReceiver = new SimpleBroadcastReceiver(context, MAIN_EXECUTOR, this::updateOverviewTargets); - mFallbackWindowInterfaceRepository = fallbackWindowInterfaceRepository; + mRecentsWindowManagerRepository = recentsWindowManagerRepository; // Set up primary intents mCurrentPrimaryHomeIntent = createHomeIntent(); mMyPrimaryHomeIntent = new Intent(mCurrentPrimaryHomeIntent).setPackage( @@ -208,8 +209,11 @@ public final class OverviewComponentObserver { if (!mIsHomeDisabled && (defaultHome == null || mIsDefaultHome)) { // User default home is same as our home app. Use Overview integrated in Launcher. if (enableLauncherOverviewInWindow.isTrue()) { + RecentsWindowManager recentsWindowManager = mRecentsWindowManagerRepository.get( + DEFAULT_DISPLAY); mDefaultDisplayContainerInterface = - mFallbackWindowInterfaceRepository.get(DEFAULT_DISPLAY); + recentsWindowManager != null ? recentsWindowManager.getContainerInterface() + : null; } else { mDefaultDisplayContainerInterface = LauncherActivityInterface.INSTANCE; } @@ -222,8 +226,11 @@ public final class OverviewComponentObserver { } else { // The default home app is a different launcher. Use the fallback Overview instead. if (enableFallbackOverviewInWindow.isTrue()) { + RecentsWindowManager recentsWindowManager = mRecentsWindowManagerRepository.get( + DEFAULT_DISPLAY); mDefaultDisplayContainerInterface = - mFallbackWindowInterfaceRepository.get(DEFAULT_DISPLAY); + recentsWindowManager != null ? recentsWindowManager.getContainerInterface() + : null; } else { mDefaultDisplayContainerInterface = FallbackActivityInterface.INSTANCE; } @@ -326,9 +333,14 @@ public final class OverviewComponentObserver { */ @Nullable public BaseContainerInterface getContainerInterface(int displayId) { - return (enableOverviewOnConnectedDisplays() && displayId != DEFAULT_DISPLAY) - ? mFallbackWindowInterfaceRepository.get(displayId) - : mDefaultDisplayContainerInterface; + if (enableOverviewOnConnectedDisplays() && displayId != DEFAULT_DISPLAY) { + RecentsWindowManager recentsWindowManager = mRecentsWindowManagerRepository.get( + displayId); + return recentsWindowManager != null ? recentsWindowManager.getContainerInterface() + : null; + } else { + return mDefaultDisplayContainerInterface; + } } public void dump(PrintWriter pw) {