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

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

Migrate task intent/info to new task only if source task is empty

Migrate the task intent and info to the new task only if the
source task is empty or is about to remove. Or the source task will
be trimmed from Recents due to newly created task added.

Bug: 205215708
Test: start tips from Settings

Change-Id: I283b777b20f702b49fcf06fd7435bab87816d7d5
parent bae41b28
Loading
Loading
Loading
Loading
+8 −6
Original line number Diff line number Diff line
@@ -2638,15 +2638,17 @@ class ActivityStarter {
            Slog.w(TAG, "startActivity called from finishing " + mSourceRecord
                    + "; forcing " + "Intent.FLAG_ACTIVITY_NEW_TASK for: " + mIntent);
            mLaunchFlags |= FLAG_ACTIVITY_NEW_TASK;
            mNewTaskInfo = mSourceRecord.info;

            // It is not guaranteed that the source record will have a task associated with it. For,
            // example, if this method is being called for processing a pending activity launch, it
            // is possible that the activity has been removed from the task after the launch was
            // enqueued.
            // It is not guaranteed that the source record will have a task associated with it.
            // For example, if this method is being called for processing a pending activity
            // launch, it is possible that the activity has been removed from the task after the
            // launch was enqueued.
            final Task sourceTask = mSourceRecord.getTask();
            if (sourceTask == null || sourceTask.getTopNonFinishingActivity() == null) {
                mNewTaskInfo = mSourceRecord.info;
                mNewTaskIntent = sourceTask != null ? sourceTask.intent : null;
            }
        }
        mSourceRecord = null;
        mSourceRootTask = null;
    }