From c25acda96dbe32d6889e73e394250c4df769cac2 Mon Sep 17 00:00:00 2001 From: Tony Wickham Date: Fri, 2 May 2025 21:55:47 +0000 Subject: [PATCH] Clean up taskLaunch and taskLaunchCancel runnables more consistently - Set both to null instead of just one or the other - Clean up in TaskbarUIController#onDestroy instead of only in FallbackTaskbarUIController Test: presubmit + leak detection Flag: EXEMPT bug fix Fixes: 411767825 Change-Id: I1571f126e2df01009777359eac1973976a8bb661 --- .../launcher3/taskbar/FallbackTaskbarUIController.java | 4 ---- .../launcher3/taskbar/TaskbarLauncherStateController.java | 1 + .../com/android/launcher3/taskbar/TaskbarUIController.java | 5 +++++ quickstep/src/com/android/quickstep/views/RecentsView.java | 1 + 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/quickstep/src/com/android/launcher3/taskbar/FallbackTaskbarUIController.java b/quickstep/src/com/android/launcher3/taskbar/FallbackTaskbarUIController.java index 5b1e8593a1..2a73d61cd5 100644 --- a/quickstep/src/com/android/launcher3/taskbar/FallbackTaskbarUIController.java +++ b/quickstep/src/com/android/launcher3/taskbar/FallbackTaskbarUIController.java @@ -88,10 +88,6 @@ public class FallbackTaskbarUIController @Override protected void onDestroy() { super.onDestroy(); - RecentsView recentsView = getRecentsView(); - if (recentsView != null) { - recentsView.setTaskLaunchListener(null); - } mRecentsContainer.setTaskbarUIController(null); mRecentsContainer.getStateManager().removeStateListener(mStateListener); } diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java index a6abe2a2da..9b9733922d 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java @@ -1108,6 +1108,7 @@ public class TaskbarLauncherStateController { RecentsView recentsView = mControllers.uiController.getRecentsView(); if (recentsView != null) { recentsView.setTaskLaunchListener(null); + recentsView.setTaskLaunchCancelledRunnable(null); } if (mSkipNextRecentsAnimEnd && !canceled) { diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarUIController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarUIController.java index 179b294495..6167b24fd8 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarUIController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarUIController.java @@ -72,6 +72,11 @@ public class TaskbarUIController implements BubbleBarController.BubbleBarLocatio @CallSuper protected void onDestroy() { mControllers = null; + RecentsView recentsView = getRecentsView(); + if (recentsView != null) { + recentsView.setTaskLaunchListener(null); + recentsView.setTaskLaunchCancelledRunnable(null); + } } protected boolean isTaskbarTouchable() { diff --git a/quickstep/src/com/android/quickstep/views/RecentsView.java b/quickstep/src/com/android/quickstep/views/RecentsView.java index fce60aec44..9372cfb150 100644 --- a/quickstep/src/com/android/quickstep/views/RecentsView.java +++ b/quickstep/src/com/android/quickstep/views/RecentsView.java @@ -1290,6 +1290,7 @@ public abstract class RecentsView< if (mDesktopVisibilityController != null) { mDesktopVisibilityController.unregisterDesktopVisibilityListener(mUtils); } + mTaskLaunchListener = null; mOnTaskLaunchCancelledRunnable = null; reset(); }