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

Commit 3d4a4d75 authored by Riddle Hsu's avatar Riddle Hsu Committed by Android (Google) Code Review
Browse files

Merge "Disable fixed rotation for starting window with ime surface" into sc-dev

parents e8b84a6e 11f232ce
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