Merge "Rename ViewBoundAnimator -> ViewHierarchyAnimator." into tm-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
be8f4d0cd0
@@ -29,7 +29,7 @@ import android.view.animation.Interpolator
|
|||||||
* A class that allows changes in bounds within a view hierarchy to animate seamlessly between the
|
* A class that allows changes in bounds within a view hierarchy to animate seamlessly between the
|
||||||
* start and end state.
|
* start and end state.
|
||||||
*/
|
*/
|
||||||
class ViewBoundAnimator {
|
class ViewHierarchyAnimator {
|
||||||
// TODO(b/221418522): make this private once it can't be passed as an arg anymore.
|
// TODO(b/221418522): make this private once it can't be passed as an arg anymore.
|
||||||
enum class Bound(val label: String, val overrideTag: Int) {
|
enum class Bound(val label: String, val overrideTag: Int) {
|
||||||
LEFT("left", R.id.tag_override_left) {
|
LEFT("left", R.id.tag_override_left) {
|
||||||
@@ -19,7 +19,7 @@ import org.junit.runner.RunWith
|
|||||||
@SmallTest
|
@SmallTest
|
||||||
@RunWith(AndroidTestingRunner::class)
|
@RunWith(AndroidTestingRunner::class)
|
||||||
@TestableLooper.RunWithLooper
|
@TestableLooper.RunWithLooper
|
||||||
class ViewBoundAnimatorTest : SysuiTestCase() {
|
class ViewHierarchyAnimatorTest : SysuiTestCase() {
|
||||||
companion object {
|
companion object {
|
||||||
private const val TEST_DURATION = 1000L
|
private const val TEST_DURATION = 1000L
|
||||||
private val TEST_INTERPOLATOR = Interpolators.LINEAR
|
private val TEST_INTERPOLATOR = Interpolators.LINEAR
|
||||||
@@ -34,14 +34,14 @@ class ViewBoundAnimatorTest : SysuiTestCase() {
|
|||||||
|
|
||||||
@After
|
@After
|
||||||
fun tearDown() {
|
fun tearDown() {
|
||||||
ViewBoundAnimator.stopAnimating(rootView)
|
ViewHierarchyAnimator.stopAnimating(rootView)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun respectsAnimationParameters() {
|
fun respectsAnimationParameters() {
|
||||||
rootView.layout(10 /* l */, 10 /* t */, 50 /* r */, 50 /* b */)
|
rootView.layout(10 /* l */, 10 /* t */, 50 /* r */, 50 /* b */)
|
||||||
|
|
||||||
ViewBoundAnimator.animate(
|
ViewHierarchyAnimator.animate(
|
||||||
rootView, interpolator = TEST_INTERPOLATOR, duration = TEST_DURATION
|
rootView, interpolator = TEST_INTERPOLATOR, duration = TEST_DURATION
|
||||||
)
|
)
|
||||||
rootView.layout(0 /* l */, 0 /* t */, 100 /* r */, 100 /* b */)
|
rootView.layout(0 /* l */, 0 /* t */, 100 /* r */, 100 /* b */)
|
||||||
@@ -56,7 +56,7 @@ class ViewBoundAnimatorTest : SysuiTestCase() {
|
|||||||
fun animatesFromStartToEnd() {
|
fun animatesFromStartToEnd() {
|
||||||
rootView.layout(10 /* l */, 10 /* t */, 50 /* r */, 50 /* b */)
|
rootView.layout(10 /* l */, 10 /* t */, 50 /* r */, 50 /* b */)
|
||||||
|
|
||||||
ViewBoundAnimator.animate(rootView)
|
ViewHierarchyAnimator.animate(rootView)
|
||||||
// Change all bounds.
|
// Change all bounds.
|
||||||
rootView.layout(0 /* l */, 15 /* t */, 70 /* r */, 80 /* b */)
|
rootView.layout(0 /* l */, 15 /* t */, 70 /* r */, 80 /* b */)
|
||||||
|
|
||||||
@@ -73,7 +73,7 @@ class ViewBoundAnimatorTest : SysuiTestCase() {
|
|||||||
fun animatesSuccessiveLayoutChanges() {
|
fun animatesSuccessiveLayoutChanges() {
|
||||||
rootView.layout(10 /* l */, 10 /* t */, 50 /* r */, 50 /* b */)
|
rootView.layout(10 /* l */, 10 /* t */, 50 /* r */, 50 /* b */)
|
||||||
|
|
||||||
ViewBoundAnimator.animate(rootView)
|
ViewHierarchyAnimator.animate(rootView)
|
||||||
// Change all bounds.
|
// Change all bounds.
|
||||||
rootView.layout(0 /* l */, 15 /* t */, 70 /* r */, 80 /* b */)
|
rootView.layout(0 /* l */, 15 /* t */, 70 /* r */, 80 /* b */)
|
||||||
|
|
||||||
@@ -103,7 +103,7 @@ class ViewBoundAnimatorTest : SysuiTestCase() {
|
|||||||
fun animatesFromPreviousAnimationProgress() {
|
fun animatesFromPreviousAnimationProgress() {
|
||||||
rootView.layout(10 /* l */, 10 /* t */, 50 /* r */, 50 /* b */)
|
rootView.layout(10 /* l */, 10 /* t */, 50 /* r */, 50 /* b */)
|
||||||
|
|
||||||
ViewBoundAnimator.animateNextUpdate(rootView, interpolator = TEST_INTERPOLATOR)
|
ViewHierarchyAnimator.animateNextUpdate(rootView, interpolator = TEST_INTERPOLATOR)
|
||||||
// Change all bounds.
|
// Change all bounds.
|
||||||
rootView.layout(0 /* l */, 20 /* t */, 70 /* r */, 80 /* b */)
|
rootView.layout(0 /* l */, 20 /* t */, 70 /* r */, 80 /* b */)
|
||||||
|
|
||||||
@@ -131,7 +131,7 @@ class ViewBoundAnimatorTest : SysuiTestCase() {
|
|||||||
firstChild.layout(0 /* l */, 0 /* t */, 100 /* r */, 100 /* b */)
|
firstChild.layout(0 /* l */, 0 /* t */, 100 /* r */, 100 /* b */)
|
||||||
secondChild.layout(100 /* l */, 0 /* t */, 150 /* r */, 100 /* b */)
|
secondChild.layout(100 /* l */, 0 /* t */, 150 /* r */, 100 /* b */)
|
||||||
|
|
||||||
ViewBoundAnimator.animate(rootView)
|
ViewHierarchyAnimator.animate(rootView)
|
||||||
// Change all bounds.
|
// Change all bounds.
|
||||||
rootView.layout(10 /* l */, 20 /* t */, 200 /* r */, 120 /* b */)
|
rootView.layout(10 /* l */, 20 /* t */, 200 /* r */, 120 /* b */)
|
||||||
firstChild.layout(10 /* l */, 20 /* t */, 150 /* r */, 120 /* b */)
|
firstChild.layout(10 /* l */, 20 /* t */, 150 /* r */, 120 /* b */)
|
||||||
@@ -154,7 +154,7 @@ class ViewBoundAnimatorTest : SysuiTestCase() {
|
|||||||
fun doesNotAnimateInvisibleViews() {
|
fun doesNotAnimateInvisibleViews() {
|
||||||
rootView.layout(10 /* l */, 10 /* t */, 50 /* r */, 50 /* b */)
|
rootView.layout(10 /* l */, 10 /* t */, 50 /* r */, 50 /* b */)
|
||||||
|
|
||||||
ViewBoundAnimator.animate(rootView)
|
ViewHierarchyAnimator.animate(rootView)
|
||||||
// GONE.
|
// GONE.
|
||||||
rootView.visibility = View.GONE
|
rootView.visibility = View.GONE
|
||||||
rootView.layout(0 /* l */, 15 /* t */, 55 /* r */, 80 /* b */)
|
rootView.layout(0 /* l */, 15 /* t */, 55 /* r */, 80 /* b */)
|
||||||
@@ -171,7 +171,7 @@ class ViewBoundAnimatorTest : SysuiTestCase() {
|
|||||||
fun doesNotAnimateUnchangingBounds() {
|
fun doesNotAnimateUnchangingBounds() {
|
||||||
rootView.layout(10 /* l */, 10 /* t */, 50 /* r */, 50 /* b */)
|
rootView.layout(10 /* l */, 10 /* t */, 50 /* r */, 50 /* b */)
|
||||||
|
|
||||||
ViewBoundAnimator.animate(rootView)
|
ViewHierarchyAnimator.animate(rootView)
|
||||||
// No bounds are changed.
|
// No bounds are changed.
|
||||||
rootView.layout(10 /* l */, 10 /* t */, 50 /* r */, 50 /* b */)
|
rootView.layout(10 /* l */, 10 /* t */, 50 /* r */, 50 /* b */)
|
||||||
|
|
||||||
@@ -191,9 +191,9 @@ class ViewBoundAnimatorTest : SysuiTestCase() {
|
|||||||
fun doesNotAnimateExcludedBounds() {
|
fun doesNotAnimateExcludedBounds() {
|
||||||
rootView.layout(10 /* l */, 10 /* t */, 50 /* r */, 50 /* b */)
|
rootView.layout(10 /* l */, 10 /* t */, 50 /* r */, 50 /* b */)
|
||||||
|
|
||||||
ViewBoundAnimator.animate(
|
ViewHierarchyAnimator.animate(
|
||||||
rootView,
|
rootView,
|
||||||
bounds = setOf(ViewBoundAnimator.Bound.LEFT, ViewBoundAnimator.Bound.TOP),
|
bounds = setOf(ViewHierarchyAnimator.Bound.LEFT, ViewHierarchyAnimator.Bound.TOP),
|
||||||
interpolator = TEST_INTERPOLATOR
|
interpolator = TEST_INTERPOLATOR
|
||||||
)
|
)
|
||||||
// Change all bounds.
|
// Change all bounds.
|
||||||
@@ -211,7 +211,7 @@ class ViewBoundAnimatorTest : SysuiTestCase() {
|
|||||||
fun stopsAnimatingAfterSingleLayout() {
|
fun stopsAnimatingAfterSingleLayout() {
|
||||||
rootView.layout(10 /* l */, 10 /* t */, 50 /* r */, 50 /* b */)
|
rootView.layout(10 /* l */, 10 /* t */, 50 /* r */, 50 /* b */)
|
||||||
|
|
||||||
ViewBoundAnimator.animateNextUpdate(rootView)
|
ViewHierarchyAnimator.animateNextUpdate(rootView)
|
||||||
// Change all bounds.
|
// Change all bounds.
|
||||||
rootView.layout(0 /* l */, 15 /* t */, 70 /* r */, 80 /* b */)
|
rootView.layout(0 /* l */, 15 /* t */, 70 /* r */, 80 /* b */)
|
||||||
|
|
||||||
@@ -231,7 +231,7 @@ class ViewBoundAnimatorTest : SysuiTestCase() {
|
|||||||
fun stopsAnimatingWhenInstructed() {
|
fun stopsAnimatingWhenInstructed() {
|
||||||
rootView.layout(10 /* l */, 10 /* t */, 50 /* r */, 50 /* b */)
|
rootView.layout(10 /* l */, 10 /* t */, 50 /* r */, 50 /* b */)
|
||||||
|
|
||||||
ViewBoundAnimator.animate(rootView)
|
ViewHierarchyAnimator.animate(rootView)
|
||||||
// Change all bounds.
|
// Change all bounds.
|
||||||
rootView.layout(0 /* l */, 15 /* t */, 70 /* r */, 80 /* b */)
|
rootView.layout(0 /* l */, 15 /* t */, 70 /* r */, 80 /* b */)
|
||||||
|
|
||||||
@@ -240,7 +240,7 @@ class ViewBoundAnimatorTest : SysuiTestCase() {
|
|||||||
assertNull(rootView.getTag(R.id.tag_animator))
|
assertNull(rootView.getTag(R.id.tag_animator))
|
||||||
checkBounds(rootView, l = 0, t = 15, r = 70, b = 80)
|
checkBounds(rootView, l = 0, t = 15, r = 70, b = 80)
|
||||||
|
|
||||||
ViewBoundAnimator.stopAnimating(rootView)
|
ViewHierarchyAnimator.stopAnimating(rootView)
|
||||||
// Change all bounds again.
|
// Change all bounds again.
|
||||||
rootView.layout(10 /* l */, 10 /* t */, 50/* r */, 50 /* b */)
|
rootView.layout(10 /* l */, 10 /* t */, 50/* r */, 50 /* b */)
|
||||||
|
|
||||||
Reference in New Issue
Block a user