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