1 package com.android.systemui.biometrics.domain.interactor 2 3 import com.android.internal.widget.LockscreenCredential 4 import com.android.systemui.biometrics.domain.model.BiometricPromptRequest 5 import kotlinx.coroutines.flow.Flow 6 import kotlinx.coroutines.flow.flowOf 7 8 /** Fake implementation of [CredentialInteractor] for tests. */ 9 class FakeCredentialInteractor : CredentialInteractor { 10 11 /** Sets return value for [isStealthModeActive]. */ 12 var stealthMode: Boolean = false 13 14 /** Sets return value for [getCredentialOwnerOrSelfId]. */ 15 var credentialOwnerId: Int? = null 16 17 override fun isStealthModeActive(userId: Int): Boolean = stealthMode 18 19 override fun getCredentialOwnerOrSelfId(userId: Int): Int = credentialOwnerId ?: userId 20 21 override fun verifyCredential( 22 request: BiometricPromptRequest.Credential, 23 credential: LockscreenCredential, 24 ): Flow<CredentialStatus> = verifyCredentialResponse(credential) 25 26 /** Sets the result value for [verifyCredential]. */ 27 var verifyCredentialResponse: (credential: LockscreenCredential) -> Flow<CredentialStatus> = 28 { _ -> 29 flowOf(CredentialStatus.Fail.Error("invalid")) 30 } 31 } 32