From cdf20df7f695cc126877f7e66c85889ff6d593c8 Mon Sep 17 00:00:00 2001 From: Schneider Victor-Tulias Date: Wed, 26 Mar 2025 15:57:09 -0400 Subject: [PATCH] Fix broken uses of TISBinder.refreshOverviewTarget TaskbarManager.setActivity doesn't get called again when TISBinder.refreshOverviewTarget is called because TIS isn't re-connecting to launcher. TISBinder.refreshOverviewTarget just forcefully updated the overview target, but TIS was still connected. So, QuickstepLauncher.onTISConnected wouldn't run again to call TaskbarMAnager.setActivity(this). Calling it manually to fix failing TaplTestsNexus tests with recents in window flags enabled Flag: com.android.launcher3.enable_launcher_overview_in_window Flag: com.android.launcher3.enable_fallback_overview_in_window Flag: com.android.launcher3.enable_overview_on_connected_displays Bug: 377678992 Test: TaplTestsNexus.testDismissWithKeyboardShortcut and TaplTestsNexus.testSearchWithKeyboardShortcut Change-Id: Ib386c3b8cfc5a9167f7f219dba0cccec344446b6 --- .../quickstep/QuickstepTestInformationHandler.java | 2 +- .../android/quickstep/TouchInteractionService.java | 11 ++++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/quickstep/src/com/android/quickstep/QuickstepTestInformationHandler.java b/quickstep/src/com/android/quickstep/QuickstepTestInformationHandler.java index b6046810ba..d80c05b99e 100644 --- a/quickstep/src/com/android/quickstep/QuickstepTestInformationHandler.java +++ b/quickstep/src/com/android/quickstep/QuickstepTestInformationHandler.java @@ -174,7 +174,7 @@ public class QuickstepTestInformationHandler extends TestInformationHandler { return response; case TestProtocol.REQUEST_REFRESH_OVERVIEW_TARGET: - runOnTISBinder(TouchInteractionService.TISBinder::refreshOverviewTarget); + runOnTISBinder(TouchInteractionService.TISBinder::refreshOverviewTargetForTest); return response; case TestProtocol.REQUEST_RECREATE_TASKBAR: diff --git a/quickstep/src/com/android/quickstep/TouchInteractionService.java b/quickstep/src/com/android/quickstep/TouchInteractionService.java index b059b330ed..226eeed4a7 100644 --- a/quickstep/src/com/android/quickstep/TouchInteractionService.java +++ b/quickstep/src/com/android/quickstep/TouchInteractionService.java @@ -73,6 +73,7 @@ import com.android.app.displaylib.PerDisplayRepository; import com.android.launcher3.ConstantItem; import com.android.launcher3.EncryptionType; import com.android.launcher3.Flags; +import com.android.launcher3.Launcher; import com.android.launcher3.LauncherPrefs; import com.android.launcher3.anim.AnimatedFloat; import com.android.launcher3.desktop.DesktopAppLaunchTransitionManager; @@ -96,6 +97,7 @@ import com.android.launcher3.util.TraceHelper; import com.android.quickstep.OverviewCommandHelper.CommandType; import com.android.quickstep.OverviewComponentObserver.OverviewChangeListener; import com.android.quickstep.fallback.window.RecentsDisplayModel; +import com.android.quickstep.fallback.window.RecentsWindowFlags; import com.android.quickstep.fallback.window.RecentsWindowSwipeHandler; import com.android.quickstep.inputconsumers.BubbleBarInputConsumer; import com.android.quickstep.inputconsumers.OneHandedModeInputConsumer; @@ -537,10 +539,17 @@ public class TouchInteractionService extends Service { } /** Refreshes the current overview target. */ - public void refreshOverviewTarget() { + @VisibleForTesting + public void refreshOverviewTargetForTest() { executeForTouchInteractionService(tis -> { tis.mAllAppsActionManager.onDestroy(); tis.onOverviewTargetChanged(tis.mOverviewComponentObserver.isHomeAndOverviewSame()); + if (RecentsWindowFlags.getEnableOverviewInWindow()) { + Launcher launcher = Launcher.ACTIVITY_TRACKER.getCreatedContext(); + if (launcher != null) { + tis.mTaskbarManager.setActivity(launcher); + } + } }); } }