Merge "Fix privacy dot not removed issue" into udc-dev am: a82a21c017
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/23515739 Change-Id: I749ea9f0d5b9c6650f9f6777cc25959bd70f0ad8 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -188,7 +188,9 @@ constructor(
|
|||||||
if (animationState.value == ANIMATING_OUT) {
|
if (animationState.value == ANIMATING_OUT) {
|
||||||
coroutineScope.launch {
|
coroutineScope.launch {
|
||||||
withTimeout(DISAPPEAR_ANIMATION_DURATION) {
|
withTimeout(DISAPPEAR_ANIMATION_DURATION) {
|
||||||
animationState.first { it == SHOWING_PERSISTENT_DOT || it == ANIMATION_QUEUED }
|
animationState.first {
|
||||||
|
it == SHOWING_PERSISTENT_DOT || it == IDLE || it == ANIMATION_QUEUED
|
||||||
|
}
|
||||||
notifyHidePersistentDot()
|
notifyHidePersistentDot()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -60,9 +60,13 @@ import org.mockito.MockitoAnnotations
|
|||||||
class SystemStatusAnimationSchedulerImplTest : SysuiTestCase() {
|
class SystemStatusAnimationSchedulerImplTest : SysuiTestCase() {
|
||||||
|
|
||||||
@Mock private lateinit var systemEventCoordinator: SystemEventCoordinator
|
@Mock private lateinit var systemEventCoordinator: SystemEventCoordinator
|
||||||
|
|
||||||
@Mock private lateinit var statusBarWindowController: StatusBarWindowController
|
@Mock private lateinit var statusBarWindowController: StatusBarWindowController
|
||||||
|
|
||||||
@Mock private lateinit var statusBarContentInsetProvider: StatusBarContentInsetsProvider
|
@Mock private lateinit var statusBarContentInsetProvider: StatusBarContentInsetsProvider
|
||||||
|
|
||||||
@Mock private lateinit var dumpManager: DumpManager
|
@Mock private lateinit var dumpManager: DumpManager
|
||||||
|
|
||||||
@Mock private lateinit var listener: SystemStatusAnimationCallback
|
@Mock private lateinit var listener: SystemStatusAnimationCallback
|
||||||
|
|
||||||
private lateinit var systemClock: FakeSystemClock
|
private lateinit var systemClock: FakeSystemClock
|
||||||
@@ -379,6 +383,32 @@ class SystemStatusAnimationSchedulerImplTest : SysuiTestCase() {
|
|||||||
verify(listener, never()).onHidePersistentDot()
|
verify(listener, never()).onHidePersistentDot()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun testPrivacyDot_isRemovedDuringChipDisappearAnimation() = runTest {
|
||||||
|
// Instantiate class under test with TestScope from runTest
|
||||||
|
initializeSystemStatusAnimationScheduler(testScope = this)
|
||||||
|
|
||||||
|
// create and schedule high priority event
|
||||||
|
createAndScheduleFakePrivacyEvent()
|
||||||
|
|
||||||
|
// fast forward to ANIMATING_OUT state
|
||||||
|
fastForwardAnimationToState(ANIMATING_OUT)
|
||||||
|
assertEquals(ANIMATING_OUT, systemStatusAnimationScheduler.getAnimationState())
|
||||||
|
verify(listener, times(1)).onSystemStatusAnimationTransitionToPersistentDot(any())
|
||||||
|
|
||||||
|
// remove persistent dot
|
||||||
|
systemStatusAnimationScheduler.removePersistentDot()
|
||||||
|
testScheduler.runCurrent()
|
||||||
|
|
||||||
|
// skip disappear animation
|
||||||
|
animatorTestRule.advanceTimeBy(DISAPPEAR_ANIMATION_DURATION)
|
||||||
|
testScheduler.runCurrent()
|
||||||
|
|
||||||
|
// verify that animationState changes to IDLE and onHidePersistentDot callback is invoked
|
||||||
|
assertEquals(IDLE, systemStatusAnimationScheduler.getAnimationState())
|
||||||
|
verify(listener, times(1)).onHidePersistentDot()
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun testPrivacyEvent_forceVisibleIsUpdated_whenRescheduledDuringQueuedState() = runTest {
|
fun testPrivacyEvent_forceVisibleIsUpdated_whenRescheduledDuringQueuedState() = runTest {
|
||||||
// Instantiate class under test with TestScope from runTest
|
// Instantiate class under test with TestScope from runTest
|
||||||
|
|||||||
Reference in New Issue
Block a user