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

Commit 9ea6fc55 authored by Sergey Serokurov's avatar Sergey Serokurov Committed by Android (Google) Code Review
Browse files

Merge "Make only top bubble clickable when stack is collapsed"

parents 4b169d55 79623ef9
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -1319,6 +1319,7 @@ public class BubbleController {
     * Updates the visibility of the bubbles based on current state.
     * Does not un-bubble, just hides or un-hides.
     * Updates stack description for TalkBack focus.
     * Updates bubbles' icon views clickable states
     */
    public void updateStack() {
        if (mStackView == null) {
@@ -1336,6 +1337,8 @@ public class BubbleController {
        }

        mStackView.updateContentDescription();

        mStackView.updateBubblesClickableStates();
    }

    @VisibleForTesting
+19 −0
Original line number Diff line number Diff line
@@ -1485,6 +1485,25 @@ public class BubbleStackView extends FrameLayout
        }
    }

    /**
     * Update bubbles' icon views clickable states.
     */
    public void updateBubblesClickableStates() {
        for (int i = 0; i < mBubbleData.getBubbles().size(); i++) {
            final Bubble bubble = mBubbleData.getBubbles().get(i);
            if (bubble.getIconView() != null) {
                if (mIsExpanded) {
                    // when stack is expanded all bubbles are clickable
                    bubble.getIconView().setClickable(true);
                } else {
                    // when stack is collapsed, only the top bubble needs to be clickable,
                    // so that a11y ignores all the inaccessible bubbles in the stack
                    bubble.getIconView().setClickable(i == 0);
                }
            }
        }
    }

    private void updateSystemGestureExcludeRects() {
        // Exclude the region occupied by the first BubbleView in the stack
        Rect excludeZone = mSystemGestureExclusionRects.get(0);