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

Commit 62a32ee1 authored by Craig Mautner's avatar Craig Mautner Committed by Android (Google) Code Review
Browse files

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

parents d3b69567 3d7ca31c
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -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) {
+1 −1
Original line number Diff line number Diff line
@@ -68,6 +68,6 @@ class Task {

    @Override
    public String toString() {
        return "{taskId=" + taskId + " appTokens=" + mAppTokens + "}";
        return "{taskId=" + taskId + " appTokens=" + mAppTokens + " mdr=" + mDeferRemoval + "}";
    }
}
+10 −1
Original line number Diff line number Diff line
@@ -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) {