From f6c28a4381e53fe1f2dbb08d6b4d0f8ed98f4a09 Mon Sep 17 00:00:00 2001 From: Tony Wickham Date: Tue, 30 Nov 2021 14:37:36 -0800 Subject: [PATCH] Fix potential memory leak by setting mControllers = null Test: N/A Bug: 202511986 Change-Id: Iad7cc89e0e68ce09ebe4ca3ab89392b50b6a82c7 --- .../launcher3/taskbar/FallbackTaskbarUIController.java | 1 + .../launcher3/taskbar/LauncherTaskbarUIController.java | 1 + .../android/launcher3/taskbar/TaskbarUIController.java | 8 +++++++- 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/quickstep/src/com/android/launcher3/taskbar/FallbackTaskbarUIController.java b/quickstep/src/com/android/launcher3/taskbar/FallbackTaskbarUIController.java index 90c035fed0..f1e67479f5 100644 --- a/quickstep/src/com/android/launcher3/taskbar/FallbackTaskbarUIController.java +++ b/quickstep/src/com/android/launcher3/taskbar/FallbackTaskbarUIController.java @@ -60,6 +60,7 @@ public class FallbackTaskbarUIController extends TaskbarUIController { @Override protected void onDestroy() { + super.onDestroy(); mRecentsActivity.setTaskbarUIController(null); mRecentsActivity.getStateManager().removeStateListener(mStateListener); } diff --git a/quickstep/src/com/android/launcher3/taskbar/LauncherTaskbarUIController.java b/quickstep/src/com/android/launcher3/taskbar/LauncherTaskbarUIController.java index 7d234392c4..2622700871 100644 --- a/quickstep/src/com/android/launcher3/taskbar/LauncherTaskbarUIController.java +++ b/quickstep/src/com/android/launcher3/taskbar/LauncherTaskbarUIController.java @@ -99,6 +99,7 @@ public class LauncherTaskbarUIController extends TaskbarUIController { @Override protected void onDestroy() { + super.onDestroy(); onLauncherResumedOrPaused(false); mTaskbarLauncherStateController.onDestroy(); diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarUIController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarUIController.java index f713dcabcb..f6bc785a14 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarUIController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarUIController.java @@ -18,6 +18,8 @@ package com.android.launcher3.taskbar; import android.graphics.Rect; import android.view.View; +import androidx.annotation.CallSuper; + import com.android.launcher3.model.data.ItemInfoWithIcon; import com.android.launcher3.model.data.WorkspaceItemInfo; @@ -33,11 +35,15 @@ public class TaskbarUIController { // Initialized in init. protected TaskbarControllers mControllers; + @CallSuper protected void init(TaskbarControllers taskbarControllers) { mControllers = taskbarControllers; } - protected void onDestroy() { } + @CallSuper + protected void onDestroy() { + mControllers = null; + } protected boolean isTaskbarTouchable() { return true;