Loading packages/SystemUI/multivalentTests/src/com/android/systemui/ambientcue/data/repository/AmbientCueRepositoryTest.kt +54 −0 Original line number Diff line number Diff line Loading @@ -151,6 +151,60 @@ class AmbientCueRepositoryTest : SysuiTestCase() { assertThat(isRootViewAttached).isFalse() } @Test fun isRootViewAttached_whenEmptySmartSpaceTargets_true() = kosmos.runTest { val actions by collectLastValue(underTest.actions) val isRootViewAttached by collectLastValue(underTest.isRootViewAttached) secureSettingsRepository.setInt( AmbientCueRepositoryImpl.AMBIENT_CUE_SETTING, AmbientCueRepositoryImpl.OPTED_IN, ) runCurrent() verify(smartSpaceSession) .addOnTargetsAvailableListener(any(), onTargetsAvailableListenerCaptor.capture()) taskStackChangeListeners.listenerImpl.onTaskMovedToFront( RunningTaskInfo().apply { taskId = TASK_ID } ) advanceTimeBy(DEBOUNCE_DELAY_MS) // Attach the root view first. onTargetsAvailableListenerCaptor.firstValue.onTargetsAvailable(listOf(autofillTarget)) advanceUntilIdle() onTargetsAvailableListenerCaptor.firstValue.onTargetsAvailable(emptyList()) advanceUntilIdle() // Empty list won't cause the root view to be detached. assertThat(isRootViewAttached).isTrue() } @Test fun isRootViewAttached_whenNoValidSmartSpaceTargets_true() = kosmos.runTest { val actions by collectLastValue(underTest.actions) val isRootViewAttached by collectLastValue(underTest.isRootViewAttached) secureSettingsRepository.setInt( AmbientCueRepositoryImpl.AMBIENT_CUE_SETTING, AmbientCueRepositoryImpl.OPTED_IN, ) runCurrent() verify(smartSpaceSession) .addOnTargetsAvailableListener(any(), onTargetsAvailableListenerCaptor.capture()) taskStackChangeListeners.listenerImpl.onTaskMovedToFront( RunningTaskInfo().apply { taskId = TASK_ID } ) advanceTimeBy(DEBOUNCE_DELAY_MS) // Attach the root view first. onTargetsAvailableListenerCaptor.firstValue.onTargetsAvailable(listOf(autofillTarget)) advanceUntilIdle() onTargetsAvailableListenerCaptor.firstValue.onTargetsAvailable(listOf(invalidTarget1)) advanceUntilIdle() // Invalid target won't cause the root view to be detached. assertThat(isRootViewAttached).isTrue() } @Test fun isRootViewAttached_deactivated_false() = kosmos.runTest { Loading packages/SystemUI/src/com/android/systemui/ambientcue/data/repository/AmbientCueRepository.kt +4 −0 Original line number Diff line number Diff line Loading @@ -147,6 +147,10 @@ constructor( Log.i(TAG, "SmartSpace session created") val smartSpaceListener = OnTargetsAvailableListener { targets -> Log.i(TAG, "Receiving SmartSpace targets # ${targets.size}") if (targets.none { it.smartspaceTargetId == AMBIENT_CUE_SURFACE }) { return@OnTargetsAvailableListener } val actions = targets .filter { it.smartspaceTargetId == AMBIENT_CUE_SURFACE } Loading Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/ambientcue/data/repository/AmbientCueRepositoryTest.kt +54 −0 Original line number Diff line number Diff line Loading @@ -151,6 +151,60 @@ class AmbientCueRepositoryTest : SysuiTestCase() { assertThat(isRootViewAttached).isFalse() } @Test fun isRootViewAttached_whenEmptySmartSpaceTargets_true() = kosmos.runTest { val actions by collectLastValue(underTest.actions) val isRootViewAttached by collectLastValue(underTest.isRootViewAttached) secureSettingsRepository.setInt( AmbientCueRepositoryImpl.AMBIENT_CUE_SETTING, AmbientCueRepositoryImpl.OPTED_IN, ) runCurrent() verify(smartSpaceSession) .addOnTargetsAvailableListener(any(), onTargetsAvailableListenerCaptor.capture()) taskStackChangeListeners.listenerImpl.onTaskMovedToFront( RunningTaskInfo().apply { taskId = TASK_ID } ) advanceTimeBy(DEBOUNCE_DELAY_MS) // Attach the root view first. onTargetsAvailableListenerCaptor.firstValue.onTargetsAvailable(listOf(autofillTarget)) advanceUntilIdle() onTargetsAvailableListenerCaptor.firstValue.onTargetsAvailable(emptyList()) advanceUntilIdle() // Empty list won't cause the root view to be detached. assertThat(isRootViewAttached).isTrue() } @Test fun isRootViewAttached_whenNoValidSmartSpaceTargets_true() = kosmos.runTest { val actions by collectLastValue(underTest.actions) val isRootViewAttached by collectLastValue(underTest.isRootViewAttached) secureSettingsRepository.setInt( AmbientCueRepositoryImpl.AMBIENT_CUE_SETTING, AmbientCueRepositoryImpl.OPTED_IN, ) runCurrent() verify(smartSpaceSession) .addOnTargetsAvailableListener(any(), onTargetsAvailableListenerCaptor.capture()) taskStackChangeListeners.listenerImpl.onTaskMovedToFront( RunningTaskInfo().apply { taskId = TASK_ID } ) advanceTimeBy(DEBOUNCE_DELAY_MS) // Attach the root view first. onTargetsAvailableListenerCaptor.firstValue.onTargetsAvailable(listOf(autofillTarget)) advanceUntilIdle() onTargetsAvailableListenerCaptor.firstValue.onTargetsAvailable(listOf(invalidTarget1)) advanceUntilIdle() // Invalid target won't cause the root view to be detached. assertThat(isRootViewAttached).isTrue() } @Test fun isRootViewAttached_deactivated_false() = kosmos.runTest { Loading
packages/SystemUI/src/com/android/systemui/ambientcue/data/repository/AmbientCueRepository.kt +4 −0 Original line number Diff line number Diff line Loading @@ -147,6 +147,10 @@ constructor( Log.i(TAG, "SmartSpace session created") val smartSpaceListener = OnTargetsAvailableListener { targets -> Log.i(TAG, "Receiving SmartSpace targets # ${targets.size}") if (targets.none { it.smartspaceTargetId == AMBIENT_CUE_SURFACE }) { return@OnTargetsAvailableListener } val actions = targets .filter { it.smartspaceTargetId == AMBIENT_CUE_SURFACE } Loading