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

Commit 41b006d8 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Freezing screen when dismiss pip if orientation is going to change." into qt-r1-dev

parents fba42963 73b6e26d
Loading
Loading
Loading
Loading
+13 −15
Original line number Diff line number Diff line
@@ -5651,14 +5651,21 @@ class ActivityStack extends ConfigurationContainer {
    void animateResizePinnedStack(Rect sourceHintBounds, Rect toBounds, int animationDuration,
            boolean fromFullscreen) {
        if (!inPinnedWindowingMode()) return;
        if (skipResizeAnimation(toBounds == null /* toFullscreen */)) {
        if (toBounds == null /* toFullscreen */) {
            final Configuration parentConfig = getParent().getConfiguration();
            final ActivityRecord top = topRunningNonOverlayTaskActivity();
            if (top != null && !top.isConfigurationCompatible(parentConfig)) {
                // The final orientation of this activity will change after moving to full screen.
                // Start freezing screen here to prevent showing a temporary full screen window.
                top.startFreezingScreenLocked(top.app, CONFIG_SCREEN_LAYOUT);
                mService.moveTasksToFullscreenStack(mStackId, true /* onTop */);
        } else {
                return;
            }
        }
        if (getTaskStack() == null) return;
        getTaskStack().animateResizePinnedStack(toBounds, sourceHintBounds,
                animationDuration, fromFullscreen);
    }
    }

    /**
     * Get current bounds of this stack, return empty when it is unavailable.
@@ -5673,15 +5680,6 @@ class ActivityStack extends ConfigurationContainer {
        stack.getAnimationOrCurrentBounds(outBounds);
    }

    private boolean skipResizeAnimation(boolean toFullscreen) {
        if (!toFullscreen) {
            return false;
        }
        final Configuration parentConfig = getParent().getConfiguration();
        final ActivityRecord top = topRunningNonOverlayTaskActivity();
        return top != null && !top.isConfigurationCompatible(parentConfig);
    }

    void setPictureInPictureAspectRatio(float aspectRatio) {
        if (getTaskStack() == null) return;
        getTaskStack().setPictureInPictureAspectRatio(aspectRatio);