Loading packages/SystemUI/src/com/android/systemui/bouncer/domain/interactor/BouncerInteractor.kt +3 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ import com.android.systemui.classifier.FalsingClassifier import com.android.systemui.classifier.domain.interactor.FalsingInteractor import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Application import com.android.systemui.keyguard.domain.interactor.KeyguardFaceAuthInteractor import com.android.systemui.power.domain.interactor.PowerInteractor import com.android.systemui.res.R import com.android.systemui.scene.shared.flag.SceneContainerFlags Loading @@ -51,6 +52,7 @@ constructor( @Application private val applicationContext: Context, private val repository: BouncerRepository, private val authenticationInteractor: AuthenticationInteractor, private val keyguardFaceAuthInteractor: KeyguardFaceAuthInteractor, flags: SceneContainerFlags, private val falsingInteractor: FalsingInteractor, private val powerInteractor: PowerInteractor, Loading Loading @@ -131,6 +133,7 @@ constructor( * user's pocket or by the user's face while holding their device up to their ear. */ fun onIntentionalUserInput() { keyguardFaceAuthInteractor.onPrimaryBouncerUserInput() powerInteractor.onUserTouch() falsingInteractor.updateFalseConfidence(FalsingClassifier.Result.passed(0.6)) } Loading packages/SystemUI/tests/src/com/android/systemui/bouncer/domain/interactor/BouncerInteractorTest.kt +22 −4 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import com.android.systemui.authentication.shared.model.AuthenticationMethodMode import com.android.systemui.authentication.shared.model.AuthenticationPatternCoordinate import com.android.systemui.authentication.shared.model.AuthenticationThrottlingModel import com.android.systemui.coroutines.collectLastValue import com.android.systemui.keyguard.domain.interactor.KeyguardFaceAuthInteractor import com.android.systemui.res.R import com.android.systemui.scene.SceneTestUtils import com.google.common.truth.Truth.assertThat Loading @@ -37,28 +38,38 @@ import kotlinx.coroutines.test.runTest 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 @OptIn(ExperimentalCoroutinesApi::class) @SmallTest @RunWith(AndroidJUnit4::class) class BouncerInteractorTest : SysuiTestCase() { @Mock private lateinit var keyguardFaceAuthInteractor: KeyguardFaceAuthInteractor private val utils = SceneTestUtils(this) private val testScope = utils.testScope private val authenticationInteractor = utils.authenticationInteractor() private val underTest = utils.bouncerInteractor( authenticationInteractor = authenticationInteractor, ) private lateinit var underTest: BouncerInteractor @Before fun setUp() { MockitoAnnotations.initMocks(this) overrideResource(R.string.keyguard_enter_your_pin, MESSAGE_ENTER_YOUR_PIN) overrideResource(R.string.keyguard_enter_your_password, MESSAGE_ENTER_YOUR_PASSWORD) overrideResource(R.string.keyguard_enter_your_pattern, MESSAGE_ENTER_YOUR_PATTERN) overrideResource(R.string.kg_wrong_pin, MESSAGE_WRONG_PIN) overrideResource(R.string.kg_wrong_password, MESSAGE_WRONG_PASSWORD) overrideResource(R.string.kg_wrong_pattern, MESSAGE_WRONG_PATTERN) underTest = utils.bouncerInteractor( authenticationInteractor = authenticationInteractor, keyguardFaceAuthInteractor = keyguardFaceAuthInteractor, ) } @Test Loading Loading @@ -325,6 +336,13 @@ class BouncerInteractorTest : SysuiTestCase() { assertThat(utils.powerRepository.userTouchRegistered).isTrue() } @Test fun intentionalUserInputEvent_notifiesFaceAuthInteractor() = testScope.runTest { underTest.onIntentionalUserInput() verify(keyguardFaceAuthInteractor).onPrimaryBouncerUserInput() } private fun assertTryAgainMessage( message: String?, time: Int, Loading packages/SystemUI/tests/utils/src/com/android/systemui/scene/SceneTestUtils.kt +3 −0 Original line number Diff line number Diff line Loading @@ -63,6 +63,7 @@ import com.android.systemui.keyguard.data.repository.FakeKeyguardRepository import com.android.systemui.keyguard.data.repository.FakeTrustRepository import com.android.systemui.keyguard.data.repository.KeyguardRepository import com.android.systemui.keyguard.data.repository.TrustRepository import com.android.systemui.keyguard.domain.interactor.KeyguardFaceAuthInteractor import com.android.systemui.keyguard.domain.interactor.KeyguardInteractor import com.android.systemui.kosmos.Kosmos import com.android.systemui.kosmos.testDispatcher Loading Loading @@ -258,12 +259,14 @@ class SceneTestUtils( fun bouncerInteractor( authenticationInteractor: AuthenticationInteractor, keyguardFaceAuthInteractor: KeyguardFaceAuthInteractor = mock(), ): BouncerInteractor { return BouncerInteractor( applicationScope = applicationScope(), applicationContext = context, repository = bouncerRepository, authenticationInteractor = authenticationInteractor, keyguardFaceAuthInteractor = keyguardFaceAuthInteractor, flags = sceneContainerFlags, falsingInteractor = falsingInteractor(), powerInteractor = powerInteractor(), Loading Loading
packages/SystemUI/src/com/android/systemui/bouncer/domain/interactor/BouncerInteractor.kt +3 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ import com.android.systemui.classifier.FalsingClassifier import com.android.systemui.classifier.domain.interactor.FalsingInteractor import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Application import com.android.systemui.keyguard.domain.interactor.KeyguardFaceAuthInteractor import com.android.systemui.power.domain.interactor.PowerInteractor import com.android.systemui.res.R import com.android.systemui.scene.shared.flag.SceneContainerFlags Loading @@ -51,6 +52,7 @@ constructor( @Application private val applicationContext: Context, private val repository: BouncerRepository, private val authenticationInteractor: AuthenticationInteractor, private val keyguardFaceAuthInteractor: KeyguardFaceAuthInteractor, flags: SceneContainerFlags, private val falsingInteractor: FalsingInteractor, private val powerInteractor: PowerInteractor, Loading Loading @@ -131,6 +133,7 @@ constructor( * user's pocket or by the user's face while holding their device up to their ear. */ fun onIntentionalUserInput() { keyguardFaceAuthInteractor.onPrimaryBouncerUserInput() powerInteractor.onUserTouch() falsingInteractor.updateFalseConfidence(FalsingClassifier.Result.passed(0.6)) } Loading
packages/SystemUI/tests/src/com/android/systemui/bouncer/domain/interactor/BouncerInteractorTest.kt +22 −4 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import com.android.systemui.authentication.shared.model.AuthenticationMethodMode import com.android.systemui.authentication.shared.model.AuthenticationPatternCoordinate import com.android.systemui.authentication.shared.model.AuthenticationThrottlingModel import com.android.systemui.coroutines.collectLastValue import com.android.systemui.keyguard.domain.interactor.KeyguardFaceAuthInteractor import com.android.systemui.res.R import com.android.systemui.scene.SceneTestUtils import com.google.common.truth.Truth.assertThat Loading @@ -37,28 +38,38 @@ import kotlinx.coroutines.test.runTest 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 @OptIn(ExperimentalCoroutinesApi::class) @SmallTest @RunWith(AndroidJUnit4::class) class BouncerInteractorTest : SysuiTestCase() { @Mock private lateinit var keyguardFaceAuthInteractor: KeyguardFaceAuthInteractor private val utils = SceneTestUtils(this) private val testScope = utils.testScope private val authenticationInteractor = utils.authenticationInteractor() private val underTest = utils.bouncerInteractor( authenticationInteractor = authenticationInteractor, ) private lateinit var underTest: BouncerInteractor @Before fun setUp() { MockitoAnnotations.initMocks(this) overrideResource(R.string.keyguard_enter_your_pin, MESSAGE_ENTER_YOUR_PIN) overrideResource(R.string.keyguard_enter_your_password, MESSAGE_ENTER_YOUR_PASSWORD) overrideResource(R.string.keyguard_enter_your_pattern, MESSAGE_ENTER_YOUR_PATTERN) overrideResource(R.string.kg_wrong_pin, MESSAGE_WRONG_PIN) overrideResource(R.string.kg_wrong_password, MESSAGE_WRONG_PASSWORD) overrideResource(R.string.kg_wrong_pattern, MESSAGE_WRONG_PATTERN) underTest = utils.bouncerInteractor( authenticationInteractor = authenticationInteractor, keyguardFaceAuthInteractor = keyguardFaceAuthInteractor, ) } @Test Loading Loading @@ -325,6 +336,13 @@ class BouncerInteractorTest : SysuiTestCase() { assertThat(utils.powerRepository.userTouchRegistered).isTrue() } @Test fun intentionalUserInputEvent_notifiesFaceAuthInteractor() = testScope.runTest { underTest.onIntentionalUserInput() verify(keyguardFaceAuthInteractor).onPrimaryBouncerUserInput() } private fun assertTryAgainMessage( message: String?, time: Int, Loading
packages/SystemUI/tests/utils/src/com/android/systemui/scene/SceneTestUtils.kt +3 −0 Original line number Diff line number Diff line Loading @@ -63,6 +63,7 @@ import com.android.systemui.keyguard.data.repository.FakeKeyguardRepository import com.android.systemui.keyguard.data.repository.FakeTrustRepository import com.android.systemui.keyguard.data.repository.KeyguardRepository import com.android.systemui.keyguard.data.repository.TrustRepository import com.android.systemui.keyguard.domain.interactor.KeyguardFaceAuthInteractor import com.android.systemui.keyguard.domain.interactor.KeyguardInteractor import com.android.systemui.kosmos.Kosmos import com.android.systemui.kosmos.testDispatcher Loading Loading @@ -258,12 +259,14 @@ class SceneTestUtils( fun bouncerInteractor( authenticationInteractor: AuthenticationInteractor, keyguardFaceAuthInteractor: KeyguardFaceAuthInteractor = mock(), ): BouncerInteractor { return BouncerInteractor( applicationScope = applicationScope(), applicationContext = context, repository = bouncerRepository, authenticationInteractor = authenticationInteractor, keyguardFaceAuthInteractor = keyguardFaceAuthInteractor, flags = sceneContainerFlags, falsingInteractor = falsingInteractor(), powerInteractor = powerInteractor(), Loading