Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e967e967 authored by Mady Mellor's avatar Mady Mellor
Browse files

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
parent 6ae19bbd
Loading
Loading
Loading
Loading
+10 −14
Original line number Diff line number Diff line
@@ -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.
     *
+1 −2
Original line number Diff line number Diff line
@@ -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;
            }