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

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

Merge "Use top activity for fixed rotation from snapshot starting window" into...

Merge "Use top activity for fixed rotation from snapshot starting window" into tm-dev am: d6ad543b

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



Change-Id: I327d10168fa2acc960c7f0bccd3300270b322e66
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 7c944d37 d6ad543b
Loading
Loading
Loading
Loading
+10 −2
Original line number Original line Diff line number Diff line
@@ -2462,9 +2462,17 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
        if (!newTask && taskSwitch && processRunning && !activityCreated && task.intent != null
        if (!newTask && taskSwitch && processRunning && !activityCreated && task.intent != null
                && mActivityComponent.equals(task.intent.getComponent())) {
                && mActivityComponent.equals(task.intent.getComponent())) {
            final ActivityRecord topAttached = task.getActivity(ActivityRecord::attachedToProcess);
            final ActivityRecord topAttached = task.getActivity(ActivityRecord::attachedToProcess);
            if (topAttached != null && topAttached.isSnapshotCompatible(snapshot)) {
            if (topAttached != null) {
                if (topAttached.isSnapshotCompatible(snapshot)
                        // This trampoline must be the same rotation.
                        && mDisplayContent.getDisplayRotation().rotationForOrientation(mOrientation,
                                mDisplayContent.getRotation()) == snapshot.getRotation()) {
                    return STARTING_WINDOW_TYPE_SNAPSHOT;
                    return STARTING_WINDOW_TYPE_SNAPSHOT;
                }
                }
                // No usable snapshot. And a splash screen may also be weird because an existing
                // activity may be shown right after the trampoline is finished.
                return STARTING_WINDOW_TYPE_NONE;
            }
        }
        }
        final boolean isActivityHome = isActivityTypeHome();
        final boolean isActivityHome = isActivityTypeHome();
        if ((newTask || !processRunning || (taskSwitch && !activityCreated))
        if ((newTask || !processRunning || (taskSwitch && !activityCreated))
+2 −3
Original line number Original line Diff line number Diff line
@@ -158,14 +158,13 @@ public class StartingSurfaceController {
                        + topFullscreenActivity);
                        + topFullscreenActivity);
                return null;
                return null;
            }
            }
            if (topFullscreenActivity.getWindowConfiguration().getRotation()
            if (activity.mDisplayContent.getRotation() != taskSnapshot.getRotation()) {
                    != taskSnapshot.getRotation()) {
                // The snapshot should have been checked by ActivityRecord#isSnapshotCompatible
                // The snapshot should have been checked by ActivityRecord#isSnapshotCompatible
                // that the activity will be updated to the same rotation as the snapshot. Since
                // 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
                // the transition is not started yet, fixed rotation transform needs to be applied
                // earlier to make the snapshot show in a rotated container.
                // earlier to make the snapshot show in a rotated container.
                activity.mDisplayContent.handleTopActivityLaunchingInDifferentOrientation(
                activity.mDisplayContent.handleTopActivityLaunchingInDifferentOrientation(
                        topFullscreenActivity, false /* checkOpening */);
                        activity, false /* checkOpening */);
            }
            }
                mService.mAtmService.mTaskOrganizerController.addStartingWindow(task,
                mService.mAtmService.mTaskOrganizerController.addStartingWindow(task,
                        activity, 0 /* launchTheme */, taskSnapshot);
                        activity, 0 /* launchTheme */, taskSnapshot);