From bace2241eb7c2141be0cb57fd27b0c9acbaea5c4 Mon Sep 17 00:00:00 2001 From: Joshua Tsuji Date: Tue, 14 Jan 2020 15:51:48 -0500 Subject: [PATCH] Filter end actions for null, and allow Runnables from Java Test: atest SystemUITests Change-Id: I7521937000b624621275670472a49cccdab29d78 --- .../systemui/util/animation/PhysicsAnimator.kt | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/util/animation/PhysicsAnimator.kt b/packages/SystemUI/src/com/android/systemui/util/animation/PhysicsAnimator.kt index 0999c0ba02044..d5a296f82969d 100644 --- a/packages/SystemUI/src/com/android/systemui/util/animation/PhysicsAnimator.kt +++ b/packages/SystemUI/src/com/android/systemui/util/animation/PhysicsAnimator.kt @@ -367,8 +367,17 @@ class PhysicsAnimator private constructor (val target: T) { * animation is explicitly canceled, use [addEndListener]. End listeners have an allEnded param, * which indicates that all relevant animations have ended. */ - fun withEndActions(vararg endActions: EndAction): PhysicsAnimator { - this.endActions.addAll(endActions) + fun withEndActions(vararg endActions: EndAction?): PhysicsAnimator { + this.endActions.addAll(endActions.filterNotNull()) + return this + } + + /** + * Helper overload so that callers from Java can use Runnables or method references as end + * actions without having to explicitly return Unit. + */ + fun withEndActions(vararg endActions: Runnable?): PhysicsAnimator { + this.endActions.addAll(endActions.filterNotNull().map { it::run }) return this }