Ensure activity view is always cleaned up

- remove mInflated flag and just use whether the views are null or not
  as a signal
- unify where views are nulled out / expanded view cleaned up, always
  ensure to clean up expanded view first

Test: manual
Bug: 152535659
Change-Id: I9ebaafe7d678fc7c3af790e007f0b6d51dfeb00b
This commit is contained in:
Mady Mellor
2020-03-26 17:36:44 -07:00
parent 6ae19bbdc2
commit e967e9676d
2 changed files with 11 additions and 16 deletions

View File

@@ -76,7 +76,6 @@ class Bubble implements BubbleViewProvider {
private BadgedImageView mIconView;
private BubbleExpandedView mExpandedView;
private boolean mInflated;
private BubbleViewInfoTask mInflationTask;
private boolean mInflateSynchronously;
@@ -166,10 +165,16 @@ class Bubble implements BubbleViewProvider {
return mExpandedView;
}
void cleanupExpandedState() {
/**
* Call when the views should be removed, ensure this is called to clean up ActivityView
* content.
*/
void cleanupViews() {
if (mExpandedView != null) {
mExpandedView.cleanUpExpandedState();
mExpandedView = null;
}
mIconView = null;
}
/**
@@ -213,17 +218,15 @@ class Bubble implements BubbleViewProvider {
}
boolean isInflated() {
return mInflated;
return mIconView != null && mExpandedView != null;
}
void stopInflation() {
if (mInflationTask == null) {
return;
}
mInflationTask.cancel(/* mayInterruptIfRunning */ true);
mIconView = null;
mExpandedView = null;
mInflated = false;
mInflationTask.cancel(true /* mayInterruptIfRunning */);
cleanupViews();
}
void setViewInfo(BubbleViewInfoTask.BubbleViewInfo info) {
@@ -240,9 +243,6 @@ class Bubble implements BubbleViewProvider {
mDotColor = info.dotColor;
mDotPath = info.dotPath;
if (mExpandedView != null && mIconView != null) {
mInflated = true;
}
if (mExpandedView != null) {
mExpandedView.update(/* bubble */ this);
}
@@ -251,10 +251,6 @@ class Bubble implements BubbleViewProvider {
}
}
void setInflated(boolean inflated) {
mInflated = inflated;
}
/**
* Set visibility of bubble in the expanded state.
*

View File

@@ -963,8 +963,7 @@ public class BubbleStackView extends FrameLayout {
if (v instanceof BadgedImageView
&& ((BadgedImageView) v).getKey().equals(bubble.getKey())) {
mBubbleContainer.removeViewAt(i);
bubble.cleanupExpandedState();
bubble.setInflated(false);
bubble.cleanupViews();
logBubbleEvent(bubble, SysUiStatsLog.BUBBLE_UICHANGED__ACTION__DISMISSED);
return;
}