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

Commit 9d41ce8c authored by Jorim Jaggi's avatar Jorim Jaggi Committed by android-build-merger
Browse files

Merge "Properly check for orientation mismatch" into oc-dev

am: a96d7491

Change-Id: I5f11ef2c520e418242b44db32d087656c4eb3984
parents 423022e8 a96d7491
Loading
Loading
Loading
Loading
+3 −16
Original line number Diff line number Diff line
@@ -614,7 +614,7 @@ public class AppWindowContainerController
            return STARTING_WINDOW_TYPE_SPLASH_SCREEN;
        } else if (taskSwitch && allowTaskSnapshot) {
            return snapshot == null ? STARTING_WINDOW_TYPE_NONE
                    : snapshotOrientationSameAsDisplay(snapshot) || fromRecents
                    : snapshotOrientationSameAsTask(snapshot) || fromRecents
                            ? STARTING_WINDOW_TYPE_SNAPSHOT : STARTING_WINDOW_TYPE_SPLASH_SCREEN;
        } else {
            return STARTING_WINDOW_TYPE_NONE;
@@ -640,24 +640,11 @@ public class AppWindowContainerController
        return true;
    }

    private boolean snapshotOrientationSameAsDisplay(TaskSnapshot snapshot) {
    private boolean snapshotOrientationSameAsTask(TaskSnapshot snapshot) {
        if (snapshot == null) {
            return false;
        }
        final Rect rect = new Rect(0, 0, snapshot.getSnapshot().getWidth(),
                snapshot.getSnapshot().getHeight());
        rect.inset(snapshot.getContentInsets());
        final Rect taskBoundsWithoutInsets = new Rect();
        mContainer.getTask().getBounds(taskBoundsWithoutInsets);
        final DisplayInfo di = mContainer.getDisplayContent().getDisplayInfo();
        final Rect displayBounds = new Rect(0, 0, di.logicalWidth, di.logicalHeight);
        final Rect stableInsets = new Rect();
        mService.mPolicy.getStableInsetsLw(di.rotation, di.logicalWidth, di.logicalHeight,
                stableInsets);
        displayBounds.inset(stableInsets);
        final boolean snapshotInLandscape = rect.width() >= rect.height();
        final boolean displayInLandscape = displayBounds.width() >= displayBounds.height();
        return snapshotInLandscape == displayInLandscape;
        return mContainer.getTask().getConfiguration().orientation == snapshot.getOrientation();
    }

    public void removeStartingWindow() {