xref: /aosp_15_r20/frameworks/base/packages/SystemUI/tests/utils/src/com/android/systemui/TestMocksModule.kt (revision d57664e9bc4670b3ecf6748a746a57c557b6bc9e)
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
17 
18 import android.app.ActivityManager
19 import android.app.DreamManager
20 import android.app.admin.DevicePolicyManager
21 import android.app.trust.TrustManager
22 import android.hardware.fingerprint.FingerprintManager
23 import android.os.UserManager
24 import android.service.notification.NotificationListenerService
25 import android.util.DisplayMetrics
26 import android.view.LayoutInflater
27 import com.android.internal.logging.MetricsLogger
28 import com.android.internal.statusbar.IStatusBarService
29 import com.android.internal.widget.LockPatternUtils
30 import com.android.keyguard.KeyguardSecurityModel
31 import com.android.keyguard.KeyguardUpdateMonitor
32 import com.android.keyguard.KeyguardViewController
33 import com.android.systemui.animation.DialogTransitionAnimator
34 import com.android.systemui.biometrics.AuthController
35 import com.android.systemui.bouncer.domain.interactor.PrimaryBouncerInteractor
36 import com.android.systemui.camera.CameraGestureHelper
37 import com.android.systemui.communal.domain.interactor.CommunalInteractor
38 import com.android.systemui.communal.domain.interactor.CommunalSceneInteractor
39 import com.android.systemui.communal.domain.interactor.CommunalSettingsInteractor
40 import com.android.systemui.demomode.DemoModeController
41 import com.android.systemui.dump.DumpManager
42 import com.android.systemui.keyguard.ScreenLifecycle
43 import com.android.systemui.keyguard.WakefulnessLifecycle
44 import com.android.systemui.keyguard.ui.transitions.DeviceEntryIconTransition
45 import com.android.systemui.log.LogBuffer
46 import com.android.systemui.log.dagger.BiometricLog
47 import com.android.systemui.log.dagger.BroadcastDispatcherLog
48 import com.android.systemui.log.dagger.FaceAuthLog
49 import com.android.systemui.log.dagger.SceneFrameworkLog
50 import com.android.systemui.media.controls.ui.controller.MediaHierarchyManager
51 import com.android.systemui.model.SysUiState
52 import com.android.systemui.plugins.ActivityStarter
53 import com.android.systemui.plugins.DarkIconDispatcher
54 import com.android.systemui.plugins.statusbar.StatusBarStateController
55 import com.android.systemui.scene.shared.logger.SceneLogger
56 import com.android.systemui.shared.system.ActivityManagerWrapper
57 import com.android.systemui.statusbar.LockscreenShadeTransitionController
58 import com.android.systemui.statusbar.NotificationListener
59 import com.android.systemui.statusbar.NotificationLockscreenUserManager
60 import com.android.systemui.statusbar.NotificationMediaManager
61 import com.android.systemui.statusbar.NotificationShadeDepthController
62 import com.android.systemui.statusbar.SysuiStatusBarStateController
63 import com.android.systemui.statusbar.notification.NotificationWakeUpCoordinator
64 import com.android.systemui.statusbar.notification.collection.NotifCollection
65 import com.android.systemui.statusbar.notification.headsup.HeadsUpManager
66 import com.android.systemui.statusbar.notification.logging.NotificationPanelLogger
67 import com.android.systemui.statusbar.notification.stack.AmbientState
68 import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayoutController
69 import com.android.systemui.statusbar.notification.stack.NotificationStackSizeCalculator
70 import com.android.systemui.statusbar.notification.stack.ui.view.NotificationStatsLogger
71 import com.android.systemui.statusbar.phone.DozeParameters
72 import com.android.systemui.statusbar.phone.KeyguardBypassController
73 import com.android.systemui.statusbar.phone.LSShadeTransitionLogger
74 import com.android.systemui.statusbar.phone.ScreenOffAnimationController
75 import com.android.systemui.statusbar.phone.ScrimController
76 import com.android.systemui.statusbar.phone.SystemUIDialogManager
77 import com.android.systemui.statusbar.policy.DeviceProvisionedController
78 import com.android.systemui.statusbar.policy.KeyguardStateController
79 import com.android.systemui.statusbar.policy.ZenModeController
80 import com.android.systemui.statusbar.window.StatusBarWindowController
81 import com.android.systemui.unfold.UnfoldTransitionProgressProvider
82 import com.android.systemui.util.mockito.mock
83 import com.android.systemui.util.settings.GlobalSettings
84 import com.android.wm.shell.bubbles.Bubbles
85 import dagger.Binds
86 import dagger.Module
87 import dagger.Provides
88 import java.util.Optional
89 
90 @Module(includes = [TestMocksModule.Bindings::class])
91 data class TestMocksModule(
92     @get:Provides val activityStarter: ActivityStarter = mock(),
93     @get:Provides val activityManagerWrapper: ActivityManagerWrapper = mock(),
94     @get:Provides val ambientState: AmbientState = mock(),
95     @get:Provides val authController: AuthController = mock(),
96     @get:Provides val bubbles: Optional<Bubbles> = Optional.of(mock()),
97     @get:Provides val darkIconDispatcher: DarkIconDispatcher = mock(),
98     @get:Provides val demoModeController: DemoModeController = mock(),
99     @get:Provides val deviceProvisionedController: DeviceProvisionedController = mock(),
100     @get:Provides val dozeParameters: DozeParameters = mock(),
101     @get:Provides val dreamManager: DreamManager = mock(),
102     @get:Provides val dumpManager: DumpManager = mock(),
103     @get:Provides val fingerprintManager: FingerprintManager = mock(),
104     @get:Provides val headsUpManager: HeadsUpManager = mock(),
105     @get:Provides val guestResumeSessionReceiver: GuestResumeSessionReceiver = mock(),
106     @get:Provides val keyguardBypassController: KeyguardBypassController = mock(),
107     @get:Provides val keyguardSecurityModel: KeyguardSecurityModel = mock(),
108     @get:Provides val keyguardUpdateMonitor: KeyguardUpdateMonitor = mock(),
109     @get:Provides val layoutInflater: LayoutInflater = mock(),
110     @get:Provides
111     val lockscreenShadeTransitionController: LockscreenShadeTransitionController = mock(),
112     @get:Provides val mediaHierarchyManager: MediaHierarchyManager = mock(),
113     @get:Provides val notifCollection: NotifCollection = mock(),
114     @get:Provides val notificationListLogger: NotificationStatsLogger = mock(),
115     @get:Provides val notificationListener: NotificationListener = mock(),
116     @get:Provides val notificationLockscreenUserManager: NotificationLockscreenUserManager = mock(),
117     @get:Provides val notificationPanelLogger: NotificationPanelLogger = mock(),
118     @get:Provides val notificationMediaManager: NotificationMediaManager = mock(),
119     @get:Provides val notificationShadeDepthController: NotificationShadeDepthController = mock(),
120     @get:Provides
121     val notificationStackScrollLayoutController: NotificationStackScrollLayoutController = mock(),
122     @get:Provides val notificationStackSizeCalculator: NotificationStackSizeCalculator = mock(),
123     @get:Provides val notificationWakeUpCoordinator: NotificationWakeUpCoordinator = mock(),
124     @get:Provides val screenLifecycle: ScreenLifecycle = mock(),
125     @get:Provides val screenOffAnimationController: ScreenOffAnimationController = mock(),
126     @get:Provides val scrimController: ScrimController = mock(),
127     @get:Provides val statusBarStateController: SysuiStatusBarStateController = mock(),
128     @get:Provides val statusBarWindowController: StatusBarWindowController = mock(),
129     @get:Provides val wakefulnessLifecycle: WakefulnessLifecycle = mock(),
130     @get:Provides val keyguardViewController: KeyguardViewController = mock(),
131     @get:Provides val dialogTransitionAnimator: DialogTransitionAnimator = mock(),
132     @get:Provides val sysuiState: SysUiState = mock(),
133     @get:Provides
134     val unfoldTransitionProgressProvider: Optional<UnfoldTransitionProgressProvider> =
135         Optional.empty(),
136     @get:Provides val zenModeController: ZenModeController = mock(),
137     @get:Provides val systemUIDialogManager: SystemUIDialogManager = mock(),
138     @get:Provides val deviceEntryIconTransitions: Set<DeviceEntryIconTransition> = emptySet(),
139     @get:Provides val communalInteractor: CommunalInteractor = mock(),
140     @get:Provides val communalSceneInteractor: CommunalSceneInteractor = mock(),
141     @get:Provides val communalSettingsInteractor: CommunalSettingsInteractor = mock(),
142     @get:Provides val sceneLogger: SceneLogger = mock(),
143     @get:Provides val trustManager: TrustManager = mock(),
144     @get:Provides val primaryBouncerInteractor: PrimaryBouncerInteractor = mock(),
145     @get:Provides val keyguardStateController: KeyguardStateController = mock(),
146     @get:Provides val globalSettings: GlobalSettings = mock(),
147     @get:Provides val cameraGestureHelper: CameraGestureHelper = mock(),
148 
149     // log buffers
150     @get:[Provides BroadcastDispatcherLog]
151     val broadcastDispatcherLogger: LogBuffer = mock(),
152     @get:[Provides SceneFrameworkLog]
153     val sceneLogBuffer: LogBuffer = mock(),
154     @get:[Provides BiometricLog]
155     val biometricLogger: LogBuffer = mock(),
156     @get:[Provides FaceAuthLog]
157     val faceAuthLogger: LogBuffer = mock(),
158     @get:Provides val lsShadeTransitionLogger: LSShadeTransitionLogger = mock(),
159 
160     // framework mocks
161     @get:Provides val activityManager: ActivityManager = mock(),
162     @get:Provides val devicePolicyManager: DevicePolicyManager = mock(),
163     @get:Provides val displayMetrics: DisplayMetrics = mock(),
164     @get:Provides val metricsLogger: MetricsLogger = mock(),
165     @get:Provides val userManager: UserManager = mock(),
166     @get:Provides val lockPatternUtils: LockPatternUtils = mock(),
167 
168     // system server mocks
169     @get:Provides val mockStatusBarService: IStatusBarService = mock(),
170     @get:Provides val mockNotificationListenerService: NotificationListenerService = mock(),
171 ) {
172     @Module
173     interface Bindings {
174         @Binds
bindStatusBarStateControllernull175         fun bindStatusBarStateController(
176             sysuiStatusBarStateController: SysuiStatusBarStateController
177         ): StatusBarStateController
178     }
179 }
180