diff options
4 files changed, 20 insertions, 18 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleController.java b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleController.java index d447596d7cbf..f05d547edd0c 100644 --- a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleController.java +++ b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleController.java @@ -657,7 +657,13 @@ public class BubbleController implements ConfigurationController.ConfigurationLi try { mAddedToWindowManager = false; - mWindowManager.removeView(mStackView); + if (mStackView != null) { + mWindowManager.removeView(mStackView); + mStackView.removeView(mBubbleScrim); + mStackView = null; + } else { + Log.w(TAG, "StackView added to WindowManager, but was null when removing!"); + } } catch (IllegalArgumentException e) { // This means the stack has already been removed - it shouldn't happen, but ignore if it // does, since we wanted it removed anyway. diff --git a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleExpandedView.java b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleExpandedView.java index 494a51d52095..64dc2ccc8b52 100644 --- a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleExpandedView.java +++ b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleExpandedView.java @@ -306,7 +306,9 @@ public class BubbleExpandedView extends LinearLayout { * if a view has been added or removed from on top of the ActivityView, such as the manage menu. */ void updateObscuredTouchableRegion() { - mActivityView.onLocationChanged(); + if (mActivityView != null) { + mActivityView.onLocationChanged(); + } } void applyThemeAttrs() { diff --git a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleOverflow.java b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleOverflow.java index af6e66aeb989..b77e2261e39b 100644 --- a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleOverflow.java +++ b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleOverflow.java @@ -129,7 +129,7 @@ public class BubbleOverflow implements BubbleViewProvider { return mOverflowBtn; } - void setBtnVisible(int visible) { + void setVisible(int visible) { mOverflowBtn.setVisibility(visible); } diff --git a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleStackView.java b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleStackView.java index 6ba1aa80ac75..239132ea292b 100644 --- a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleStackView.java +++ b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleStackView.java @@ -1117,6 +1117,9 @@ public class BubbleStackView extends FrameLayout super.onDetachedFromWindow(); getViewTreeObserver().removeOnPreDrawListener(mViewUpdater); getViewTreeObserver().removeOnComputeInternalInsetsListener(this); + if (mBubbleOverflow != null && mBubbleOverflow.getExpandedView() != null) { + mBubbleOverflow.getExpandedView().cleanUpExpandedState(); + } } @Override @@ -1334,21 +1337,12 @@ public class BubbleStackView extends FrameLayout Log.d(TAG, "was asked to remove Bubble, but didn't find the view! " + bubble); } - private void updateOverflowBtnVisibility() { - if (!BubbleExperimentConfig.allowBubbleOverflow(mContext)) { + private void updateOverflowVisibility() { + if (!BubbleExperimentConfig.allowBubbleOverflow(mContext) + || mBubbleOverflow == null) { return; } - if (mIsExpanded) { - if (DEBUG_BUBBLE_STACK_VIEW) { - Log.d(TAG, "Show overflow button."); - } - mBubbleOverflow.setBtnVisible(VISIBLE); - } else { - if (DEBUG_BUBBLE_STACK_VIEW) { - Log.d(TAG, "Collapsed. Hide overflow button."); - } - mBubbleOverflow.setBtnVisible(GONE); - } + mBubbleOverflow.setVisible(mIsExpanded ? VISIBLE : GONE); } // via BubbleData.Listener @@ -1602,7 +1596,7 @@ public class BubbleStackView extends FrameLayout Log.d(TAG, BubbleDebugConfig.formatBubblesString(getBubblesOnScreen(), mExpandedBubble)); } - updateOverflowBtnVisibility(); + updateOverflowVisibility(); mBubbleContainer.cancelAllAnimations(); mExpandedAnimationController.collapseBackToStack( mStackAnimationController.getStackPositionAlongNearestHorizontalEdge() @@ -1626,7 +1620,7 @@ public class BubbleStackView extends FrameLayout beforeExpandedViewAnimation(); mBubbleContainer.setActiveController(mExpandedAnimationController); - updateOverflowBtnVisibility(); + updateOverflowVisibility(); mExpandedAnimationController.expandFromStack(() -> { updatePointerPosition(); afterExpandedViewAnimation(); |