From b41f317dd99753b9609ee6f0bc5d8ebbf7ab163f Mon Sep 17 00:00:00 2001 From: Winson Chung Date: Mon, 11 Jul 2022 05:29:05 +0000 Subject: Skip cancel of physics animators if not needed - For some reason calling cancelAction() with no animations still takes ~2s while testing, which causes tests to take multiple seconds to tear down Without change: [76/665] com.android.wm.shell.animation.PhysicsAnimatorTest#testAnimationsUpdatedWhileInMotion: PASSED (4.743s) [77/665] com.android.wm.shell.animation.PhysicsAnimatorTest#testFling: PASSED (4.441s) [78/665] com.android.wm.shell.animation.PhysicsAnimatorTest#testFlingRespectsMinMax: PASSED (4.090s) [79/665] com.android.wm.shell.animation.PhysicsAnimatorTest#testFlingThenSpring: IGNORED (0ms) [80/665] com.android.wm.shell.animation.PhysicsAnimatorTest#testSpringOneProperty: PASSED (4.517s) [81/665] com.android.wm.shell.animation.PhysicsAnimatorTest#testIsPropertyAnimating: PASSED (4.768s) [82/665] com.android.wm.shell.animation.PhysicsAnimatorTest#testUpdateListeners: PASSED (4.795s) [83/665] com.android.wm.shell.animation.PhysicsAnimatorTest#testFlingThenSpring_objectOutsideFlingBounds: PASSED (4.741s) [84/665] com.android.wm.shell.animation.PhysicsAnimatorTest#testListenersNotCalledOnSubsequentAnimations: PASSED (4.818s) [85/665] com.android.wm.shell.animation.PhysicsAnimatorTest#testAnimationsUpdatedWhileInMotion_originalListenersStillCalled: IGNORED (0ms) [86/665] com.android.wm.shell.animation.PhysicsAnimatorTest#testSpringMultipleProperties: PASSED (4.491s) [87/665] com.android.wm.shell.animation.PhysicsAnimatorTest#testFlingToMinMaxThenSpring: PASSED (4.743s) [88/665] com.android.wm.shell.animation.PhysicsAnimatorTest#testExtensionProperty: PASSED (4.365s) [89/665] com.android.wm.shell.animation.PhysicsAnimatorTest#testOneAnimatorPerView: PASSED (8.053s) [90/665] com.android.wm.shell.animation.PhysicsAnimatorTest#testEndListenersAndActions: IGNORED (0ms) With change: [76/665] com.android.wm.shell.animation.PhysicsAnimatorTest#testAnimationsUpdatedWhileInMotion: PASSED (755ms) [77/665] com.android.wm.shell.animation.PhysicsAnimatorTest#testFling: PASSED (427ms) [78/665] com.android.wm.shell.animation.PhysicsAnimatorTest#testFlingRespectsMinMax: PASSED (126ms) [79/665] com.android.wm.shell.animation.PhysicsAnimatorTest#testFlingThenSpring: IGNORED (0ms) [80/665] com.android.wm.shell.animation.PhysicsAnimatorTest#testSpringOneProperty: PASSED (503ms) [81/665] com.android.wm.shell.animation.PhysicsAnimatorTest#testIsPropertyAnimating: PASSED (756ms) [82/665] com.android.wm.shell.animation.PhysicsAnimatorTest#testUpdateListeners: PASSED (804ms) [83/665] com.android.wm.shell.animation.PhysicsAnimatorTest#testFlingThenSpring_objectOutsideFlingBounds: PASSED (779ms) [84/665] com.android.wm.shell.animation.PhysicsAnimatorTest#testListenersNotCalledOnSubsequentAnimations: PASSED (804ms) [85/665] com.android.wm.shell.animation.PhysicsAnimatorTest#testAnimationsUpdatedWhileInMotion_originalListenersStillCalled: IGNORED (1ms) [86/665] com.android.wm.shell.animation.PhysicsAnimatorTest#testSpringMultipleProperties: PASSED (502ms) [87/665] com.android.wm.shell.animation.PhysicsAnimatorTest#testFlingToMinMaxThenSpring: PASSED (728ms) [88/665] com.android.wm.shell.animation.PhysicsAnimatorTest#testExtensionProperty: PASSED (326ms) [89/665] com.android.wm.shell.animation.PhysicsAnimatorTest#testOneAnimatorPerView: PASSED (50ms) [90/665] com.android.wm.shell.animation.PhysicsAnimatorTest#testEndListenersAndActions: IGNORED (0ms) Bug: 238577469 Test: atest WMShellUnitTests Change-Id: Id378ababb9b0542bbc5a17caebaa42f2f9fb4f33 --- .../Shell/src/com/android/wm/shell/animation/PhysicsAnimator.kt | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/animation/PhysicsAnimator.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/animation/PhysicsAnimator.kt index b483fe03e80f..312af4ff7bc2 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/animation/PhysicsAnimator.kt +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/animation/PhysicsAnimator.kt @@ -829,8 +829,12 @@ class PhysicsAnimator private constructor (target: T) { /** Cancels all in progress animations on all properties. */ fun cancel() { - cancelAction(flingAnimations.keys) - cancelAction(springAnimations.keys) + if (flingAnimations.size > 0) { + cancelAction(flingAnimations.keys) + } + if (springAnimations.size > 0) { + cancelAction(springAnimations.keys) + } } /** Cancels in progress animations on the provided properties only. */ -- cgit v1.2.3-59-g8ed1b