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

Commit 65887b7f authored by Jiaming Liu's avatar Jiaming Liu Committed by Android (Google) Code Review
Browse files

Merge "[AE] Prevent crash when launching activity's task id is invalid" into main

parents 6f06a114 b542b3a8
Loading
Loading
Loading
Loading
+11 −3
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ package androidx.window.extensions.embedding;

import static android.app.ActivityManager.START_SUCCESS;
import static android.app.ActivityOptions.KEY_LAUNCH_TASK_FRAGMENT_TOKEN;
import static android.app.ActivityTaskManager.INVALID_TASK_ID;
import static android.app.WindowConfiguration.WINDOWING_MODE_PINNED;
import static android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED;
import static android.view.Display.DEFAULT_DISPLAY;
@@ -3154,15 +3155,22 @@ public class SplitController implements JetpackTaskFragmentOrganizer.TaskFragmen
                final WindowContainerTransaction wct = transactionRecord.getTransaction();
                final TaskFragmentContainer launchedInTaskFragment;
                if (launchingActivity != null) {
                    final int taskId = getTaskId(launchingActivity);
                    final String overlayTag = options.getString(KEY_OVERLAY_TAG);
                    if (Flags.activityEmbeddingOverlayPresentationFlag()
                            && overlayTag != null) {
                        launchedInTaskFragment = createOrUpdateOverlayTaskFragmentIfNeeded(wct,
                                options, intent, launchingActivity);
                    } else {
                        final int taskId = getTaskId(launchingActivity);
                        if (taskId != INVALID_TASK_ID) {
                            launchedInTaskFragment = resolveStartActivityIntent(wct, taskId, intent,
                                    launchingActivity);
                        } else {
                            // We cannot get a valid task id of launchingActivity so we fall back to
                            // treat it as a non-Activity context.
                            launchedInTaskFragment =
                                    resolveStartActivityIntentFromNonActivityContext(wct, intent);
                        }
                    }
                } else {
                    launchedInTaskFragment = resolveStartActivityIntentFromNonActivityContext(wct,