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

Commit ef0363b8 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Stop inflate on overflow and null check views" into rvc-dev am:...

Merge "Stop inflate on overflow and null check views" into rvc-dev am: 39ea2f1d am: 59907cf8 am: d4b7be24 am: dde20b02

Change-Id: I5c0c1b8a5e05dad7862ccf032d796af55719d38c
parents fa12560e dde20b02
Loading
Loading
Loading
Loading
+19 −3
Original line number Diff line number Diff line
@@ -216,11 +216,20 @@ class Bubble implements BubbleViewProvider {
        return mInflated;
    }

    void stopInflation() {
        if (mInflationTask == null) {
            return;
        }
        mInflationTask.cancel(/* mayInterruptIfRunning */ true);
        mIconView = null;
        mExpandedView = null;
        mInflated = false;
    }

    void setViewInfo(BubbleViewInfoTask.BubbleViewInfo info) {
        if (!isInflated()) {
            mIconView = info.imageView;
            mExpandedView = info.expandedView;
            mInflated = true;
        }

        mShortcutInfo = info.shortcutInfo;
@@ -231,8 +240,15 @@ class Bubble implements BubbleViewProvider {
        mDotColor = info.dotColor;
        mDotPath = info.dotPath;

        mExpandedView.update(this);
        mIconView.update(this);
        if (mExpandedView != null && mIconView != null) {
            mInflated = true;
        }
        if (mExpandedView != null) {
            mExpandedView.update(/* bubble */ this);
        }
        if (mIconView != null) {
            mIconView.update(/* bubble */ this);
        }
    }

    void setInflated(boolean inflated) {
+10 −6
Original line number Diff line number Diff line
@@ -203,10 +203,7 @@ public class BubbleData {
        if (DEBUG_BUBBLE_DATA) {
            Log.d(TAG, "promoteBubbleFromOverflow: " + bubble);
        }

        // Preserve new order for next repack, which sorts by last updated time.
        bubble.markUpdatedAt(mTimeSource.currentTimeMillis());
        mOverflowBubbles.remove(bubble);
        moveOverflowBubbleToPending(bubble);
        bubble.inflate(
                b -> {
                    notificationEntryUpdated(bubble, /* suppressFlyout */
@@ -217,6 +214,13 @@ public class BubbleData {
        dispatchPendingChanges();
    }

    private void moveOverflowBubbleToPending(Bubble b) {
        // Preserve new order for next repack, which sorts by last updated time.
        b.markUpdatedAt(mTimeSource.currentTimeMillis());
        mOverflowBubbles.remove(b);
        mPendingBubbles.add(b);
    }

    /**
     * Constructs a new bubble or returns an existing one. Does not add new bubbles to
     * bubble data, must go through {@link #notificationEntryUpdated(Bubble, boolean, boolean)}
@@ -228,8 +232,7 @@ public class BubbleData {
            for (int i = 0; i < mOverflowBubbles.size(); i++) {
                Bubble b = mOverflowBubbles.get(i);
                if (b.getKey().equals(entry.getKey())) {
                    mOverflowBubbles.remove(b);
                    mPendingBubbles.add(b);
                    moveOverflowBubbleToPending(b);
                    return b;
                }
            }
@@ -445,6 +448,7 @@ public class BubbleData {
                Log.d(TAG, "overflowing bubble: " + bubble);
            }
            mOverflowBubbles.add(0, bubble);
            bubble.stopInflation();

            if (mOverflowBubbles.size() == mMaxOverflowBubbles + 1) {
                // Remove oldest bubble.