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

Commit f9203082 authored by Louis Chang's avatar Louis Chang
Browse files

Ensure child task has activity type set

Otherwise, the activity type of the child task is undefined.

Also log if the activity type of an Activity is changed once set.

Bug: 271528886
Test: drag app into split-screen
Change-Id: Ib8e925bc50dc2779bea1230cc22e6c1f68406d2c
parent fd59b80a
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -8892,6 +8892,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A

        final boolean wasInPictureInPicture = inPinnedWindowingMode();
        final DisplayContent display = mDisplayContent;
        final int activityType = getActivityType();
        if (wasInPictureInPicture && attachedToProcess() && display != null) {
            // If the PIP activity is changing to fullscreen with display orientation change, the
            // fixed rotation will take effect that requires to send fixed rotation adjustments
@@ -8916,6 +8917,11 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
        } else {
            super.onConfigurationChanged(newParentConfig);
        }
        if (activityType != ACTIVITY_TYPE_UNDEFINED
                && activityType != getActivityType()) {
            Slog.w(TAG, "Can't change activity type once set: " + this
                    + " activityType=" + activityTypeToString(getActivityType()));
        }

        // Configuration's equality doesn't consider seq so if only seq number changes in resolved
        // override configuration. Therefore ConfigurationContainer doesn't change merged override
+3 −0
Original line number Diff line number Diff line
@@ -5884,8 +5884,11 @@ class Task extends TaskFragment {
            final int taskId = activity != null
                    ? mTaskSupervisor.getNextTaskIdForUser(activity.mUserId)
                    : mTaskSupervisor.getNextTaskIdForUser();
            final int activityType = getActivityType();
            task = new Task.Builder(mAtmService)
                    .setTaskId(taskId)
                    .setActivityType(activityType != ACTIVITY_TYPE_UNDEFINED ? activityType
                            : ACTIVITY_TYPE_STANDARD)
                    .setActivityInfo(info)
                    .setActivityOptions(options)
                    .setIntent(intent)