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 package com.android.systemui.keyguard.data.repository
18 
19 import com.android.systemui.CoreStartable
20 import com.android.systemui.bouncer.data.repository.BouncerMessageRepository
21 import com.android.systemui.bouncer.data.repository.BouncerMessageRepositoryImpl
22 import com.android.systemui.bouncer.data.repository.KeyguardBouncerRepository
23 import com.android.systemui.bouncer.data.repository.KeyguardBouncerRepositoryImpl
24 import com.android.systemui.bouncer.domain.interactor.BouncerMessageAuditLogger
25 import com.android.systemui.keyguard.ui.binder.SideFpsProgressBarViewBinder
26 import dagger.Binds
27 import dagger.Module
28 import dagger.multibindings.ClassKey
29 import dagger.multibindings.IntoMap
30 
31 @Module
32 interface KeyguardRepositoryModule {
keyguardRepositorynull33     @Binds fun keyguardRepository(impl: KeyguardRepositoryImpl): KeyguardRepository
34 
35     @Binds
36     @IntoMap
37     @ClassKey(SideFpsProgressBarViewBinder::class)
38     fun bindSideFpsProgressBarViewBinder(viewBinder: SideFpsProgressBarViewBinder): CoreStartable
39 
40     @Binds
41     fun keyguardSurfaceBehindRepository(
42         impl: KeyguardSurfaceBehindRepositoryImpl
43     ): KeyguardSurfaceBehindRepository
44 
45     @Binds
46     fun keyguardTransitionRepository(
47         impl: KeyguardTransitionRepositoryImpl
48     ): KeyguardTransitionRepository
49 
50     @Binds
51     fun lightRevealScrimRepository(impl: LightRevealScrimRepositoryImpl): LightRevealScrimRepository
52 
53     @Binds fun devicePostureRepository(impl: DevicePostureRepositoryImpl): DevicePostureRepository
54 
55     @Binds
56     fun biometricSettingsRepository(
57         impl: BiometricSettingsRepositoryImpl
58     ): BiometricSettingsRepository
59 
60     @Binds
61     fun deviceEntryFingerprintAuthRepository(
62         impl: DeviceEntryFingerprintAuthRepositoryImpl
63     ): DeviceEntryFingerprintAuthRepository
64 
65     @Binds
66     fun keyguardBouncerRepository(impl: KeyguardBouncerRepositoryImpl): KeyguardBouncerRepository
67 
68     @Binds
69     fun bouncerMessageRepository(impl: BouncerMessageRepositoryImpl): BouncerMessageRepository
70 
71     @Binds
72     @IntoMap
73     @ClassKey(BouncerMessageAuditLogger::class)
74     fun bind(impl: BouncerMessageAuditLogger): CoreStartable
75 
76     @Binds fun trustRepository(impl: TrustRepositoryImpl): TrustRepository
77 
78     @Binds fun keyguardClockRepository(impl: KeyguardClockRepositoryImpl): KeyguardClockRepository
79 
80     @Binds
81     fun keyguardSmartspaceRepository(
82         impl: KeyguardSmartspaceRepositoryImpl
83     ): KeyguardSmartspaceRepository
84 }
85