Merge "Run end actions immediately if there are no children to animate." into qt-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
113f85298b
@@ -202,13 +202,21 @@ public class PhysicsAnimationLayout extends FrameLayout {
|
||||
// add a multiple property end listener to the layout that will call the end action
|
||||
// provided to startAll() once all animations on the animated properties complete.
|
||||
return (endActions) -> {
|
||||
final Runnable runAllEndActions = () -> {
|
||||
for (Runnable action : endActions) {
|
||||
action.run();
|
||||
}
|
||||
};
|
||||
|
||||
// If there aren't any children to animate, just run the end actions.
|
||||
if (mLayout.getChildCount() == 0) {
|
||||
runAllEndActions.run();
|
||||
return;
|
||||
}
|
||||
|
||||
if (endActions != null) {
|
||||
mLayout.setEndActionForMultipleProperties(
|
||||
() -> {
|
||||
for (Runnable action : endActions) {
|
||||
action.run();
|
||||
}
|
||||
},
|
||||
runAllEndActions,
|
||||
allAnimatedProperties.toArray(
|
||||
new DynamicAnimation.ViewProperty[0]));
|
||||
}
|
||||
|
||||
@@ -25,6 +25,7 @@ import static org.mockito.ArgumentMatchers.eq;
|
||||
import static org.mockito.Mockito.inOrder;
|
||||
import static org.mockito.Mockito.never;
|
||||
import static org.mockito.Mockito.times;
|
||||
import static org.mockito.Mockito.verify;
|
||||
|
||||
import android.os.SystemClock;
|
||||
import android.testing.AndroidTestingRunner;
|
||||
@@ -449,6 +450,18 @@ public class PhysicsAnimationLayoutTest extends PhysicsAnimationLayoutTestCase {
|
||||
Mockito.verify(allEnd, times(1)).run();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAnimationsForChildrenFromIndex_noChildren() {
|
||||
mLayout.setController(mTestableController);
|
||||
|
||||
final Runnable after = Mockito.mock(Runnable.class);
|
||||
mTestableController
|
||||
.animationsForChildrenFromIndex(0, (index, animation) -> { })
|
||||
.startAll(after);
|
||||
|
||||
verify(after, Mockito.times(1)).run();
|
||||
}
|
||||
|
||||
/**
|
||||
* Animation controller with configuration methods whose return values can be set by individual
|
||||
* tests.
|
||||
|
||||
Reference in New Issue
Block a user