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

automerge: 62a32ee

* commit '62a32ee1dfff6921fd95c92068500af6b8b3f47e':
  Remove AppWindowTokens from exiting apps with task
This commit is contained in:
Craig Mautner
2015-01-08 19:13:38 +00:00
committed by android-build-merger
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.print(prefix); pw.print("inPendingTransaction=");
pw.println(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(prefix); pw.print("startingData="); pw.print(startingData);
pw.print(" removed="); pw.print(removed); 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 if (startingWindow != null || startingView != null
|| startingDisplayed || startingMoved) { || startingDisplayed || startingMoved) {

View File

@@ -68,6 +68,6 @@ class Task {
@Override @Override
public String toString() { 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); if (DEBUG_STACK) Slog.i(TAG, "removeTask: removing taskId=" + taskId);
EventLog.writeEvent(EventLogTags.WM_TASK_REMOVED, taskId, "removeTask"); EventLog.writeEvent(EventLogTags.WM_TASK_REMOVED, taskId, "removeTask");
task.mDeferRemoval = false; task.mDeferRemoval = false;
task.mStack.removeTask(task); stack.removeTask(task);
mTaskIdToTask.delete(task.taskId); 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) { public void removeTask(int taskId) {