Merge "Complete booting when frontmost activity is idle" into lmp-mr1-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
ef04ae79af
@@ -414,6 +414,12 @@ public final class ActivityStackSupervisor implements DisplayListener {
|
|||||||
if (DEBUG_STACK) Slog.d(TAG, "moveHomeTask: topStack old=" + topStack + " new="
|
if (DEBUG_STACK) Slog.d(TAG, "moveHomeTask: topStack old=" + topStack + " new="
|
||||||
+ mFocusedStack);
|
+ mFocusedStack);
|
||||||
}
|
}
|
||||||
|
if (mService.mBooting || !mService.mBooted) {
|
||||||
|
final ActivityRecord r = topRunningActivityLocked();
|
||||||
|
if (r != null && r.idle) {
|
||||||
|
checkFinishBootingLocked();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void moveHomeStackTaskToTop(int homeStackTaskType) {
|
void moveHomeStackTaskToTop(int homeStackTaskType) {
|
||||||
@@ -2235,6 +2241,24 @@ public final class ActivityStackSupervisor implements DisplayListener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called when the frontmost task is idle.
|
||||||
|
* @return the state of mService.mBooting before this was called.
|
||||||
|
*/
|
||||||
|
private boolean checkFinishBootingLocked() {
|
||||||
|
final boolean booting = mService.mBooting;
|
||||||
|
boolean enableScreen = false;
|
||||||
|
mService.mBooting = false;
|
||||||
|
if (!mService.mBooted) {
|
||||||
|
mService.mBooted = true;
|
||||||
|
enableScreen = true;
|
||||||
|
}
|
||||||
|
if (booting || enableScreen) {
|
||||||
|
mService.postFinishBooting(booting, enableScreen);
|
||||||
|
}
|
||||||
|
return booting;
|
||||||
|
}
|
||||||
|
|
||||||
// Checked.
|
// Checked.
|
||||||
final ActivityRecord activityIdleInternalLocked(final IBinder token, boolean fromTimeout,
|
final ActivityRecord activityIdleInternalLocked(final IBinder token, boolean fromTimeout,
|
||||||
Configuration config) {
|
Configuration config) {
|
||||||
@@ -2246,7 +2270,6 @@ public final class ActivityStackSupervisor implements DisplayListener {
|
|||||||
int NS = 0;
|
int NS = 0;
|
||||||
int NF = 0;
|
int NF = 0;
|
||||||
boolean booting = false;
|
boolean booting = false;
|
||||||
boolean enableScreen = false;
|
|
||||||
boolean activityRemoved = false;
|
boolean activityRemoved = false;
|
||||||
|
|
||||||
ActivityRecord r = ActivityRecord.forToken(token);
|
ActivityRecord r = ActivityRecord.forToken(token);
|
||||||
@@ -2274,12 +2297,7 @@ public final class ActivityStackSupervisor implements DisplayListener {
|
|||||||
|
|
||||||
//Slog.i(TAG, "IDLE: mBooted=" + mBooted + ", fromTimeout=" + fromTimeout);
|
//Slog.i(TAG, "IDLE: mBooted=" + mBooted + ", fromTimeout=" + fromTimeout);
|
||||||
if (isFrontStack(r.task.stack) || fromTimeout) {
|
if (isFrontStack(r.task.stack) || fromTimeout) {
|
||||||
booting = mService.mBooting;
|
booting = checkFinishBootingLocked();
|
||||||
mService.mBooting = false;
|
|
||||||
if (!mService.mBooted) {
|
|
||||||
mService.mBooted = true;
|
|
||||||
enableScreen = true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2352,10 +2370,6 @@ public final class ActivityStackSupervisor implements DisplayListener {
|
|||||||
//dump();
|
//dump();
|
||||||
//mWindowManager.dump();
|
//mWindowManager.dump();
|
||||||
|
|
||||||
if (booting || enableScreen) {
|
|
||||||
mService.postFinishBooting(booting, enableScreen);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (activityRemoved) {
|
if (activityRemoved) {
|
||||||
resumeTopActivitiesLocked();
|
resumeTopActivitiesLocked();
|
||||||
}
|
}
|
||||||
@@ -2624,6 +2638,8 @@ public final class ActivityStackSupervisor implements DisplayListener {
|
|||||||
// before an application stack is created...Go ahead and create one on the default
|
// before an application stack is created...Go ahead and create one on the default
|
||||||
// display.
|
// display.
|
||||||
stack = getStack(createStackOnDisplay(getNextStackId(), Display.DEFAULT_DISPLAY));
|
stack = getStack(createStackOnDisplay(getNextStackId(), Display.DEFAULT_DISPLAY));
|
||||||
|
// Restore home stack to top.
|
||||||
|
moveHomeStack(true);
|
||||||
if (DEBUG_RECENTS)
|
if (DEBUG_RECENTS)
|
||||||
Slog.v(TAG, "Created stack=" + stack + " for recents restoration.");
|
Slog.v(TAG, "Created stack=" + stack + " for recents restoration.");
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user