• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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.keyguard.data.repository
18 
19 import com.android.keyguard.ClockEventController
20 import com.android.systemui.keyguard.shared.model.ClockSize
21 import com.android.systemui.keyguard.shared.model.ClockSizeSetting
22 import com.android.systemui.plugins.clocks.ClockController
23 import com.android.systemui.plugins.clocks.ClockId
24 import com.android.systemui.shared.clocks.DEFAULT_CLOCK_ID
25 import com.android.systemui.util.mockito.mock
26 import dagger.Binds
27 import dagger.Module
28 import kotlinx.coroutines.flow.Flow
29 import kotlinx.coroutines.flow.MutableStateFlow
30 import kotlinx.coroutines.flow.StateFlow
31 import org.mockito.Mockito
32 
33 class FakeKeyguardClockRepository() : KeyguardClockRepository {
34     private val _clockSize = MutableStateFlow(ClockSize.LARGE)
35     override val clockSize: StateFlow<ClockSize> = _clockSize
36 
37     private val _selectedClockSize = MutableStateFlow(ClockSizeSetting.DYNAMIC)
38     override val selectedClockSize = _selectedClockSize
39 
40     private val _currentClockId = MutableStateFlow(DEFAULT_CLOCK_ID)
41     override val currentClockId: Flow<ClockId> = _currentClockId
42 
43     private val _currentClock: MutableStateFlow<ClockController?> = MutableStateFlow(null)
44     override val currentClock = _currentClock
45 
46     private val _previewClock = MutableStateFlow(Mockito.mock(ClockController::class.java))
47     override val previewClock: Flow<ClockController>
48         get() = _previewClock
49 
50     override val clockEventController: ClockEventController
51         get() = mock()
52 
53     override val shouldForceSmallClock: Boolean
54         get() = _shouldForceSmallClock
55 
56     private var _shouldForceSmallClock: Boolean = false
57 
setClockSizenull58     override fun setClockSize(size: ClockSize) {
59         _clockSize.value = size
60     }
61 
setSelectedClockSizenull62     fun setSelectedClockSize(size: ClockSizeSetting) {
63         _selectedClockSize.value = size
64     }
65 
setCurrentClocknull66     fun setCurrentClock(clockController: ClockController) {
67         _currentClock.value = clockController
68         _currentClockId.value = clockController.config.id
69     }
70 
setShouldForceSmallClocknull71     fun setShouldForceSmallClock(shouldForceSmallClock: Boolean) {
72         _shouldForceSmallClock = shouldForceSmallClock
73     }
74 }
75 
76 @Module
77 interface FakeKeyguardClockRepositoryModule {
bindFakenull78     @Binds fun bindFake(fake: FakeKeyguardClockRepository): KeyguardClockRepository
79 }
80