From 78c548a829bb2ef9b3e93fb53cf7023177d9d735 Mon Sep 17 00:00:00 2001 From: Tracy Zhou Date: Thu, 11 Jan 2024 16:13:06 -0800 Subject: [PATCH] Remove taskbar window from WindowManager in TaskbarManager.destroy() When task bar crashes (from anything), task bar window is not cleaned up properly. This is because destroyExistingTaskbar() only removes the root layout from the window when we are no longer rendering task bar (one use case of that is folding the device). We need to clean it up in onDestroy() also. Fixes: 319105323 Test: adb shell am crash com.android.systemui and make sure there is only one task bar window Change-Id: Ia9c808e903422707bf4c270b2631fc913dde65d9 --- quickstep/src/com/android/launcher3/taskbar/TaskbarManager.java | 1 + 1 file changed, 1 insertion(+) diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarManager.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarManager.java index c8719e7524..33641a4bda 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarManager.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarManager.java @@ -572,6 +572,7 @@ public class TaskbarManager { UI_HELPER_EXECUTOR.execute( () -> mTaskbarBroadcastReceiver.unregisterReceiverSafely(mContext)); destroyExistingTaskbar(); + removeTaskbarRootViewFromWindow(); if (mUserUnlocked) { DisplayController.INSTANCE.get(mContext).removeChangeListener(mRecreationListener); }