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

Commit 9ac44b06 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: I8a9e7c48622e8b756ca89df52c3203dc79b75570
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 7cf76d0e d6ad543b
Loading
Loading
Loading
Loading
+10 −2
Original line number 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
                && mActivityComponent.equals(task.intent.getComponent())) {
            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;
                }
                // 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();
        if ((newTask || !processRunning || (taskSwitch && !activityCreated))
+2 −3
Original line number Diff line number Diff line
@@ -158,14 +158,13 @@ public class StartingSurfaceController {
                        + topFullscreenActivity);
                return null;
            }
            if (topFullscreenActivity.getWindowConfiguration().getRotation()
                    != taskSnapshot.getRotation()) {
            if (activity.mDisplayContent.getRotation() != taskSnapshot.getRotation()) {
                // 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
                // earlier to make the snapshot show in a rotated container.
                activity.mDisplayContent.handleTopActivityLaunchingInDifferentOrientation(
                        topFullscreenActivity, false /* checkOpening */);
                        activity, false /* checkOpening */);
            }
                mService.mAtmService.mTaskOrganizerController.addStartingWindow(task,
                        activity, 0 /* launchTheme */, taskSnapshot);