1 /*
2  * Copyright (C) 2023 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package com.android.systemui.bouncer.data.repository
18 
19 import com.android.systemui.bouncer.shared.model.BouncerMessageModel
20 import kotlinx.coroutines.flow.Flow
21 import kotlinx.coroutines.flow.MutableStateFlow
22 import kotlinx.coroutines.flow.StateFlow
23 
24 class FakeBouncerMessageRepository : BouncerMessageRepository {
25     private val _primaryAuthMessage = MutableStateFlow<BouncerMessageModel?>(null)
26     override val primaryAuthMessage: StateFlow<BouncerMessageModel?>
27         get() = _primaryAuthMessage
28 
29     private val _faceAcquisitionMessage = MutableStateFlow<BouncerMessageModel?>(null)
30     override val faceAcquisitionMessage: StateFlow<BouncerMessageModel?>
31         get() = _faceAcquisitionMessage
32     private val _fingerprintAcquisitionMessage = MutableStateFlow<BouncerMessageModel?>(null)
33     override val fingerprintAcquisitionMessage: StateFlow<BouncerMessageModel?>
34         get() = _fingerprintAcquisitionMessage
35     private val _customMessage = MutableStateFlow<BouncerMessageModel?>(null)
36     override val customMessage: StateFlow<BouncerMessageModel?>
37         get() = _customMessage
38     private val _biometricAuthMessage = MutableStateFlow<BouncerMessageModel?>(null)
39     override val biometricAuthMessage: StateFlow<BouncerMessageModel?>
40         get() = _biometricAuthMessage
41     private val _authFlagsMessage = MutableStateFlow<BouncerMessageModel?>(null)
42     override val authFlagsMessage: StateFlow<BouncerMessageModel?>
43         get() = _authFlagsMessage
44 
45     private val _biometricLockedOutMessage = MutableStateFlow<BouncerMessageModel?>(null)
46     override val biometricLockedOutMessage: Flow<BouncerMessageModel?>
47         get() = _biometricLockedOutMessage
48 
49     override fun setPrimaryAuthMessage(value: BouncerMessageModel?) {
50         _primaryAuthMessage.value = value
51     }
52 
53     override fun setFaceAcquisitionMessage(value: BouncerMessageModel?) {
54         _faceAcquisitionMessage.value = value
55     }
56 
57     override fun setFingerprintAcquisitionMessage(value: BouncerMessageModel?) {
58         _fingerprintAcquisitionMessage.value = value
59     }
60 
61     override fun setCustomMessage(value: BouncerMessageModel?) {
62         _customMessage.value = value
63     }
64 
65     fun setBiometricAuthMessage(value: BouncerMessageModel?) {
66         _biometricAuthMessage.value = value
67     }
68 
69     fun setAuthFlagsMessage(value: BouncerMessageModel?) {
70         _authFlagsMessage.value = value
71     }
72 
73     fun setBiometricLockedOutMessage(value: BouncerMessageModel?) {
74         _biometricLockedOutMessage.value = value
75     }
76 
77     override fun clearMessage() {
78         _primaryAuthMessage.value = null
79         _faceAcquisitionMessage.value = null
80         _fingerprintAcquisitionMessage.value = null
81         _customMessage.value = null
82     }
83 }
84