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

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

Merge "Fix crash when opening overflow after dismissing stack" into rvc-dev am: 552c77d5

Change-Id: Ie0beb7c6eb5527642a1f9a5c470ad8d6827b9443
parents 6f36dfb0 552c77d5
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -657,7 +657,13 @@ public class BubbleController implements ConfigurationController.ConfigurationLi

        try {
            mAddedToWindowManager = false;
            if (mStackView != null) {
                mWindowManager.removeView(mStackView);
                mStackView.removeView(mBubbleScrim);
                mStackView = null;
            } else {
                Log.w(TAG, "StackView added to WindowManager, but was null when removing!");
            }
        } catch (IllegalArgumentException e) {
            // This means the stack has already been removed - it shouldn't happen, but ignore if it
            // does, since we wanted it removed anyway.
+3 −1
Original line number Diff line number Diff line
@@ -306,8 +306,10 @@ public class BubbleExpandedView extends LinearLayout {
     * if a view has been added or removed from on top of the ActivityView, such as the manage menu.
     */
    void updateObscuredTouchableRegion() {
        if (mActivityView != null) {
            mActivityView.onLocationChanged();
        }
    }

    void applyThemeAttrs() {
        final TypedArray ta = mContext.obtainStyledAttributes(
+1 −1
Original line number Diff line number Diff line
@@ -129,7 +129,7 @@ public class BubbleOverflow implements BubbleViewProvider {
        return mOverflowBtn;
    }

    void setBtnVisible(int visible) {
    void setVisible(int visible) {
        mOverflowBtn.setVisibility(visible);
    }

+9 −15
Original line number Diff line number Diff line
@@ -1117,6 +1117,9 @@ public class BubbleStackView extends FrameLayout
        super.onDetachedFromWindow();
        getViewTreeObserver().removeOnPreDrawListener(mViewUpdater);
        getViewTreeObserver().removeOnComputeInternalInsetsListener(this);
        if (mBubbleOverflow != null && mBubbleOverflow.getExpandedView() != null) {
            mBubbleOverflow.getExpandedView().cleanUpExpandedState();
        }
    }

    @Override
@@ -1334,21 +1337,12 @@ public class BubbleStackView extends FrameLayout
        Log.d(TAG, "was asked to remove Bubble, but didn't find the view! " + bubble);
    }

    private void updateOverflowBtnVisibility() {
        if (!BubbleExperimentConfig.allowBubbleOverflow(mContext)) {
    private void updateOverflowVisibility() {
        if (!BubbleExperimentConfig.allowBubbleOverflow(mContext)
                || mBubbleOverflow == null) {
            return;
        }
        if (mIsExpanded) {
            if (DEBUG_BUBBLE_STACK_VIEW) {
                Log.d(TAG, "Show overflow button.");
            }
            mBubbleOverflow.setBtnVisible(VISIBLE);
        } else {
            if (DEBUG_BUBBLE_STACK_VIEW) {
                Log.d(TAG, "Collapsed. Hide overflow button.");
            }
            mBubbleOverflow.setBtnVisible(GONE);
        }
        mBubbleOverflow.setVisible(mIsExpanded ? VISIBLE : GONE);
    }

    // via BubbleData.Listener
@@ -1602,7 +1596,7 @@ public class BubbleStackView extends FrameLayout
            Log.d(TAG, BubbleDebugConfig.formatBubblesString(getBubblesOnScreen(),
                    mExpandedBubble));
        }
        updateOverflowBtnVisibility();
        updateOverflowVisibility();
        mBubbleContainer.cancelAllAnimations();
        mExpandedAnimationController.collapseBackToStack(
                mStackAnimationController.getStackPositionAlongNearestHorizontalEdge()
@@ -1626,7 +1620,7 @@ public class BubbleStackView extends FrameLayout
        beforeExpandedViewAnimation();

        mBubbleContainer.setActiveController(mExpandedAnimationController);
        updateOverflowBtnVisibility();
        updateOverflowVisibility();
        mExpandedAnimationController.expandFromStack(() -> {
            updatePointerPosition();
            afterExpandedViewAnimation();