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

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

Merge "Don't recreate the dismiss target onConfigurationChanged." into rvc-dev...

Merge "Don't recreate the dismiss target onConfigurationChanged." into rvc-dev am: 97303916 am: f0239323

Change-Id: Ia6cef2a8b3fc7dabe0d8fa9e1ca9c23cb5c55e2c
parents 129e63c2 f0239323
Loading
Loading
Loading
Loading
+37 −21
Original line number Original line Diff line number Diff line
@@ -321,7 +321,7 @@ public class PipTouchHandler {
    }
    }


    public void onActivityPinned() {
    public void onActivityPinned() {
        createDismissTargetMaybe();
        createOrUpdateDismissTarget();


        mShowPipMenuOnAnimationEnd = true;
        mShowPipMenuOnAnimationEnd = true;
        mPipResizeGestureHandler.onActivityPinned();
        mPipResizeGestureHandler.onActivityPinned();
@@ -357,8 +357,7 @@ public class PipTouchHandler {
        mMotionHelper.synchronizePinnedStackBounds();
        mMotionHelper.synchronizePinnedStackBounds();


        // Recreate the dismiss target for the new orientation.
        // Recreate the dismiss target for the new orientation.
        cleanUpDismissTarget();
        createOrUpdateDismissTarget();
        createDismissTargetMaybe();
    }
    }


    public void onImeVisibilityChanged(boolean imeVisible, int imeHeight) {
    public void onImeVisibilityChanged(boolean imeVisible, int imeHeight) {
@@ -454,14 +453,32 @@ public class PipTouchHandler {
    }
    }


    /** Adds the magnetic target view to the WindowManager so it's ready to be animated in. */
    /** Adds the magnetic target view to the WindowManager so it's ready to be animated in. */
    private void createDismissTargetMaybe() {
    private void createOrUpdateDismissTarget() {
        if (!mTargetViewContainer.isAttachedToWindow()) {
        if (!mTargetViewContainer.isAttachedToWindow()) {
            mHandler.removeCallbacks(mShowTargetAction);
            mHandler.removeCallbacks(mShowTargetAction);
            mMagneticTargetAnimator.cancel();
            mMagneticTargetAnimator.cancel();


            mTargetViewContainer.setVisibility(View.INVISIBLE);

            try {
                mWindowManager.addView(mTargetViewContainer, getDismissTargetLayoutParams());
            } catch (IllegalStateException e) {
                // This shouldn't happen, but if the target is already added, just update its layout
                // params.
                mWindowManager.updateViewLayout(
                        mTargetViewContainer, getDismissTargetLayoutParams());
            }
        } else {
            mWindowManager.updateViewLayout(mTargetViewContainer, getDismissTargetLayoutParams());
        }
    }

    /** Returns layout params for the dismiss target, using the latest display metrics. */
    private WindowManager.LayoutParams getDismissTargetLayoutParams() {
        final Point windowSize = new Point();
        final Point windowSize = new Point();
        mWindowManager.getDefaultDisplay().getRealSize(windowSize);
        mWindowManager.getDefaultDisplay().getRealSize(windowSize);
            WindowManager.LayoutParams lp = new WindowManager.LayoutParams(

        final WindowManager.LayoutParams lp = new WindowManager.LayoutParams(
                WindowManager.LayoutParams.MATCH_PARENT,
                WindowManager.LayoutParams.MATCH_PARENT,
                mDismissAreaHeight,
                mDismissAreaHeight,
                0, windowSize.y - mDismissAreaHeight,
                0, windowSize.y - mDismissAreaHeight,
@@ -470,18 +487,17 @@ public class PipTouchHandler {
                        | WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE
                        | WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE
                        | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
                        | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
                PixelFormat.TRANSLUCENT);
                PixelFormat.TRANSLUCENT);

        lp.setTitle("pip-dismiss-overlay");
        lp.setTitle("pip-dismiss-overlay");
        lp.privateFlags |= WindowManager.LayoutParams.SYSTEM_FLAG_SHOW_FOR_ALL_USERS;
        lp.privateFlags |= WindowManager.LayoutParams.SYSTEM_FLAG_SHOW_FOR_ALL_USERS;
        lp.setFitInsetsTypes(0 /* types */);
        lp.setFitInsetsTypes(0 /* types */);


            mTargetViewContainer.setVisibility(View.INVISIBLE);
        return lp;
            mWindowManager.addView(mTargetViewContainer, lp);
        }
    }
    }


    /** Makes the dismiss target visible and animates it in, if it isn't already visible. */
    /** Makes the dismiss target visible and animates it in, if it isn't already visible. */
    private void showDismissTargetMaybe() {
    private void showDismissTargetMaybe() {
        createDismissTargetMaybe();
        createOrUpdateDismissTarget();


        if (mTargetViewContainer.getVisibility() != View.VISIBLE) {
        if (mTargetViewContainer.getVisibility() != View.VISIBLE) {