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

Commit d7d76abe 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: Id754bebc76091bea28da5a485a96d4149dce8569
parents 11ac9035 552c77d5
Loading
Loading
Loading
Loading
+7 −1
Original line number Original line Diff line number Diff line
@@ -657,7 +657,13 @@ public class BubbleController implements ConfigurationController.ConfigurationLi


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


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


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


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


    @Override
    @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);
        Log.d(TAG, "was asked to remove Bubble, but didn't find the view! " + bubble);
    }
    }


    private void updateOverflowBtnVisibility() {
    private void updateOverflowVisibility() {
        if (!BubbleExperimentConfig.allowBubbleOverflow(mContext)) {
        if (!BubbleExperimentConfig.allowBubbleOverflow(mContext)
                || mBubbleOverflow == null) {
            return;
            return;
        }
        }
        if (mIsExpanded) {
        mBubbleOverflow.setVisible(mIsExpanded ? VISIBLE : GONE);
            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);
        }
    }
    }


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


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