• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2022 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 
18 package com.android.systemui.shade.data.repository
19 
20 import com.android.systemui.dagger.SysUISingleton
21 import dagger.Binds
22 import dagger.Module
23 import javax.inject.Inject
24 import kotlinx.coroutines.channels.BufferOverflow
25 import kotlinx.coroutines.flow.MutableSharedFlow
26 import kotlinx.coroutines.flow.MutableStateFlow
27 import kotlinx.coroutines.flow.StateFlow
28 import kotlinx.coroutines.flow.asStateFlow
29 
30 /** Fake implementation of [ShadeRepository] */
31 @SysUISingleton
32 class FakeShadeRepository @Inject constructor() : ShadeRepository {
33     private val _qsExpansion = MutableStateFlow(0f)
34 
35     @Deprecated("Use ShadeInteractor.qsExpansion instead")
36     override val qsExpansion = _qsExpansion.asStateFlow()
37 
38     private val _udfpsTransitionToFullShadeProgress = MutableStateFlow(0f)
39     override val udfpsTransitionToFullShadeProgress =
40         _udfpsTransitionToFullShadeProgress.asStateFlow()
41 
42     override val currentFling: MutableSharedFlow<FlingInfo?> =
43         MutableSharedFlow(replay = 2, onBufferOverflow = BufferOverflow.DROP_OLDEST)
44 
45     private val _lockscreenShadeExpansion = MutableStateFlow(0f)
46     override val lockscreenShadeExpansion = _lockscreenShadeExpansion.asStateFlow()
47 
48     private val _legacyShadeExpansion = MutableStateFlow(0f)
49 
50     @Deprecated("Use ShadeInteractor instead")
51     override val legacyShadeExpansion = _legacyShadeExpansion.asStateFlow()
52 
53     private val _legacyShadeTracking = MutableStateFlow(false)
54 
55     @Deprecated("Use ShadeInteractor instead")
56     override val legacyShadeTracking = _legacyShadeTracking.asStateFlow()
57 
58     private val _legacyQsTracking = MutableStateFlow(false)
59 
60     @Deprecated("Use ShadeInteractor instead")
61     override val legacyQsTracking = _legacyQsTracking.asStateFlow()
62 
63     private val _legacyExpandedOrAwaitingInputTransfer = MutableStateFlow(false)
64 
65     @Deprecated("Use ShadeInteractor instead")
66     override val legacyExpandedOrAwaitingInputTransfer =
67         _legacyExpandedOrAwaitingInputTransfer.asStateFlow()
68 
69     private val _legacyIsQsExpanded = MutableStateFlow(false)
70 
71     @Deprecated("Use ShadeInteractor instead")
72     override val legacyIsQsExpanded = _legacyIsQsExpanded.asStateFlow()
73 
74     @Deprecated("Use ShadeInteractor.isUserInteractingWithShade instead")
75     override val legacyLockscreenShadeTracking = MutableStateFlow(false)
76 
77     private var _isShadeLayoutWide = MutableStateFlow(false)
78     override val isShadeLayoutWide: StateFlow<Boolean> = _isShadeLayoutWide.asStateFlow()
79 
80     @Deprecated("Use ShadeInteractor instead")
setLegacyIsQsExpandednull81     override fun setLegacyIsQsExpanded(legacyIsQsExpanded: Boolean) {
82         _legacyIsQsExpanded.value = legacyIsQsExpanded
83     }
84 
85     private val _legacyExpandImmediate = MutableStateFlow(false)
86 
87     @Deprecated("Use ShadeInteractor instead")
88     override val legacyExpandImmediate = _legacyExpandImmediate.asStateFlow()
89 
90     @Deprecated("Use ShadeInteractor instead")
setLegacyExpandImmediatenull91     override fun setLegacyExpandImmediate(legacyExpandImmediate: Boolean) {
92         _legacyExpandImmediate.value = legacyExpandImmediate
93     }
94 
95     @Deprecated("Use ShadeInteractor instead")
setLegacyExpandedOrAwaitingInputTransfernull96     override fun setLegacyExpandedOrAwaitingInputTransfer(
97         legacyExpandedOrAwaitingInputTransfer: Boolean
98     ) {
99         _legacyExpandedOrAwaitingInputTransfer.value = legacyExpandedOrAwaitingInputTransfer
100     }
101 
102     @Deprecated("Should only be called by NPVC and tests")
setLegacyQsTrackingnull103     override fun setLegacyQsTracking(legacyQsTracking: Boolean) {
104         _legacyQsTracking.value = legacyQsTracking
105     }
106 
107     @Deprecated("Should only be called by NPVC and tests")
setLegacyShadeTrackingnull108     override fun setLegacyShadeTracking(tracking: Boolean) {
109         _legacyShadeTracking.value = tracking
110     }
111 
112     @Deprecated("Should only be called by NPVC and tests")
setLegacyLockscreenShadeTrackingnull113     override fun setLegacyLockscreenShadeTracking(tracking: Boolean) {
114         legacyLockscreenShadeTracking.value = tracking
115     }
116 
117     private val _legacyQsFullscreen = MutableStateFlow(false)
118 
119     @Deprecated("Use ShadeInteractor instead") override val legacyQsFullscreen = _legacyQsFullscreen
120 
121     @Deprecated("Use ShadeInteractor instead")
setLegacyQsFullscreennull122     override fun setLegacyQsFullscreen(legacyQsFullscreen: Boolean) {
123         _legacyQsFullscreen.value = legacyQsFullscreen
124     }
125 
126     private val _legacyIsClosing = MutableStateFlow(false)
127 
128     @Deprecated("Use ShadeInteractor instead") override val legacyIsClosing = _legacyIsClosing
129 
130     @Deprecated("Use ShadeInteractor instead")
setLegacyIsClosingnull131     override fun setLegacyIsClosing(isClosing: Boolean) {
132         _legacyIsClosing.value = isClosing
133     }
134 
setQsExpansionnull135     override fun setQsExpansion(qsExpansion: Float) {
136         _qsExpansion.value = qsExpansion
137     }
138 
setUdfpsTransitionToFullShadeProgressnull139     override fun setUdfpsTransitionToFullShadeProgress(progress: Float) {
140         _udfpsTransitionToFullShadeProgress.value = progress
141     }
142 
setCurrentFlingnull143     override fun setCurrentFling(info: FlingInfo?) {
144         currentFling.tryEmit(info)
145     }
146 
setLockscreenShadeExpansionnull147     override fun setLockscreenShadeExpansion(lockscreenShadeExpansion: Float) {
148         _lockscreenShadeExpansion.value = lockscreenShadeExpansion
149     }
150 
151     @Deprecated("Should only be called by NPVC and tests")
setLegacyShadeExpansionnull152     override fun setLegacyShadeExpansion(expandedFraction: Float) {
153         _legacyShadeExpansion.value = expandedFraction
154     }
155 
setShadeLayoutWidenull156     override fun setShadeLayoutWide(isShadeLayoutWide: Boolean) {
157         _isShadeLayoutWide.value = isShadeLayoutWide
158     }
159 }
160 
161 @Module
162 interface FakeShadeRepositoryModule {
bindFakenull163     @Binds fun bindFake(fake: FakeShadeRepository): ShadeRepository
164 }
165