• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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.go;
18 
19 import com.android.keyguard.KeyguardBiometricLockoutLogger;
20 import com.android.systemui.CoreStartable;
21 import com.android.systemui.LatencyTester;
22 import com.android.systemui.ScreenDecorations;
23 import com.android.systemui.SliceBroadcastRelayHandler;
24 import com.android.systemui.accessibility.SystemActions;
25 import com.android.systemui.accessibility.WindowMagnification;
26 import com.android.systemui.biometrics.AuthController;
27 import com.android.systemui.clipboardoverlay.ClipboardListener;
28 import com.android.systemui.dagger.qualifiers.PerUser;
29 import com.android.systemui.globalactions.GlobalActionsComponent;
30 import com.android.systemui.keyboard.KeyboardUI;
31 import com.android.systemui.keyguard.KeyguardViewMediator;
32 import com.android.systemui.log.SessionTracker;
33 import com.android.systemui.media.RingtonePlayer;
34 import com.android.systemui.power.PowerUI;
35 import com.android.systemui.recents.Recents;
36 import com.android.systemui.shortcut.ShortcutKeyDispatcher;
37 import com.android.systemui.statusbar.notification.InstantAppNotifier;
38 import com.android.systemui.statusbar.phone.LockscreenWallpaper;
39 import com.android.systemui.statusbar.phone.ScrimController;
40 import com.android.systemui.statusbar.phone.StatusBarHeadsUpChangeListener;
41 import com.android.systemui.theme.ThemeOverlayController;
42 import com.android.systemui.toast.ToastUI;
43 import com.android.systemui.usb.StorageNotification;
44 import com.android.systemui.util.NotificationChannels;
45 import com.android.systemui.volume.VolumeUI;
46 import com.android.systemui.wmshell.WMShell;
47 
48 import dagger.Binds;
49 import dagger.Module;
50 import dagger.multibindings.ClassKey;
51 import dagger.multibindings.IntoMap;
52 
53 /**
54  * Collection of {@link CoreStartable}s that should be run on Android Go. This is forked from
55  * {@link com.android.systemui.dagger.SystemUICoreStartableModule}.
56  */
57 @Module
58 abstract class SystemUIGoCoreStartableModule {
59     /** Inject into AuthController. */
60     @Binds
61     @IntoMap
62     @ClassKey(AuthController.class)
bindAuthController(AuthController authController)63     abstract CoreStartable bindAuthController(AuthController authController);
64 
65     /** Inject into ClipboardListener. */
66     @Binds
67     @IntoMap
68     @ClassKey(ClipboardListener.class)
bindClipboardListener(ClipboardListener clipboardListener)69     abstract CoreStartable bindClipboardListener(ClipboardListener clipboardListener);
70 
71     /** Inject into GlobalActionsComponent. */
72     @Binds
73     @IntoMap
74     @ClassKey(GlobalActionsComponent.class)
bindGlobalActionsComponent( GlobalActionsComponent globalActionsComponent)75     abstract CoreStartable bindGlobalActionsComponent(
76             GlobalActionsComponent globalActionsComponent);
77 
78     /** Inject into InstantAppNotifier. */
79     @Binds
80     @IntoMap
81     @ClassKey(InstantAppNotifier.class)
bindInstantAppNotifier(InstantAppNotifier instantAppNotifier)82     abstract CoreStartable bindInstantAppNotifier(InstantAppNotifier instantAppNotifier);
83 
84     /** Inject into KeyboardUI. */
85     @Binds
86     @IntoMap
87     @ClassKey(KeyboardUI.class)
bindKeyboardUI(KeyboardUI keyboardUI)88     abstract CoreStartable bindKeyboardUI(KeyboardUI keyboardUI);
89 
90     /** Inject into KeyguardBiometricLockoutLogger */
91     @Binds
92     @IntoMap
93     @ClassKey(KeyguardBiometricLockoutLogger.class)
bindKeyguardBiometricLockoutLogger( KeyguardBiometricLockoutLogger keyguardBiometricLockoutLogger)94     abstract CoreStartable bindKeyguardBiometricLockoutLogger(
95             KeyguardBiometricLockoutLogger keyguardBiometricLockoutLogger);
96 
97     /** Inject into KeyguardViewMediator. */
98     @Binds
99     @IntoMap
100     @ClassKey(KeyguardViewMediator.class)
bindKeyguardViewMediator(KeyguardViewMediator keyguardViewMediator)101     abstract CoreStartable bindKeyguardViewMediator(KeyguardViewMediator keyguardViewMediator);
102 
103     /** Inject into LatencyTests. */
104     @Binds
105     @IntoMap
106     @ClassKey(LatencyTester.class)
bindLatencyTester(LatencyTester latencyTester)107     abstract CoreStartable bindLatencyTester(LatencyTester latencyTester);
108 
109     /** Inject into NotificationChannels. */
110     @Binds
111     @IntoMap
112     @ClassKey(NotificationChannels.class)
113     @PerUser
bindNotificationChannels(NotificationChannels notificationChannels)114     abstract CoreStartable bindNotificationChannels(NotificationChannels notificationChannels);
115 
116     /** Inject into PowerUI. */
117     @Binds
118     @IntoMap
119     @ClassKey(PowerUI.class)
bindPowerUI(PowerUI powerUI)120     abstract CoreStartable bindPowerUI(PowerUI powerUI);
121 
122     /** Inject into Recents. */
123     @Binds
124     @IntoMap
125     @ClassKey(Recents.class)
bindRecents(Recents recents)126     abstract CoreStartable bindRecents(Recents recents);
127 
128     /** Inject into RingtonePlayer. */
129     @Binds
130     @IntoMap
131     @ClassKey(RingtonePlayer.class)
bind(RingtonePlayer ringtonePlayer)132     abstract CoreStartable bind(RingtonePlayer ringtonePlayer);
133 
134     /** Inject into ScreenDecorations. */
135     @Binds
136     @IntoMap
137     @ClassKey(ScreenDecorations.class)
bindScreenDecorations(ScreenDecorations screenDecorations)138     abstract CoreStartable bindScreenDecorations(ScreenDecorations screenDecorations);
139 
140     /** Inject into SessionTracker. */
141     @Binds
142     @IntoMap
143     @ClassKey(SessionTracker.class)
bindSessionTracker(SessionTracker service)144     abstract CoreStartable bindSessionTracker(SessionTracker service);
145 
146     /** Inject into ShortcutKeyDispatcher. */
147     @Binds
148     @IntoMap
149     @ClassKey(ShortcutKeyDispatcher.class)
bindShortcutKeyDispatcher(ShortcutKeyDispatcher shortcutKeyDispatcher)150     abstract CoreStartable bindShortcutKeyDispatcher(ShortcutKeyDispatcher shortcutKeyDispatcher);
151 
152     /** Inject into SliceBroadcastRelayHandler. */
153     @Binds
154     @IntoMap
155     @ClassKey(SliceBroadcastRelayHandler.class)
bindSliceBroadcastRelayHandler( SliceBroadcastRelayHandler sliceBroadcastRelayHandler)156     abstract CoreStartable bindSliceBroadcastRelayHandler(
157             SliceBroadcastRelayHandler sliceBroadcastRelayHandler);
158 
159     /** Inject into StorageNotification. */
160     @Binds
161     @IntoMap
162     @ClassKey(StorageNotification.class)
bindStorageNotification(StorageNotification storageNotification)163     abstract CoreStartable bindStorageNotification(StorageNotification storageNotification);
164 
165     /** Inject into SystemActions. */
166     @Binds
167     @IntoMap
168     @ClassKey(SystemActions.class)
bindSystemActions(SystemActions systemActions)169     abstract CoreStartable bindSystemActions(SystemActions systemActions);
170 
171     /** Inject into ThemeOverlayController. */
172     @Binds
173     @IntoMap
174     @ClassKey(ThemeOverlayController.class)
bindThemeOverlayController( ThemeOverlayController themeOverlayController)175     abstract CoreStartable bindThemeOverlayController(
176             ThemeOverlayController themeOverlayController);
177 
178     /** Inject into ToastUI. */
179     @Binds
180     @IntoMap
181     @ClassKey(ToastUI.class)
bindToastUI(ToastUI toastUi)182     abstract CoreStartable bindToastUI(ToastUI toastUi);
183 
184     /** Inject into VolumeUI. */
185     @Binds
186     @IntoMap
187     @ClassKey(VolumeUI.class)
bindVolumeUI(VolumeUI volumeUi)188     abstract CoreStartable bindVolumeUI(VolumeUI volumeUi);
189 
190     /** Inject into WindowMagnification. */
191     @Binds
192     @IntoMap
193     @ClassKey(WindowMagnification.class)
bindWindowMagnification(WindowMagnification windowMagnification)194     abstract CoreStartable bindWindowMagnification(WindowMagnification windowMagnification);
195 
196     /** Inject into WMShell. */
197     @Binds
198     @IntoMap
199     @ClassKey(WMShell.class)
bindWMShell(WMShell wmShell)200     abstract CoreStartable bindWMShell(WMShell wmShell);
201 
202     /** Inject into LocskcreenWallpaper. */
203     @Binds
204     @IntoMap
205     @ClassKey(LockscreenWallpaper.class)
bindLockscreenWallpaper(LockscreenWallpaper lockscreenWallpaper)206     abstract CoreStartable bindLockscreenWallpaper(LockscreenWallpaper lockscreenWallpaper);
207 
208     /** Inject into ScrimController. */
209     @Binds
210     @IntoMap
211     @ClassKey(ScrimController.class)
bindScrimController(ScrimController scrimController)212     abstract CoreStartable bindScrimController(ScrimController scrimController);
213 
214     @Binds
215     @IntoMap
216     @ClassKey(StatusBarHeadsUpChangeListener.class)
bindStatusBarHeadsUpChangeListener(StatusBarHeadsUpChangeListener impl)217     abstract CoreStartable bindStatusBarHeadsUpChangeListener(StatusBarHeadsUpChangeListener impl);
218 }
219