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

Commit 0398f368 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Skip resize changing transition if display is rotating" into sc-v2-dev am: 34ea03d9

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15727463

Change-Id: I94f73fce5bdbd117f470134af16380000605f0cf
parents f9f7bae0 34ea03d9
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -8418,7 +8418,9 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
                startFreezingScreenLocked(globalChanges);
            }
            forceNewConfig = false;
            preserveWindow &= isResizeOnlyChange(changes);
            // Do not preserve window if it is freezing screen because the original window won't be
            // able to update drawn state that causes freeze timeout.
            preserveWindow &= isResizeOnlyChange(changes) && !mFreezingScreen;
            final boolean hasResizeChange = hasResizeChange(changes & ~info.getRealConfigChanged());
            if (hasResizeChange) {
                final boolean isDragResizing = task.isDragResizing();
+6 −0
Original line number Diff line number Diff line
@@ -3139,6 +3139,12 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp
        return mScreenRotationAnimation;
    }

    /** If the display is in transition, there should be a screenshot covering it. */
    @Override
    boolean inTransition() {
        return mScreenRotationAnimation != null || super.inTransition();
    }

    @Override
    public void dumpDebug(ProtoOutputStream proto, long fieldId,
            @WindowTraceLogLevel int logLevel) {
+6 −1
Original line number Diff line number Diff line
@@ -729,7 +729,12 @@ class ScreenRotationAnimation {
                mScreenshotRotationAnimator = null;
                mRotateScreenAnimator = null;
                mService.mAnimator.mBulkUpdateParams |= WindowSurfacePlacer.SET_UPDATE_ROTATION;
                if (mDisplayContent.getRotationAnimation() == ScreenRotationAnimation.this) {
                    // It also invokes kill().
                    mDisplayContent.setRotationAnimation(null);
                } else {
                    kill();
                }
                mService.updateRotation(false, false);
            }
        }
+2 −0
Original line number Diff line number Diff line
@@ -2014,6 +2014,8 @@ class TaskFragment extends WindowContainer<WindowContainer> {
                || mDisplayContent == null
                || mTaskFragmentOrganizer == null
                || getSurfaceControl() == null
                // The change transition will be covered by display.
                || mDisplayContent.inTransition()
                || !isVisible()) {
            return false;
        }
+4 −0
Original line number Diff line number Diff line
@@ -987,6 +987,10 @@ class WindowContainer<E extends WindowContainer> extends ConfigurationContainer<
        return mDisplayContent != null && mDisplayContent.mChangingContainers.contains(this);
    }

    boolean inTransition() {
        return mWmService.mAtmService.getTransitionController().inTransition(this);
    }

    void sendAppVisibilityToClients() {
        for (int i = mChildren.size() - 1; i >= 0; --i) {
            final WindowContainer wc = mChildren.get(i);