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:
@@ -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.
|
||||
*
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user