Merge "Remove AppWindowTokens from exiting apps with task" into lmp-mr1-dev

This commit is contained in:
Craig Mautner
2015-01-08 19:09:40 +00:00
committed by Android (Google) Code Review
3 changed files with 14 additions and 4 deletions

View File

@@ -304,10 +304,11 @@ class AppWindowToken extends WindowToken {
pw.print(prefix); pw.print("inPendingTransaction=");
pw.println(inPendingTransaction);
}
if (startingData != null || removed || firstWindowDrawn) {
if (startingData != null || removed || firstWindowDrawn || mDeferRemoval) {
pw.print(prefix); pw.print("startingData="); pw.print(startingData);
pw.print(" removed="); pw.print(removed);
pw.print(" firstWindowDrawn="); pw.println(firstWindowDrawn);
pw.print(" firstWindowDrawn="); pw.print(firstWindowDrawn);
pw.print(" mDeferRemoval="); pw.println(mDeferRemoval);
}
if (startingWindow != null || startingView != null
|| startingDisplayed || startingMoved) {

View File

@@ -68,6 +68,6 @@ class Task {
@Override
public String toString() {
return "{taskId=" + taskId + " appTokens=" + mAppTokens + "}";
return "{taskId=" + taskId + " appTokens=" + mAppTokens + " mdr=" + mDeferRemoval + "}";
}
}

View File

@@ -5200,8 +5200,17 @@ public class WindowManagerService extends IWindowManager.Stub
if (DEBUG_STACK) Slog.i(TAG, "removeTask: removing taskId=" + taskId);
EventLog.writeEvent(EventLogTags.WM_TASK_REMOVED, taskId, "removeTask");
task.mDeferRemoval = false;
task.mStack.removeTask(task);
stack.removeTask(task);
mTaskIdToTask.delete(task.taskId);
final ArrayList<AppWindowToken> exitingApps = stack.mExitingAppTokens;
for (int appNdx = exitingApps.size() - 1; appNdx >= 0; --appNdx) {
final AppWindowToken wtoken = exitingApps.get(appNdx);
if (wtoken.groupId == taskId) {
wtoken.mDeferRemoval = false;
exitingApps.remove(appNdx);
}
}
}
public void removeTask(int taskId) {