diff options
-rw-r--r-- | services/tests/wmtests/src/com/android/server/wm/WindowManagerServiceRule.java | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/services/tests/wmtests/src/com/android/server/wm/WindowManagerServiceRule.java b/services/tests/wmtests/src/com/android/server/wm/WindowManagerServiceRule.java index 522ab9ffb291..04e433e98678 100644 --- a/services/tests/wmtests/src/com/android/server/wm/WindowManagerServiceRule.java +++ b/services/tests/wmtests/src/com/android/server/wm/WindowManagerServiceRule.java @@ -164,6 +164,7 @@ public class WindowManagerServiceRule implements TestRule { } private void tearDown() { + cancelAllPendingAnimations(); waitUntilWindowManagerHandlersIdle(); destroyAllSurfaceTransactions(); destroyAllSurfaceControls(); @@ -178,6 +179,15 @@ public class WindowManagerServiceRule implements TestRule { return mService; } + private void cancelAllPendingAnimations() { + for (final WeakReference<SurfaceControl> reference : mSurfaceControls) { + final SurfaceControl sc = reference.get(); + if (sc != null) { + mService.mSurfaceAnimationRunner.onAnimationCancelled(sc); + } + } + } + void waitUntilWindowManagerHandlersIdle() { final WindowManagerService wm = getWindowManagerService(); if (wm == null) { |