Loading packages/SystemUI/multivalentTests/src/com/android/systemui/scene/domain/startable/SceneContainerStartableTest.kt +24 −0 Original line number Diff line number Diff line Loading @@ -25,10 +25,12 @@ import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import com.android.compose.animation.scene.ObservableTransitionState import com.android.compose.animation.scene.SceneKey import com.android.internal.logging.uiEventLoggerFake import com.android.systemui.SysuiTestCase import com.android.systemui.authentication.data.repository.fakeAuthenticationRepository import com.android.systemui.authentication.shared.model.AuthenticationMethodModel import com.android.systemui.bouncer.domain.interactor.bouncerInteractor import com.android.systemui.bouncer.shared.logging.BouncerUiEvent import com.android.systemui.classifier.FalsingCollector import com.android.systemui.classifier.falsingCollector import com.android.systemui.classifier.falsingManager Loading @@ -39,6 +41,7 @@ import com.android.systemui.keyguard.data.repository.deviceEntryFingerprintAuthR import com.android.systemui.keyguard.data.repository.fakeDeviceEntryFaceAuthRepository import com.android.systemui.keyguard.data.repository.fakeDeviceEntryFingerprintAuthRepository import com.android.systemui.keyguard.data.repository.fakeKeyguardRepository import com.android.systemui.keyguard.data.repository.fakeTrustRepository import com.android.systemui.keyguard.shared.model.SuccessFingerprintAuthenticationStatus import com.android.systemui.kosmos.testScope import com.android.systemui.model.sysUiState Loading Loading @@ -97,6 +100,8 @@ class SceneContainerStartableTest : SysuiTestCase() { private val windowController = kosmos.notificationShadeWindowController private val centralSurfaces = kosmos.centralSurfaces private val powerInteractor = kosmos.powerInteractor private val fakeTrustRepository = kosmos.fakeTrustRepository private val uiEventLoggerFake = kosmos.uiEventLoggerFake private lateinit var underTest: SceneContainerStartable Loading Loading @@ -1233,6 +1238,25 @@ class SceneContainerStartableTest : SysuiTestCase() { assertThat(currentScene).isEqualTo(Scenes.Lockscreen) } @Test fun switchToGone_extendUnlock() = testScope.runTest { val currentScene by collectLastValue(sceneInteractor.currentScene) prepareState( initialSceneKey = Scenes.Bouncer, authenticationMethod = AuthenticationMethodModel.Pin, ) assertThat(currentScene).isEqualTo(Scenes.Bouncer) underTest.start() fakeTrustRepository.setCurrentUserTrusted(true) assertThat(currentScene).isEqualTo(Scenes.Gone) assertThat(uiEventLoggerFake[0].eventId) .isEqualTo(BouncerUiEvent.BOUNCER_DISMISS_EXTENDED_ACCESS.id) assertThat(uiEventLoggerFake.numLogs()).isEqualTo(1) } private fun TestScope.emulateSceneTransition( transitionStateFlow: MutableStateFlow<ObservableTransitionState>, toScene: SceneKey, Loading packages/SystemUI/src/com/android/systemui/scene/domain/startable/SceneContainerStartable.kt +10 −0 Original line number Diff line number Diff line Loading @@ -21,11 +21,13 @@ package com.android.systemui.scene.domain.startable import android.app.StatusBarManager import com.android.compose.animation.scene.ObservableTransitionState import com.android.compose.animation.scene.SceneKey import com.android.internal.logging.UiEventLogger import com.android.systemui.CoreStartable import com.android.systemui.authentication.domain.interactor.AuthenticationInteractor import com.android.systemui.authentication.shared.model.AuthenticationMethodModel import com.android.systemui.bouncer.domain.interactor.BouncerInteractor import com.android.systemui.bouncer.domain.interactor.SimBouncerInteractor import com.android.systemui.bouncer.shared.logging.BouncerUiEvent import com.android.systemui.classifier.FalsingCollector import com.android.systemui.classifier.FalsingCollectorActual import com.android.systemui.common.coroutine.ConflatedCallbackFlow.conflatedCallbackFlow Loading @@ -35,6 +37,7 @@ import com.android.systemui.dagger.qualifiers.DisplayId import com.android.systemui.deviceentry.domain.interactor.DeviceEntryFaceAuthInteractor import com.android.systemui.deviceentry.domain.interactor.DeviceEntryInteractor import com.android.systemui.deviceentry.domain.interactor.DeviceUnlockedInteractor import com.android.systemui.deviceentry.shared.model.DeviceUnlockSource import com.android.systemui.keyguard.domain.interactor.KeyguardInteractor import com.android.systemui.model.SceneContainerPlugin import com.android.systemui.model.SysUiState Loading Loading @@ -107,6 +110,7 @@ constructor( private val occlusionInteractor: SceneContainerOcclusionInteractor, private val faceUnlockInteractor: DeviceEntryFaceAuthInteractor, private val shadeInteractor: ShadeInteractor, private val uiEventLogger: UiEventLogger, ) : CoreStartable { override fun start() { Loading Loading @@ -282,6 +286,12 @@ constructor( } } if ( isOnBouncer && deviceUnlockStatus.deviceUnlockSource == DeviceUnlockSource.TrustAgent ) { uiEventLogger.log(BouncerUiEvent.BOUNCER_DISMISS_EXTENDED_ACCESS) } when { isOnBouncer -> // When the device becomes unlocked in Bouncer, go to previous scene, Loading packages/SystemUI/tests/utils/src/com/android/systemui/scene/domain/interactor/SceneContainerStartableKosmos.kt +2 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.systemui.scene.domain.interactor import com.android.internal.logging.uiEventLogger import com.android.systemui.authentication.domain.interactor.authenticationInteractor import com.android.systemui.bouncer.domain.interactor.bouncerInteractor import com.android.systemui.bouncer.domain.interactor.simBouncerInteractor Loading Loading @@ -63,5 +64,6 @@ val Kosmos.sceneContainerStartable by Fixture { occlusionInteractor = sceneContainerOcclusionInteractor, faceUnlockInteractor = deviceEntryFaceAuthInteractor, shadeInteractor = shadeInteractor, uiEventLogger = uiEventLogger, ) } Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/scene/domain/startable/SceneContainerStartableTest.kt +24 −0 Original line number Diff line number Diff line Loading @@ -25,10 +25,12 @@ import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import com.android.compose.animation.scene.ObservableTransitionState import com.android.compose.animation.scene.SceneKey import com.android.internal.logging.uiEventLoggerFake import com.android.systemui.SysuiTestCase import com.android.systemui.authentication.data.repository.fakeAuthenticationRepository import com.android.systemui.authentication.shared.model.AuthenticationMethodModel import com.android.systemui.bouncer.domain.interactor.bouncerInteractor import com.android.systemui.bouncer.shared.logging.BouncerUiEvent import com.android.systemui.classifier.FalsingCollector import com.android.systemui.classifier.falsingCollector import com.android.systemui.classifier.falsingManager Loading @@ -39,6 +41,7 @@ import com.android.systemui.keyguard.data.repository.deviceEntryFingerprintAuthR import com.android.systemui.keyguard.data.repository.fakeDeviceEntryFaceAuthRepository import com.android.systemui.keyguard.data.repository.fakeDeviceEntryFingerprintAuthRepository import com.android.systemui.keyguard.data.repository.fakeKeyguardRepository import com.android.systemui.keyguard.data.repository.fakeTrustRepository import com.android.systemui.keyguard.shared.model.SuccessFingerprintAuthenticationStatus import com.android.systemui.kosmos.testScope import com.android.systemui.model.sysUiState Loading Loading @@ -97,6 +100,8 @@ class SceneContainerStartableTest : SysuiTestCase() { private val windowController = kosmos.notificationShadeWindowController private val centralSurfaces = kosmos.centralSurfaces private val powerInteractor = kosmos.powerInteractor private val fakeTrustRepository = kosmos.fakeTrustRepository private val uiEventLoggerFake = kosmos.uiEventLoggerFake private lateinit var underTest: SceneContainerStartable Loading Loading @@ -1233,6 +1238,25 @@ class SceneContainerStartableTest : SysuiTestCase() { assertThat(currentScene).isEqualTo(Scenes.Lockscreen) } @Test fun switchToGone_extendUnlock() = testScope.runTest { val currentScene by collectLastValue(sceneInteractor.currentScene) prepareState( initialSceneKey = Scenes.Bouncer, authenticationMethod = AuthenticationMethodModel.Pin, ) assertThat(currentScene).isEqualTo(Scenes.Bouncer) underTest.start() fakeTrustRepository.setCurrentUserTrusted(true) assertThat(currentScene).isEqualTo(Scenes.Gone) assertThat(uiEventLoggerFake[0].eventId) .isEqualTo(BouncerUiEvent.BOUNCER_DISMISS_EXTENDED_ACCESS.id) assertThat(uiEventLoggerFake.numLogs()).isEqualTo(1) } private fun TestScope.emulateSceneTransition( transitionStateFlow: MutableStateFlow<ObservableTransitionState>, toScene: SceneKey, Loading
packages/SystemUI/src/com/android/systemui/scene/domain/startable/SceneContainerStartable.kt +10 −0 Original line number Diff line number Diff line Loading @@ -21,11 +21,13 @@ package com.android.systemui.scene.domain.startable import android.app.StatusBarManager import com.android.compose.animation.scene.ObservableTransitionState import com.android.compose.animation.scene.SceneKey import com.android.internal.logging.UiEventLogger import com.android.systemui.CoreStartable import com.android.systemui.authentication.domain.interactor.AuthenticationInteractor import com.android.systemui.authentication.shared.model.AuthenticationMethodModel import com.android.systemui.bouncer.domain.interactor.BouncerInteractor import com.android.systemui.bouncer.domain.interactor.SimBouncerInteractor import com.android.systemui.bouncer.shared.logging.BouncerUiEvent import com.android.systemui.classifier.FalsingCollector import com.android.systemui.classifier.FalsingCollectorActual import com.android.systemui.common.coroutine.ConflatedCallbackFlow.conflatedCallbackFlow Loading @@ -35,6 +37,7 @@ import com.android.systemui.dagger.qualifiers.DisplayId import com.android.systemui.deviceentry.domain.interactor.DeviceEntryFaceAuthInteractor import com.android.systemui.deviceentry.domain.interactor.DeviceEntryInteractor import com.android.systemui.deviceentry.domain.interactor.DeviceUnlockedInteractor import com.android.systemui.deviceentry.shared.model.DeviceUnlockSource import com.android.systemui.keyguard.domain.interactor.KeyguardInteractor import com.android.systemui.model.SceneContainerPlugin import com.android.systemui.model.SysUiState Loading Loading @@ -107,6 +110,7 @@ constructor( private val occlusionInteractor: SceneContainerOcclusionInteractor, private val faceUnlockInteractor: DeviceEntryFaceAuthInteractor, private val shadeInteractor: ShadeInteractor, private val uiEventLogger: UiEventLogger, ) : CoreStartable { override fun start() { Loading Loading @@ -282,6 +286,12 @@ constructor( } } if ( isOnBouncer && deviceUnlockStatus.deviceUnlockSource == DeviceUnlockSource.TrustAgent ) { uiEventLogger.log(BouncerUiEvent.BOUNCER_DISMISS_EXTENDED_ACCESS) } when { isOnBouncer -> // When the device becomes unlocked in Bouncer, go to previous scene, Loading
packages/SystemUI/tests/utils/src/com/android/systemui/scene/domain/interactor/SceneContainerStartableKosmos.kt +2 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.systemui.scene.domain.interactor import com.android.internal.logging.uiEventLogger import com.android.systemui.authentication.domain.interactor.authenticationInteractor import com.android.systemui.bouncer.domain.interactor.bouncerInteractor import com.android.systemui.bouncer.domain.interactor.simBouncerInteractor Loading Loading @@ -63,5 +64,6 @@ val Kosmos.sceneContainerStartable by Fixture { occlusionInteractor = sceneContainerOcclusionInteractor, faceUnlockInteractor = deviceEntryFaceAuthInteractor, shadeInteractor = shadeInteractor, uiEventLogger = uiEventLogger, ) }