1 package com.android.systemui.biometrics.data.repository 2 3 import android.hardware.biometrics.PromptInfo 4 import com.android.systemui.biometrics.shared.model.PromptKind 5 import kotlinx.coroutines.flow.MutableStateFlow 6 import kotlinx.coroutines.flow.asStateFlow 7 8 /** Fake implementation of [PromptRepository] for tests. */ 9 class FakePromptRepository : PromptRepository { 10 11 private val _isShowing = MutableStateFlow(false) 12 override val isShowing = _isShowing.asStateFlow() 13 14 private val _promptInfo = MutableStateFlow<PromptInfo?>(null) 15 override val promptInfo = _promptInfo.asStateFlow() 16 17 private val _userId = MutableStateFlow<Int?>(null) 18 override val userId = _userId.asStateFlow() 19 20 private val _requestId = MutableStateFlow<Long?>(null) 21 override val requestId = _requestId.asStateFlow() 22 23 private var _challenge = MutableStateFlow<Long?>(null) 24 override val challenge = _challenge.asStateFlow() 25 26 private val _promptKind = MutableStateFlow<PromptKind>(PromptKind.None) 27 override val promptKind = _promptKind.asStateFlow() 28 29 private val _isConfirmationRequired = MutableStateFlow(false) 30 override val isConfirmationRequired = _isConfirmationRequired.asStateFlow() 31 32 private val _opPackageName: MutableStateFlow<String?> = MutableStateFlow(null) 33 override val opPackageName = _opPackageName.asStateFlow() 34 setPromptnull35 override fun setPrompt( 36 promptInfo: PromptInfo, 37 userId: Int, 38 requestId: Long, 39 gatekeeperChallenge: Long?, 40 kind: PromptKind, 41 opPackageName: String, 42 ) = 43 setPrompt( 44 promptInfo, 45 userId, 46 requestId, 47 gatekeeperChallenge, 48 kind, 49 forceConfirmation = false, 50 opPackageName = opPackageName 51 ) 52 53 fun setPrompt( 54 promptInfo: PromptInfo, 55 userId: Int, 56 requestId: Long, 57 gatekeeperChallenge: Long?, 58 kind: PromptKind, 59 forceConfirmation: Boolean = false, 60 opPackageName: String? = null, 61 ) { 62 _promptInfo.value = promptInfo 63 _userId.value = userId 64 _requestId.value = requestId 65 _challenge.value = gatekeeperChallenge 66 _promptKind.value = kind 67 _isConfirmationRequired.value = promptInfo.isConfirmationRequested || forceConfirmation 68 _opPackageName.value = opPackageName 69 } 70 unsetPromptnull71 override fun unsetPrompt(requestId: Long) { 72 _promptInfo.value = null 73 _userId.value = null 74 _requestId.value = null 75 _challenge.value = null 76 _promptKind.value = PromptKind.None 77 _opPackageName.value = null 78 _isConfirmationRequired.value = false 79 } 80 setIsShowingnull81 fun setIsShowing(showing: Boolean) { 82 _isShowing.value = showing 83 } 84 } 85