• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2025 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.dagger
18 
19 import com.android.systemui.keyguard.ui.transitions.PrimaryBouncerTransition
20 import com.android.systemui.keyguard.ui.viewmodel.AlternateBouncerToPrimaryBouncerTransitionViewModel
21 import com.android.systemui.keyguard.ui.viewmodel.AodToPrimaryBouncerTransitionViewModel
22 import com.android.systemui.keyguard.ui.viewmodel.DozingToPrimaryBouncerTransitionViewModel
23 import com.android.systemui.keyguard.ui.viewmodel.DreamingToPrimaryBouncerTransitionViewModel
24 import com.android.systemui.keyguard.ui.viewmodel.GlanceableHubToPrimaryBouncerTransitionViewModel
25 import com.android.systemui.keyguard.ui.viewmodel.LockscreenToPrimaryBouncerTransitionViewModel
26 import com.android.systemui.keyguard.ui.viewmodel.OccludedToPrimaryBouncerTransitionViewModel
27 import com.android.systemui.keyguard.ui.viewmodel.PrimaryBouncerToAodTransitionViewModel
28 import com.android.systemui.keyguard.ui.viewmodel.PrimaryBouncerToDozingTransitionViewModel
29 import com.android.systemui.keyguard.ui.viewmodel.PrimaryBouncerToDreamingTransitionViewModel
30 import com.android.systemui.keyguard.ui.viewmodel.PrimaryBouncerToGlanceableHubTransitionViewModel
31 import com.android.systemui.keyguard.ui.viewmodel.PrimaryBouncerToGoneTransitionViewModel
32 import com.android.systemui.keyguard.ui.viewmodel.PrimaryBouncerToLockscreenTransitionViewModel
33 import com.android.systemui.keyguard.ui.viewmodel.PrimaryBouncerToOccludedTransitionViewModel
34 import dagger.Binds
35 import dagger.Module
36 import dagger.multibindings.IntoSet
37 import dagger.multibindings.Multibinds
38 
39 /**
40  * Base module that defines the [PrimaryBouncerTransition] multibinding. All variants of SystemUI
41  * can install this module to get the default empty version of the multibinding
42  */
43 @Module
44 interface PrimaryBouncerTransitionModule {
primaryBouncerTransitionsnull45     @Multibinds fun primaryBouncerTransitions(): Set<PrimaryBouncerTransition>
46 }
47 
48 /**
49  * Module that installs all the implementations of [PrimaryBouncerTransition] from different
50  * keyguard states to and away from the primary bouncer.
51  */
52 @Module
53 interface PrimaryBouncerTransitionImplModule {
54     @Binds
55     @IntoSet
56     fun fromAod(impl: AodToPrimaryBouncerTransitionViewModel): PrimaryBouncerTransition
57 
58     @Binds
59     @IntoSet
60     fun fromAlternateBouncer(
61         impl: AlternateBouncerToPrimaryBouncerTransitionViewModel
62     ): PrimaryBouncerTransition
63 
64     @Binds
65     @IntoSet
66     fun fromDozing(impl: DozingToPrimaryBouncerTransitionViewModel): PrimaryBouncerTransition
67 
68     @Binds
69     @IntoSet
70     fun fromLockscreen(
71         impl: LockscreenToPrimaryBouncerTransitionViewModel
72     ): PrimaryBouncerTransition
73 
74     @Binds
75     @IntoSet
76     fun fromGlanceableHub(
77         impl: GlanceableHubToPrimaryBouncerTransitionViewModel
78     ): PrimaryBouncerTransition
79 
80     @Binds
81     @IntoSet
82     fun fromOccluded(impl: OccludedToPrimaryBouncerTransitionViewModel): PrimaryBouncerTransition
83 
84     @Binds
85     @IntoSet
86     fun fromDreaming(impl: DreamingToPrimaryBouncerTransitionViewModel): PrimaryBouncerTransition
87 
88     @Binds
89     @IntoSet
90     fun toAod(impl: PrimaryBouncerToAodTransitionViewModel): PrimaryBouncerTransition
91 
92     @Binds
93     @IntoSet
94     fun toLockscreen(impl: PrimaryBouncerToLockscreenTransitionViewModel): PrimaryBouncerTransition
95 
96     @Binds
97     @IntoSet
98     fun toDozing(impl: PrimaryBouncerToDozingTransitionViewModel): PrimaryBouncerTransition
99 
100     @Binds
101     @IntoSet
102     fun toGlanceableHub(
103         impl: PrimaryBouncerToGlanceableHubTransitionViewModel
104     ): PrimaryBouncerTransition
105 
106     @Binds
107     @IntoSet
108     fun toGone(impl: PrimaryBouncerToGoneTransitionViewModel): PrimaryBouncerTransition
109 
110     @Binds
111     @IntoSet
112     fun toDreaming(impl: PrimaryBouncerToDreamingTransitionViewModel): PrimaryBouncerTransition
113 
114     @Binds
115     @IntoSet
116     fun toOccluded(impl: PrimaryBouncerToOccludedTransitionViewModel): PrimaryBouncerTransition
117 }
118