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

Commit a2807f28 authored by Hongwei Wang's avatar Hongwei Wang Committed by Android (Google) Code Review
Browse files

Merge "Update destination bounds if rotation finishes first" into rvc-dev

parents ba52b860 e0412d1f
Loading
Loading
Loading
Loading
+8 −2
Original line number Original line Diff line number Diff line
@@ -322,13 +322,19 @@ public class PipTaskOrganizer extends TaskOrganizer {
     * @param destinationBoundsOut the current destination bounds will be populated to this param
     * @param destinationBoundsOut the current destination bounds will be populated to this param
     */
     */
    @SuppressWarnings("unchecked")
    @SuppressWarnings("unchecked")
    public void onMovementBoundsChanged(Rect destinationBoundsOut,
    public void onMovementBoundsChanged(Rect destinationBoundsOut, boolean fromRotation,
            boolean fromImeAdjustment, boolean fromShelfAdjustment) {
            boolean fromImeAdjustment, boolean fromShelfAdjustment) {
        final PipAnimationController.PipTransitionAnimator animator =
        final PipAnimationController.PipTransitionAnimator animator =
                mPipAnimationController.getCurrentAnimator();
                mPipAnimationController.getCurrentAnimator();
        destinationBoundsOut.set(mLastReportedBounds);
        if (animator == null || !animator.isRunning()
        if (animator == null || !animator.isRunning()
                || animator.getTransitionDirection() != TRANSITION_DIRECTION_TO_PIP) {
                || animator.getTransitionDirection() != TRANSITION_DIRECTION_TO_PIP) {
            if (mInPip && fromRotation) {
                // this could happen if rotation finishes before the animation
                mLastReportedBounds.set(destinationBoundsOut);
                scheduleFinishResizePip(mLastReportedBounds);
            } else if (!mLastReportedBounds.isEmpty()) {
                destinationBoundsOut.set(mLastReportedBounds);
            }
            return;
            return;
        }
        }


+7 −6
Original line number Original line Diff line number Diff line
@@ -97,8 +97,8 @@ public class PipManager implements BasePipManager, PipTaskOrganizer.PipTransitio
        final boolean changed = mPipBoundsHandler.onDisplayRotationChanged(mTmpNormalBounds,
        final boolean changed = mPipBoundsHandler.onDisplayRotationChanged(mTmpNormalBounds,
                displayId, fromRotation, toRotation, t);
                displayId, fromRotation, toRotation, t);
        if (changed) {
        if (changed) {
            updateMovementBounds(mTmpNormalBounds, false /* fromImeAdjustment */,
            updateMovementBounds(mTmpNormalBounds, true /* fromRotation */,
                    false /* fromShelfAdjustment */);
                    false /* fromImeAdjustment */, false /* fromShelfAdjustment */);
        }
        }
    };
    };


@@ -163,7 +163,7 @@ public class PipManager implements BasePipManager, PipTaskOrganizer.PipTransitio
        @Override
        @Override
        public void onMovementBoundsChanged(boolean fromImeAdjustment) {
        public void onMovementBoundsChanged(boolean fromImeAdjustment) {
            mHandler.post(() -> updateMovementBounds(null /* toBounds */,
            mHandler.post(() -> updateMovementBounds(null /* toBounds */,
                    fromImeAdjustment, false /* fromShelfAdjustment */));
                    false /* fromRotation */, fromImeAdjustment, false /* fromShelfAdjustment */));
        }
        }


        @Override
        @Override
@@ -294,7 +294,8 @@ public class PipManager implements BasePipManager, PipTaskOrganizer.PipTransitio
            if (changed) {
            if (changed) {
                mTouchHandler.onShelfVisibilityChanged(visible, height);
                mTouchHandler.onShelfVisibilityChanged(visible, height);
                updateMovementBounds(mPipBoundsHandler.getLastDestinationBounds(),
                updateMovementBounds(mPipBoundsHandler.getLastDestinationBounds(),
                        false /* fromImeAdjustment */, true /* fromShelfAdjustment */);
                        false /* fromRotation */, false /* fromImeAdjustment */,
                        true /* fromShelfAdjustment */);
            }
            }
        });
        });
    }
    }
@@ -353,7 +354,7 @@ public class PipManager implements BasePipManager, PipTaskOrganizer.PipTransitio
        mMenuController.onPinnedStackAnimationEnded();
        mMenuController.onPinnedStackAnimationEnded();
    }
    }


    private void updateMovementBounds(@Nullable Rect toBounds,
    private void updateMovementBounds(@Nullable Rect toBounds, boolean fromRotation,
            boolean fromImeAdjustment, boolean fromShelfAdjustment) {
            boolean fromImeAdjustment, boolean fromShelfAdjustment) {
        // Populate inset / normal bounds and DisplayInfo from mPipBoundsHandler before
        // Populate inset / normal bounds and DisplayInfo from mPipBoundsHandler before
        // passing to mTouchHandler/mPipTaskOrganizer
        // passing to mTouchHandler/mPipTaskOrganizer
@@ -361,7 +362,7 @@ public class PipManager implements BasePipManager, PipTaskOrganizer.PipTransitio
        mPipBoundsHandler.onMovementBoundsChanged(mTmpInsetBounds, mTmpNormalBounds,
        mPipBoundsHandler.onMovementBoundsChanged(mTmpInsetBounds, mTmpNormalBounds,
                outBounds, mTmpDisplayInfo);
                outBounds, mTmpDisplayInfo);
        // mTouchHandler would rely on the bounds populated from mPipTaskOrganizer
        // mTouchHandler would rely on the bounds populated from mPipTaskOrganizer
        mPipTaskOrganizer.onMovementBoundsChanged(outBounds,
        mPipTaskOrganizer.onMovementBoundsChanged(outBounds, fromRotation,
                fromImeAdjustment, fromShelfAdjustment);
                fromImeAdjustment, fromShelfAdjustment);
        mTouchHandler.onMovementBoundsChanged(mTmpInsetBounds, mTmpNormalBounds,
        mTouchHandler.onMovementBoundsChanged(mTmpInsetBounds, mTmpNormalBounds,
                outBounds, fromImeAdjustment, fromShelfAdjustment,
                outBounds, fromImeAdjustment, fromShelfAdjustment,