diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/events/SystemEventChipAnimationController.kt b/packages/SystemUI/src/com/android/systemui/statusbar/events/SystemEventChipAnimationController.kt index 56390002490c9..6e8b8bdebbe37 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/events/SystemEventChipAnimationController.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/events/SystemEventChipAnimationController.kt @@ -265,6 +265,11 @@ class SystemEventChipAnimationController @Inject constructor( // not animating then [prepareChipAnimation] will take care of it for us currentAnimatedView?.let { updateChipBounds(it, newContentArea) + // Since updateCurrentAnimatedView can only be called during an animation, we + // have to create a dummy animator here to apply the new chip bounds + val animator = ValueAnimator.ofInt(0, 1).setDuration(0) + animator.addUpdateListener { updateCurrentAnimatedView() } + animator.start() } } }) diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/events/SystemEventChipAnimationControllerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/events/SystemEventChipAnimationControllerTest.kt index 55b6be9679f24..0b2da8bfa6492 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/events/SystemEventChipAnimationControllerTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/events/SystemEventChipAnimationControllerTest.kt @@ -18,6 +18,8 @@ package com.android.systemui.statusbar.events import android.content.Context import android.graphics.Rect +import android.testing.AndroidTestingRunner +import android.testing.TestableLooper import android.util.Pair import android.view.Gravity import android.view.View @@ -37,11 +39,14 @@ import org.junit.Assert.assertFalse import org.junit.Assert.assertTrue import org.junit.Before import org.junit.Test +import org.junit.runner.RunWith import org.mockito.Mock import org.mockito.Mockito.verify import org.mockito.MockitoAnnotations @SmallTest +@RunWith(AndroidTestingRunner::class) +@TestableLooper.RunWithLooper class SystemEventChipAnimationControllerTest : SysuiTestCase() { private lateinit var controller: SystemEventChipAnimationController @@ -159,7 +164,7 @@ class SystemEventChipAnimationControllerTest : SysuiTestCase() { assertThat(chipRect).isEqualTo(Rect(890, 25, 990, 75)) } - class TestView(context: Context) : View(context), BackgroundAnimatableView { + private class TestView(context: Context) : View(context), BackgroundAnimatableView { override val view: View get() = this