Merge "Prevent leak of AppWindowTokens." into oc-dev

This commit is contained in:
TreeHugger Robot
2017-04-24 20:24:16 +00:00
committed by Android (Google) Code Review

View File

@@ -178,6 +178,8 @@ class AppWindowToken extends WindowToken implements WindowManagerService.AppFree
private boolean mDisbalePreviewScreenshots;
Task mLastParent;
AppWindowToken(WindowManagerService service, IApplicationToken token, boolean voiceInteraction,
DisplayContent dc, long inputDispatchingTimeoutNanos, boolean fullscreen,
boolean showForAllUsers, int targetSdk, int orientation, int rotationAnimationHint,
@@ -743,19 +745,21 @@ class AppWindowToken extends WindowToken implements WindowManagerService.AppFree
void onParentSet() {
super.onParentSet();
final Task task = getTask();
// When the associated task is {@code null}, the {@link AppWindowToken} can no longer
// access visual elements like the {@link DisplayContent}. We must remove any associations
// such as animations.
if (!mReparenting) {
final Task task = getTask();
if (task == null) {
// It is possible we have been marked as a closing app earlier. We must remove ourselves
// from this list so we do not participate in any future animations.
mService.mClosingApps.remove(this);
} else if (task.mStack != null) {
} else if (mLastParent != null && mLastParent.mStack != null) {
task.mStack.mExitingAppTokens.remove(this);
}
}
mLastParent = task;
}
void postWindowRemoveStartingWindowCleanup(WindowState win) {