From 9e0f324e7caf35cc4ff11ac397f1bdb59616809c Mon Sep 17 00:00:00 2001 From: David Saff Date: Mon, 24 Oct 2022 20:07:11 +0000 Subject: [PATCH] BubbleController: Remove stack view even when broadcast receiver missing Bug: 253647225 Test: atest BubblesTest, also see bug for abtd run. Change-Id: Ia60fb73fc3cff887af466b21f140f1ad01261dd1 --- .../android/wm/shell/bubbles/BubbleController.java | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleController.java index 725b20525bf7e..3972b592c4480 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleController.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleController.java @@ -671,10 +671,18 @@ public class BubbleController implements ConfigurationChangeListener { return; } + mAddedToWindowManager = false; + // Put on background for this binder call, was causing jank + mBackgroundExecutor.execute(() -> { + try { + mContext.unregisterReceiver(mBroadcastReceiver); + } catch (IllegalArgumentException e) { + // Not sure if this happens in production, but was happening in tests + // (b/253647225) + e.printStackTrace(); + } + }); try { - mAddedToWindowManager = false; - // Put on background for this binder call, was causing jank - mBackgroundExecutor.execute(() -> mContext.unregisterReceiver(mBroadcastReceiver)); if (mStackView != null) { mWindowManager.removeView(mStackView); mBubbleData.getOverflow().cleanUpExpandedState();