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.keyguard.ui.transitions
17 
18 import com.android.systemui.keyguard.ui.viewmodel.AlternateBouncerToAodTransitionViewModel
19 import com.android.systemui.keyguard.ui.viewmodel.AlternateBouncerToDozingTransitionViewModel
20 import com.android.systemui.keyguard.ui.viewmodel.AlternateBouncerToGoneTransitionViewModel
21 import com.android.systemui.keyguard.ui.viewmodel.AlternateBouncerToOccludedTransitionViewModel
22 import com.android.systemui.keyguard.ui.viewmodel.AlternateBouncerToPrimaryBouncerTransitionViewModel
23 import com.android.systemui.keyguard.ui.viewmodel.AodToGoneTransitionViewModel
24 import com.android.systemui.keyguard.ui.viewmodel.AodToLockscreenTransitionViewModel
25 import com.android.systemui.keyguard.ui.viewmodel.AodToOccludedTransitionViewModel
26 import com.android.systemui.keyguard.ui.viewmodel.AodToPrimaryBouncerTransitionViewModel
27 import com.android.systemui.keyguard.ui.viewmodel.DozingToGoneTransitionViewModel
28 import com.android.systemui.keyguard.ui.viewmodel.DozingToLockscreenTransitionViewModel
29 import com.android.systemui.keyguard.ui.viewmodel.DozingToOccludedTransitionViewModel
30 import com.android.systemui.keyguard.ui.viewmodel.DozingToPrimaryBouncerTransitionViewModel
31 import com.android.systemui.keyguard.ui.viewmodel.DreamingToAodTransitionViewModel
32 import com.android.systemui.keyguard.ui.viewmodel.DreamingToGlanceableHubTransitionViewModel
33 import com.android.systemui.keyguard.ui.viewmodel.DreamingToLockscreenTransitionViewModel
34 import com.android.systemui.keyguard.ui.viewmodel.GlanceableHubToDreamingTransitionViewModel
35 import com.android.systemui.keyguard.ui.viewmodel.GlanceableHubToOccludedTransitionViewModel
36 import com.android.systemui.keyguard.ui.viewmodel.GoneToAodTransitionViewModel
37 import com.android.systemui.keyguard.ui.viewmodel.GoneToDozingTransitionViewModel
38 import com.android.systemui.keyguard.ui.viewmodel.GoneToGlanceableHubTransitionViewModel
39 import com.android.systemui.keyguard.ui.viewmodel.GoneToLockscreenTransitionViewModel
40 import com.android.systemui.keyguard.ui.viewmodel.LockscreenToAodTransitionViewModel
41 import com.android.systemui.keyguard.ui.viewmodel.LockscreenToDozingTransitionViewModel
42 import com.android.systemui.keyguard.ui.viewmodel.LockscreenToDreamingTransitionViewModel
43 import com.android.systemui.keyguard.ui.viewmodel.LockscreenToGoneTransitionViewModel
44 import com.android.systemui.keyguard.ui.viewmodel.LockscreenToOccludedTransitionViewModel
45 import com.android.systemui.keyguard.ui.viewmodel.LockscreenToPrimaryBouncerTransitionViewModel
46 import com.android.systemui.keyguard.ui.viewmodel.OccludedToAodTransitionViewModel
47 import com.android.systemui.keyguard.ui.viewmodel.OccludedToGlanceableHubTransitionViewModel
48 import com.android.systemui.keyguard.ui.viewmodel.OccludedToLockscreenTransitionViewModel
49 import com.android.systemui.keyguard.ui.viewmodel.OffToLockscreenTransitionViewModel
50 import com.android.systemui.keyguard.ui.viewmodel.PrimaryBouncerToAodTransitionViewModel
51 import com.android.systemui.keyguard.ui.viewmodel.PrimaryBouncerToDozingTransitionViewModel
52 import com.android.systemui.keyguard.ui.viewmodel.PrimaryBouncerToLockscreenTransitionViewModel
53 import dagger.Binds
54 import dagger.Module
55 import dagger.multibindings.IntoSet
56 import kotlinx.coroutines.ExperimentalCoroutinesApi
57 
58 @ExperimentalCoroutinesApi
59 @Module
60 abstract class DeviceEntryIconTransitionModule {
61     @Binds
62     @IntoSet
alternateBouncerToAodnull63     abstract fun alternateBouncerToAod(
64         impl: AlternateBouncerToAodTransitionViewModel
65     ): DeviceEntryIconTransition
66 
67     @Binds
68     @IntoSet
69     abstract fun alternateBouncerToDozing(
70         impl: AlternateBouncerToDozingTransitionViewModel
71     ): DeviceEntryIconTransition
72 
73     @Binds
74     @IntoSet
75     abstract fun alternateBouncerToGone(
76         impl: AlternateBouncerToGoneTransitionViewModel
77     ): DeviceEntryIconTransition
78 
79     @Binds
80     @IntoSet
81     abstract fun alternateBouncerToOccluded(
82         impl: AlternateBouncerToOccludedTransitionViewModel
83     ): DeviceEntryIconTransition
84 
85     @Binds
86     @IntoSet
87     abstract fun alternateBouncerToPrimaryBouncer(
88         impl: AlternateBouncerToPrimaryBouncerTransitionViewModel
89     ): DeviceEntryIconTransition
90 
91     @Binds
92     @IntoSet
93     abstract fun aodToGone(impl: AodToGoneTransitionViewModel): DeviceEntryIconTransition
94 
95     @Binds
96     @IntoSet
97     abstract fun aodToLockscreen(
98         impl: AodToLockscreenTransitionViewModel
99     ): DeviceEntryIconTransition
100 
101     @Binds
102     @IntoSet
103     abstract fun aodToOccluded(impl: AodToOccludedTransitionViewModel): DeviceEntryIconTransition
104 
105     @Binds
106     @IntoSet
107     abstract fun aodToPrimaryBouncer(
108         impl: AodToPrimaryBouncerTransitionViewModel
109     ): DeviceEntryIconTransition
110 
111     @Binds
112     @IntoSet
113     abstract fun dozingToGone(impl: DozingToGoneTransitionViewModel): DeviceEntryIconTransition
114 
115     @Binds
116     @IntoSet
117     abstract fun dozingToLockscreen(
118         impl: DozingToLockscreenTransitionViewModel
119     ): DeviceEntryIconTransition
120 
121     @Binds
122     @IntoSet
123     abstract fun dozingToOccluded(
124         impl: DozingToOccludedTransitionViewModel
125     ): DeviceEntryIconTransition
126 
127     @Binds
128     @IntoSet
129     abstract fun dozingToPrimaryBouncer(
130         impl: DozingToPrimaryBouncerTransitionViewModel
131     ): DeviceEntryIconTransition
132 
133     @Binds
134     @IntoSet
135     abstract fun dreamingToAod(impl: DreamingToAodTransitionViewModel): DeviceEntryIconTransition
136 
137     @Binds
138     @IntoSet
139     abstract fun dreamingToLockscreen(
140         impl: DreamingToLockscreenTransitionViewModel
141     ): DeviceEntryIconTransition
142 
143     @Binds
144     @IntoSet
145     abstract fun lockscreenToAod(
146         impl: LockscreenToAodTransitionViewModel
147     ): DeviceEntryIconTransition
148 
149     @Binds
150     @IntoSet
151     abstract fun lockscreenToDozing(
152         impl: LockscreenToDozingTransitionViewModel
153     ): DeviceEntryIconTransition
154 
155     @Binds
156     @IntoSet
157     abstract fun lockscreenToDreaming(
158         impl: LockscreenToDreamingTransitionViewModel
159     ): DeviceEntryIconTransition
160 
161     @Binds
162     @IntoSet
163     abstract fun lockscreenToOccluded(
164         impl: LockscreenToOccludedTransitionViewModel
165     ): DeviceEntryIconTransition
166 
167     @Binds
168     @IntoSet
169     abstract fun lockscreenToPrimaryBouncer(
170         impl: LockscreenToPrimaryBouncerTransitionViewModel
171     ): DeviceEntryIconTransition
172 
173     @Binds
174     @IntoSet
175     abstract fun lockscreenToGone(
176         impl: LockscreenToGoneTransitionViewModel
177     ): DeviceEntryIconTransition
178 
179     @Binds
180     @IntoSet
181     abstract fun goneToAod(impl: GoneToAodTransitionViewModel): DeviceEntryIconTransition
182 
183     @Binds
184     @IntoSet
185     abstract fun goneToLockscreen(
186         impl: GoneToLockscreenTransitionViewModel
187     ): DeviceEntryIconTransition
188 
189     @Binds
190     @IntoSet
191     abstract fun goneToDozing(impl: GoneToDozingTransitionViewModel): DeviceEntryIconTransition
192 
193     @Binds
194     @IntoSet
195     abstract fun occludedToAod(impl: OccludedToAodTransitionViewModel): DeviceEntryIconTransition
196 
197     @Binds
198     @IntoSet
199     abstract fun occludedToLockscreen(
200         impl: OccludedToLockscreenTransitionViewModel
201     ): DeviceEntryIconTransition
202 
203     @Binds
204     @IntoSet
205     abstract fun offToLockscreen(
206         impl: OffToLockscreenTransitionViewModel
207     ): DeviceEntryIconTransition
208 
209     @Binds
210     @IntoSet
211     abstract fun primaryBouncerToAod(
212         impl: PrimaryBouncerToAodTransitionViewModel
213     ): DeviceEntryIconTransition
214 
215     @Binds
216     @IntoSet
217     abstract fun primaryBouncerToDozing(
218         impl: PrimaryBouncerToDozingTransitionViewModel
219     ): DeviceEntryIconTransition
220 
221     @Binds
222     @IntoSet
223     abstract fun primaryBouncerToLockscreen(
224         impl: PrimaryBouncerToLockscreenTransitionViewModel
225     ): DeviceEntryIconTransition
226 
227     @Binds
228     @IntoSet
229     abstract fun dreamingToGlanceableHub(
230         impl: DreamingToGlanceableHubTransitionViewModel
231     ): DeviceEntryIconTransition
232 
233     @Binds
234     @IntoSet
235     abstract fun glanceableHubToDreaming(
236         impl: GlanceableHubToDreamingTransitionViewModel
237     ): DeviceEntryIconTransition
238 
239     @Binds
240     @IntoSet
241     abstract fun glanceableHubToOccluded(
242         impl: GlanceableHubToOccludedTransitionViewModel
243     ): DeviceEntryIconTransition
244 
245     @Binds
246     @IntoSet
247     abstract fun occludedToGlanceableHub(
248         impl: OccludedToGlanceableHubTransitionViewModel
249     ): DeviceEntryIconTransition
250 
251     @Binds
252     @IntoSet
253     abstract fun goneToGlanceableHub(
254         impl: GoneToGlanceableHubTransitionViewModel
255     ): DeviceEntryIconTransition
256 }
257