[DO NOT MERGE] Fixed NPE when trying to animate a window without display
In some cases it is possible for the AppToken.allAppWindows list to get out of sync with the list of windows known to WMS if the client doesn't call Session.remove(Window). This can lead to an NPE when the animation threads runs and the display for the window has been removed. Bug: 19972099 Change-Id: Ifdf9ff2364b96757bba0539394c4a682f64577c9
This commit is contained in:
@@ -824,12 +824,16 @@ public class WindowAnimator {
|
||||
if (displayId < 0) {
|
||||
return 0;
|
||||
}
|
||||
return mService.getDisplayContentLocked(displayId).pendingLayoutChanges;
|
||||
DisplayContent displayContent = mService.getDisplayContentLocked(displayId);
|
||||
return (displayContent != null) ? displayContent.pendingLayoutChanges : 0;
|
||||
}
|
||||
|
||||
void setPendingLayoutChanges(final int displayId, final int changes) {
|
||||
if (displayId >= 0) {
|
||||
mService.getDisplayContentLocked(displayId).pendingLayoutChanges |= changes;
|
||||
DisplayContent displayContent = mService.getDisplayContentLocked(displayId);
|
||||
if (displayContent != null) {
|
||||
displayContent.pendingLayoutChanges |= changes;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user