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

Commit 1c7de373 authored by Filip Gruszczynski's avatar Filip Gruszczynski Committed by Android (Google) Code Review
Browse files

Merge "Fix activity not launching from recents after it was dismissed."

parents 4eaa9423 3d82ed6b
Loading
Loading
Loading
Loading
+24 −22
Original line number Original line Diff line number Diff line
@@ -3484,6 +3484,7 @@ public final class ActivityManagerService extends ActivityManagerNative
                Watchdog.getInstance().processStarted(app.processName, startResult.pid);
                Watchdog.getInstance().processStarted(app.processName, startResult.pid);
            }
            }
            if (DEBUG_PROCESSES) {
                checkTime(startTime, "startProcess: building log message");
                checkTime(startTime, "startProcess: building log message");
                StringBuilder buf = mStringBuilder;
                StringBuilder buf = mStringBuilder;
                buf.setLength(0);
                buf.setLength(0);
@@ -3505,6 +3506,7 @@ public final class ActivityManagerService extends ActivityManagerNative
                    buf.append(hostingNameStr);
                    buf.append(hostingNameStr);
                }
                }
                Slog.i(TAG, buf.toString());
                Slog.i(TAG, buf.toString());
            }
            app.setPid(startResult.pid);
            app.setPid(startResult.pid);
            app.usingWrapper = startResult.usingWrapper;
            app.usingWrapper = startResult.usingWrapper;
            app.removed = false;
            app.removed = false;
@@ -19748,7 +19750,7 @@ public final class ActivityManagerService extends ActivityManagerNative
                        } else {
                        } else {
                            numEmpty++;
                            numEmpty++;
                            if (numEmpty > emptyProcessLimit) {
                            if (numEmpty > emptyProcessLimit) {
                                app.kill("empty #" + numEmpty, true);
                                app.kill("empty #" + numEmpty, DEBUG_PROCESSES);
                            }
                            }
                        }
                        }
                        break;
                        break;
+4 −9
Original line number Original line Diff line number Diff line
@@ -74,6 +74,7 @@ import android.os.Trace;
import android.os.UserHandle;
import android.os.UserHandle;
import android.service.voice.IVoiceInteractionSession;
import android.service.voice.IVoiceInteractionSession;
import android.util.EventLog;
import android.util.EventLog;
import android.util.Log;
import android.util.Slog;
import android.util.Slog;
import android.view.Display;
import android.view.Display;


@@ -733,7 +734,7 @@ final class ActivityStack {
                "Launch completed; removing icicle of " + r.icicle);
                "Launch completed; removing icicle of " + r.icicle);
    }
    }


    private void addRecentActivityLocked(ActivityRecord r) {
    void addRecentActivityLocked(ActivityRecord r) {
        if (r != null) {
        if (r != null) {
            mRecentTasks.addLocked(r.task);
            mRecentTasks.addLocked(r.task);
            r.task.touchActiveTime();
            r.task.touchActiveTime();
@@ -2312,8 +2313,8 @@ final class ActivityStack {
        updateTaskMovement(task, true);
        updateTaskMovement(task, true);
    }
    }


    final void startActivityLocked(ActivityRecord r, boolean newTask,
    final void startActivityLocked(ActivityRecord r, boolean newTask, boolean keepCurTransition,
            boolean doResume, boolean keepCurTransition, ActivityOptions options) {
            ActivityOptions options) {
        TaskRecord rTask = r.task;
        TaskRecord rTask = r.task;
        final int taskId = rTask.taskId;
        final int taskId = rTask.taskId;
        // mLaunchTaskBehind tasks get placed at the back of the task stack.
        // mLaunchTaskBehind tasks get placed at the back of the task stack.
@@ -2459,12 +2460,6 @@ final class ActivityStack {
        if (VALIDATE_TOKENS) {
        if (VALIDATE_TOKENS) {
            validateAppTokensLocked();
            validateAppTokensLocked();
        }
        }

        if (doResume) {
            mStackSupervisor.resumeTopActivitiesLocked(this, r, options);
        } else {
            addRecentActivityLocked(r);
        }
    }
    }


    final void validateAppTokensLocked() {
    final void validateAppTokensLocked() {
+8 −3
Original line number Original line Diff line number Diff line
@@ -2628,10 +2628,15 @@ public final class ActivityStackSupervisor implements DisplayListener {
        }
        }
        ActivityStack.logStartActivity(EventLogTags.AM_CREATE_ACTIVITY, r, r.task);
        ActivityStack.logStartActivity(EventLogTags.AM_CREATE_ACTIVITY, r, r.task);
        targetStack.mLastPausedActivity = null;
        targetStack.mLastPausedActivity = null;
        targetStack.startActivityLocked(r, newTask, doResume, keepCurTransition, options);
        targetStack.startActivityLocked(r, newTask, keepCurTransition, options);
        if (!launchTaskBehind && doResume) {
        if (doResume) {
            if (!launchTaskBehind) {
                mService.setFocusedActivityLocked(r, "startedActivity");
                mService.setFocusedActivityLocked(r, "startedActivity");
            }
            }
            resumeTopActivitiesLocked(targetStack, r, options);
        } else {
            targetStack.addRecentActivityLocked(r);
        }
        updateUserStackLocked(r.userId, targetStack);
        updateUserStackLocked(r.userId, targetStack);


        if (!r.task.mResizeable && isStackDockedInEffect(targetStack.mStackId)) {
        if (!r.task.mResizeable && isStackDockedInEffect(targetStack.mStackId)) {