Loading services/core/java/com/android/server/am/ActivityRecord.java +17 −1 Original line number Diff line number Diff line Loading @@ -1123,6 +1123,13 @@ final class ActivityRecord { public void reportFullyDrawnLocked() { final long curTime = SystemClock.uptimeMillis(); // Normally launch time counts from the point when the activity is resumed, to when the // first window is drawn. However the activity could become visible before it is resumed, // due to some other activity in the same task being launched. In this case we still need // to report launch time to unblock ActivityStarter.startActivityMayWait(). if (displayStartTime == 0 && task != null && task.isLaunching) { displayStartTime = curTime; } if (displayStartTime != 0) { reportLaunchTimeLocked(curTime); } Loading Loading @@ -1188,13 +1195,22 @@ final class ActivityRecord { //service.mUsageStatsService.noteLaunchTime(realActivity, (int)totalTime); } displayStartTime = 0; task.isLaunching = false; stack.mLaunchStartTime = 0; } void windowsDrawnLocked() { mStackSupervisor.mActivityMetricsLogger.notifyWindowsDrawn(); final long curTime = SystemClock.uptimeMillis(); // Normally launch time counts from the point when the activity is resumed, to when the // first window is drawn. However the activity could become visible before it is resumed, // due to some other activity in the same task being launched. In this case we still need // to report launch time to unblock ActivityStarter.startActivityMayWait(). if (displayStartTime == 0 && task != null && task.isLaunching) { displayStartTime = curTime; } if (displayStartTime != 0) { reportLaunchTimeLocked(SystemClock.uptimeMillis()); reportLaunchTimeLocked(curTime); } mStackSupervisor.sendWaitingVisibleReportLocked(this); startTime = 0; Loading services/core/java/com/android/server/am/ActivityStack.java +6 −0 Original line number Diff line number Diff line Loading @@ -912,6 +912,9 @@ final class ActivityStack { void setLaunchTime(ActivityRecord r) { if (r.displayStartTime == 0) { r.fullyDrawnStartTime = r.displayStartTime = SystemClock.uptimeMillis(); if (r.task != null) { r.task.isLaunching = true; } if (mLaunchStartTime == 0) { startLaunchTraces(r.packageName); mLaunchStartTime = mFullyDrawnStartTime = r.displayStartTime; Loading @@ -926,6 +929,9 @@ final class ActivityStack { // Make sure that there is no activity waiting for this to launch. if (mStackSupervisor.mWaitingActivityLaunched.isEmpty()) { r.displayStartTime = r.fullyDrawnStartTime = 0; if (r.task != null) { r.task.isLaunching = false; } } else { mStackSupervisor.removeTimeoutsForActivityLocked(r); mStackSupervisor.scheduleIdleTimeoutLocked(r); Loading services/core/java/com/android/server/am/TaskRecord.java +1 −0 Original line number Diff line number Diff line Loading @@ -151,6 +151,7 @@ final class TaskRecord { long lastActiveTime; // Last time this task was active, including sleep. boolean inRecents; // Actually in the recents list? boolean isAvailable; // Is the activity available to be launched? boolean isLaunching; // Is an activity in this task launching? boolean rootWasReset; // True if the intent at the root of the task had // the FLAG_ACTIVITY_RESET_TASK_IF_NEEDED flag. boolean autoRemoveRecents; // If true, we should automatically remove the task from Loading Loading
services/core/java/com/android/server/am/ActivityRecord.java +17 −1 Original line number Diff line number Diff line Loading @@ -1123,6 +1123,13 @@ final class ActivityRecord { public void reportFullyDrawnLocked() { final long curTime = SystemClock.uptimeMillis(); // Normally launch time counts from the point when the activity is resumed, to when the // first window is drawn. However the activity could become visible before it is resumed, // due to some other activity in the same task being launched. In this case we still need // to report launch time to unblock ActivityStarter.startActivityMayWait(). if (displayStartTime == 0 && task != null && task.isLaunching) { displayStartTime = curTime; } if (displayStartTime != 0) { reportLaunchTimeLocked(curTime); } Loading Loading @@ -1188,13 +1195,22 @@ final class ActivityRecord { //service.mUsageStatsService.noteLaunchTime(realActivity, (int)totalTime); } displayStartTime = 0; task.isLaunching = false; stack.mLaunchStartTime = 0; } void windowsDrawnLocked() { mStackSupervisor.mActivityMetricsLogger.notifyWindowsDrawn(); final long curTime = SystemClock.uptimeMillis(); // Normally launch time counts from the point when the activity is resumed, to when the // first window is drawn. However the activity could become visible before it is resumed, // due to some other activity in the same task being launched. In this case we still need // to report launch time to unblock ActivityStarter.startActivityMayWait(). if (displayStartTime == 0 && task != null && task.isLaunching) { displayStartTime = curTime; } if (displayStartTime != 0) { reportLaunchTimeLocked(SystemClock.uptimeMillis()); reportLaunchTimeLocked(curTime); } mStackSupervisor.sendWaitingVisibleReportLocked(this); startTime = 0; Loading
services/core/java/com/android/server/am/ActivityStack.java +6 −0 Original line number Diff line number Diff line Loading @@ -912,6 +912,9 @@ final class ActivityStack { void setLaunchTime(ActivityRecord r) { if (r.displayStartTime == 0) { r.fullyDrawnStartTime = r.displayStartTime = SystemClock.uptimeMillis(); if (r.task != null) { r.task.isLaunching = true; } if (mLaunchStartTime == 0) { startLaunchTraces(r.packageName); mLaunchStartTime = mFullyDrawnStartTime = r.displayStartTime; Loading @@ -926,6 +929,9 @@ final class ActivityStack { // Make sure that there is no activity waiting for this to launch. if (mStackSupervisor.mWaitingActivityLaunched.isEmpty()) { r.displayStartTime = r.fullyDrawnStartTime = 0; if (r.task != null) { r.task.isLaunching = false; } } else { mStackSupervisor.removeTimeoutsForActivityLocked(r); mStackSupervisor.scheduleIdleTimeoutLocked(r); Loading
services/core/java/com/android/server/am/TaskRecord.java +1 −0 Original line number Diff line number Diff line Loading @@ -151,6 +151,7 @@ final class TaskRecord { long lastActiveTime; // Last time this task was active, including sleep. boolean inRecents; // Actually in the recents list? boolean isAvailable; // Is the activity available to be launched? boolean isLaunching; // Is an activity in this task launching? boolean rootWasReset; // True if the intent at the root of the task had // the FLAG_ACTIVITY_RESET_TASK_IF_NEEDED flag. boolean autoRemoveRecents; // If true, we should automatically remove the task from Loading