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

Commit ddd3f7e1 authored by Winson Chung's avatar Winson Chung Committed by Automerger Merge Worker
Browse files

Merge "Fix issue with callback not being made on the sysui main thread" into sc-dev am: e5bb44a8

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/14144128

Change-Id: Icdd6f4749f254dfa66dc541c20f2591527c19c34
parents b579dfcf e5bb44a8
Loading
Loading
Loading
Loading
+12 −10
Original line number Diff line number Diff line
@@ -739,14 +739,11 @@ public class BubbleController {
        return (isSummary && isSuppressedSummary) || isSuppressedBubble;
    }

    private void removeSuppressedSummaryIfNecessary(String groupKey, Consumer<String> callback,
            Executor callbackExecutor) {
    private void removeSuppressedSummaryIfNecessary(String groupKey, Consumer<String> callback) {
        if (mBubbleData.isSummarySuppressed(groupKey)) {
            mBubbleData.removeSuppressedSummary(groupKey);
            if (callback != null) {
                callbackExecutor.execute(() -> {
                callback.accept(mBubbleData.getSummaryKey(groupKey));
                });
            }
        }
    }
@@ -1298,8 +1295,10 @@ public class BubbleController {
        public void removeSuppressedSummaryIfNecessary(String groupKey, Consumer<String> callback,
                Executor callbackExecutor) {
            mMainExecutor.execute(() -> {
                BubbleController.this.removeSuppressedSummaryIfNecessary(groupKey, callback,
                        callbackExecutor);
                Consumer<String> cb = callback != null
                        ? (key) -> callbackExecutor.execute(() -> callback.accept(key))
                        : null;
                BubbleController.this.removeSuppressedSummaryIfNecessary(groupKey, cb);
            });
        }

@@ -1340,10 +1339,13 @@ public class BubbleController {

        @Override
        public boolean handleDismissalInterception(BubbleEntry entry,
                @Nullable List<BubbleEntry> children, IntConsumer removeCallback) {
                @Nullable List<BubbleEntry> children, IntConsumer removeCallback,
                Executor callbackExecutor) {
            IntConsumer cb = removeCallback != null
                    ? (index) -> callbackExecutor.execute(() -> removeCallback.accept(index))
                    : null;
            return mMainExecutor.executeBlockingForResult(() -> {
                return BubbleController.this.handleDismissalInterception(entry, children,
                        removeCallback);
                return BubbleController.this.handleDismissalInterception(entry, children, cb);
            }, Boolean.class);
        }

+1 −1
Original line number Diff line number Diff line
@@ -140,7 +140,7 @@ public interface Bubbles {
     * @return true if we want to intercept the dismissal of the entry, else false.
     */
    boolean handleDismissalInterception(BubbleEntry entry, @Nullable List<BubbleEntry> children,
            IntConsumer removeCallback);
            IntConsumer removeCallback, Executor callbackExecutor);

    /** Set the proxy to commnuicate with SysUi side components. */
    void setSysuiProxy(SysuiProxy proxy);
+1 −1
Original line number Diff line number Diff line
@@ -633,7 +633,7 @@ public class BubblesManager implements Dumpable {
                    } else {
                        mNotificationGroupManager.onEntryRemoved(entry);
                    }
                });
                }, mSysuiMainExecutor);
    }

    /**