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

Commit e8ca4c84 authored by Riddle Hsu's avatar Riddle Hsu Committed by Automerger Merge Worker
Browse files

Merge "Disable fixed rotation for starting window with ime surface" into sc-dev am: 3d4a4d75

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

Change-Id: I65a188655aaa37427799650f2e2473814ccc4a9e
parents 223407b1 3d4a4d75
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -1538,6 +1538,11 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp
            // to cover the activity configuration change.
            return false;
        }
        if (r.mStartingData != null && r.mStartingData.hasImeSurface()) {
            // Currently it is unknown that when will IME window be ready. Reject the case to
            // avoid flickering by showing IME in inconsistent orientation.
            return false;
        }
        if (checkOpening) {
            if (!mAppTransition.isTransitionSet() || !mOpeningApps.contains(r)) {
                // Apply normal rotation animation in case of the activity set different requested
+5 −0
Original line number Diff line number Diff line
@@ -39,4 +39,9 @@ class SnapshotStartingData extends StartingData {
        return mService.mStartingSurfaceController.createTaskSnapshotSurface(activity,
                mSnapshot);
    }

    @Override
    boolean hasImeSurface() {
        return mSnapshot.hasImeSurface();
    }
}
+5 −0
Original line number Diff line number Diff line
@@ -40,4 +40,9 @@ public abstract class StartingData {
     *         {@link StartingSurface#remove}
     */
    abstract StartingSurface createStartingSurface(ActivityRecord activity);

    /** @see android.window.TaskSnapshot#hasImeSurface() */
    boolean hasImeSurface() {
        return false;
    }
}
+3 −1
Original line number Diff line number Diff line
@@ -118,7 +118,9 @@ public class StartingSurfaceController {
                return null;
            }
            if (topFullscreenActivity.getWindowConfiguration().getRotation()
                    != taskSnapshot.getRotation()) {
                    != taskSnapshot.getRotation()
                    // Use normal rotation to avoid flickering of IME window in old orientation.
                    && !taskSnapshot.hasImeSurface()) {
                // The snapshot should have been checked by ActivityRecord#isSnapshotCompatible
                // that the activity will be updated to the same rotation as the snapshot. Since
                // the transition is not started yet, fixed rotation transform needs to be applied