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 package com.android.systemui.deviceentry.data.repository
17 
18 import com.android.systemui.dagger.SysUISingleton
19 import dagger.Binds
20 import dagger.Module
21 import javax.inject.Inject
22 import kotlinx.coroutines.flow.MutableStateFlow
23 import kotlinx.coroutines.flow.StateFlow
24 
25 /** Fake implementation of [DeviceEntryRepository] */
26 @SysUISingleton
27 class FakeDeviceEntryRepository @Inject constructor() : DeviceEntryRepository {
28     private var isLockscreenEnabled = true
29 
30     private val _isBypassEnabled = MutableStateFlow(false)
31     override val isBypassEnabled: StateFlow<Boolean> = _isBypassEnabled
32 
isLockscreenEnablednull33     override suspend fun isLockscreenEnabled(): Boolean {
34         return isLockscreenEnabled
35     }
36 
setLockscreenEnablednull37     fun setLockscreenEnabled(isLockscreenEnabled: Boolean) {
38         this.isLockscreenEnabled = isLockscreenEnabled
39     }
40 
setBypassEnablednull41     fun setBypassEnabled(isBypassEnabled: Boolean) {
42         _isBypassEnabled.value = isBypassEnabled
43     }
44 }
45 
46 @Module
47 interface FakeDeviceEntryRepositoryModule {
bindFakenull48     @Binds fun bindFake(fake: FakeDeviceEntryRepository): DeviceEntryRepository
49 }
50