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

Commit adc5c93c authored by Vishnu Nair's avatar Vishnu Nair Committed by android-build-merger
Browse files

Merge "Reset launch start times when removing a process"

am: 397fdf0f

Change-Id: I5b5451be77f6e066f57454a10bc205b75f23daf4
parents 5c6894a8 397fdf0f
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -5889,6 +5889,7 @@ public class ActivityManagerService extends IActivityManager.Stub
    private final void handleAppDiedLocked(ProcessRecord app,
            boolean restarting, boolean allowRestart) {
        int pid = app.pid;
        final boolean clearLaunchStartTime = !restarting && app.removed && app.foregroundActivities;
        boolean kept = cleanUpApplicationRecordLocked(app, restarting, allowRestart, -1,
                false /*replacingPid*/);
        if (!kept && !restarting) {
@@ -5929,6 +5930,19 @@ public class ActivityManagerService extends IActivityManager.Stub
        } finally {
            mWindowManager.continueSurfaceLayout();
        }
        // TODO (b/67683350)
        // When an app process is removed, activities from the process may be relaunched. In the
        // case of forceStopPackageLocked the activities are finished before any window is drawn,
        // and the launch time is not cleared. This will be incorrectly used to calculate launch
        // time for the next launched activity launched in the same windowing mode.
        if (clearLaunchStartTime) {
            final LaunchTimeTracker.Entry entry = mStackSupervisor
                    .getLaunchTimeTracker().getEntry(mStackSupervisor.getWindowingMode());
            if (entry != null) {
                entry.mLaunchStartTime = 0;
            }
        }
    }
    private final int getLRURecordIndexForAppLocked(IApplicationThread thread) {