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

Commit 6055613e authored by Ivan Tkachenko's avatar Ivan Tkachenko Committed by Android (Google) Code Review
Browse files

Merge "Bubble bar dismiss" into udc-qpr-dev

parents dd6d5225 b155f5dd
Loading
Loading
Loading
Loading
+38 −2
Original line number Diff line number Diff line
@@ -1049,6 +1049,20 @@ public class BubbleController implements ConfigurationChangeListener,
        mBubbleData.setExpanded(false /* expanded */);
    }

    /**
     * Update expanded state when a single bubble is dragged in Launcher.
     * Will be called only when bubble bar is expanded.
     * @param bubbleKey key of the bubble to collapse/expand
     * @param isBeingDragged whether the bubble is being dragged
     */
    public void onBubbleDrag(String bubbleKey, boolean isBeingDragged) {
        if (mBubbleData.getSelectedBubble() != null
                && mBubbleData.getSelectedBubble().getKey().equals(bubbleKey)) {
            // Should collapse/expand only if equals to selected bubble.
            mBubbleBarViewCallback.expansionChanged(/* isExpanded = */ !isBeingDragged);
        }
    }

    @VisibleForTesting
    public boolean isBubbleNotificationSuppressedFromShade(String key, String groupKey) {
        boolean isSuppressedBubble = (mBubbleData.hasAnyBubbleWithKey(key)
@@ -1434,6 +1448,17 @@ public class BubbleController implements ConfigurationChangeListener,
        }
    }

    /**
     * Removes all the bubbles.
     * <p>
     * Must be called from the main thread.
     */
    @VisibleForTesting
    @MainThread
    public void removeAllBubbles(@Bubbles.DismissReason int reason) {
        mBubbleData.dismissAll(reason);
    }

    private void onEntryAdded(BubbleEntry entry) {
        if (canLaunchInTaskView(mContext, entry)) {
            updateBubble(entry);
@@ -2095,14 +2120,25 @@ public class BubbleController implements ConfigurationChangeListener,
        }

        @Override
        public void removeBubble(String key, int reason) {
            // TODO (b/271466616) allow removals from launcher
        public void removeBubble(String key) {
            mMainExecutor.execute(
                    () -> mController.removeBubble(key, Bubbles.DISMISS_USER_GESTURE));
        }

        @Override
        public void removeAllBubbles() {
            mMainExecutor.execute(() -> mController.removeAllBubbles(Bubbles.DISMISS_USER_GESTURE));
        }

        @Override
        public void collapseBubbles() {
            mMainExecutor.execute(() -> mController.collapseStack());
        }

        @Override
        public void onBubbleDrag(String bubbleKey, boolean isBeingDragged) {
            mMainExecutor.execute(() -> mController.onBubbleDrag(bubbleKey, isBeingDragged));
        }
    }

    private class BubblesImpl implements Bubbles {
+6 −2
Original line number Diff line number Diff line
@@ -31,8 +31,12 @@ interface IBubbles {

    oneway void showBubble(in String key, in int bubbleBarOffsetX, in int bubbleBarOffsetY) = 3;

    oneway void removeBubble(in String key, in int reason) = 4;
    oneway void removeBubble(in String key) = 4;

    oneway void collapseBubbles() = 5;
    oneway void removeAllBubbles() = 5;

    oneway void collapseBubbles() = 6;

    oneway void onBubbleDrag(in String key, in boolean isBeingDragged) = 7;

}
 No newline at end of file
+8 −0
Original line number Diff line number Diff line
@@ -215,6 +215,14 @@ public class BubbleBarAnimationHelper {
        mExpandedViewAlphaAnimator.reverse();
    }

    /**
     * Cancel current animations
     */
    public void cancelAnimations() {
        PhysicsAnimator.getInstance(mExpandedViewContainerMatrix).cancel();
        mExpandedViewAlphaAnimator.cancel();
    }

    private void updateExpandedView() {
        if (mExpandedBubble == null || mExpandedBubble.getBubbleBarExpandedView() == null) {
            Log.w(TAG, "Trying to update the expanded view without a bubble");
+6 −0
Original line number Diff line number Diff line
@@ -150,6 +150,12 @@ public class BubbleBarLayerView extends FrameLayout
            mExpandedView = null;
        }
        if (mExpandedView == null) {
            if (expandedView.getParent() != null) {
                // Expanded view might be animating collapse and is still attached
                // Cancel current animations and remove from parent
                mAnimationHelper.cancelAnimations();
                removeView(expandedView);
            }
            mExpandedBubble = b;
            mExpandedView = expandedView;
            boolean isOverflowExpanded = b.getKey().equals(BubbleOverflow.KEY);