OSDN Git Service

Clean up closing apps list when clearing anAppWindowToken's task.
authorBryce Lee <brycelee@google.com>
Tue, 28 Feb 2017 23:30:17 +0000 (15:30 -0800)
committerBryce Lee <brycelee@google.com>
Thu, 2 Mar 2017 00:16:34 +0000 (16:16 -0800)
commit6d41026f1b3dc910c9d34ab89993a280dc9679cf
tree571511a4a3301920cc3cfc81322e97edd7d84ac5
parent5a7c7b8e532e1a67596e74d0dead6baa63964bdb
Clean up closing apps list when clearing anAppWindowToken's task.

Previously it was possible for an AppWindowToken to be removed while
on the closing apps list, used in transition animations. During these
transitions, the visibility of the token is modified. Since
visibility relies on the WindowContainer parent, a
NullPointerException would occur.

This changelist addresses the issue by making sure to remove any
AppWindowToken from this list when its task is set to null.

Change-Id: Id9234822b228f4658f04d42ac0fe7b49ded6f5a1
Fixes: 35352214
Test: manual (primarily code inspection)
15 files changed:
services/core/java/com/android/server/wm/AppWindowContainerController.java
services/core/java/com/android/server/wm/AppWindowToken.java
services/core/java/com/android/server/wm/DockedStackDividerController.java
services/core/java/com/android/server/wm/Task.java
services/core/java/com/android/server/wm/TaskSnapshotCache.java
services/core/java/com/android/server/wm/TaskSnapshotController.java
services/core/java/com/android/server/wm/TaskSnapshotSurface.java
services/core/java/com/android/server/wm/TaskStack.java
services/core/java/com/android/server/wm/WindowManagerService.java
services/core/java/com/android/server/wm/WindowState.java
services/core/java/com/android/server/wm/WindowSurfacePlacer.java
services/tests/servicestests/src/com/android/server/wm/AppWindowContainerControllerTests.java
services/tests/servicestests/src/com/android/server/wm/DisplayContentTests.java
services/tests/servicestests/src/com/android/server/wm/TaskSnapshotControllerTest.java
services/tests/servicestests/src/com/android/server/wm/WindowTestsBase.java