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

Commit 19e42980 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...

Merge "Fix crash when opening overflow after dismissing stack" into rvc-dev am: 552c77d5 am: d7d76abe am: 4ff664c7 am: 64aadde4

Change-Id: Iefe87921d723c6365435d6836f79f3d4c6ea8f2b
parents 395eb89e 64aadde4
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -658,7 +658,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();