• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
17 package com.android.systemui.tv.dagger
18 
19 import com.android.systemui.CoreStartable
20 import com.android.systemui.SliceBroadcastRelayHandler
21 import com.android.systemui.accessibility.Magnification
22 import com.android.systemui.dagger.qualifiers.PerUser
23 import com.android.systemui.globalactions.GlobalActionsComponent
24 import com.android.systemui.keyboard.KeyboardUI
25 import com.android.systemui.media.RingtonePlayer
26 import com.android.systemui.media.dialog.MediaOutputSwitcherDialogUI
27 import com.android.systemui.media.systemsounds.HomeSoundEffectController
28 import com.android.systemui.shortcut.ShortcutKeyDispatcher
29 import com.android.systemui.statusbar.notification.InstantAppNotifier
30 import com.android.systemui.theme.ThemeOverlayController
31 import com.android.systemui.toast.ToastUI
32 import com.android.systemui.tv.notifications.TvNotificationHandler
33 import com.android.systemui.tv.notifications.TvNotificationPanel
34 import com.android.systemui.tv.statusbar.TvStatusBar
35 import com.android.systemui.tv.vpn.VpnStatusObserver
36 import com.android.systemui.usb.StorageNotification
37 import com.android.systemui.util.NotificationChannels
38 import com.android.systemui.wmshell.WMShell
39 import dagger.Binds
40 import dagger.Module
41 import dagger.multibindings.ClassKey
42 import dagger.multibindings.IntoMap
43 
44 /**
45  * DEPRECATED: DO NOT ADD THINGS TO THIS FILE.
46  *
47  * Add a feature specific dagger module for what you are working on. Bind your CoreStartable there.
48  * Include that module where it is needed.
49  *
50  * @deprecated
51  */
52 @Module
53 abstract class TVSystemUICoreStartableModule {
54     /** Inject into GlobalActionsComponent.  */
55     @Binds
56     @IntoMap
57     @ClassKey(GlobalActionsComponent::class)
bindGlobalActionsComponentnull58     abstract fun bindGlobalActionsComponent(sysui: GlobalActionsComponent): CoreStartable
59 
60     /** Inject into HomeSoundEffectController.  */
61     @Binds
62     @IntoMap
63     @ClassKey(HomeSoundEffectController::class)
64     abstract fun bindHomeSoundEffectController(sysui: HomeSoundEffectController): CoreStartable
65 
66     /** Inject into InstantAppNotifier.  */
67     @Binds
68     @IntoMap
69     @ClassKey(InstantAppNotifier::class)
70     abstract fun bindInstantAppNotifier(sysui: InstantAppNotifier): CoreStartable
71 
72     /** Inject into KeyboardUI.  */
73     @Binds
74     @IntoMap
75     @ClassKey(KeyboardUI::class)
76     abstract fun bindKeyboardUI(sysui: KeyboardUI): CoreStartable
77 
78     /** Inject into MediaOutputSwitcherDialogUI.  */
79     @Binds
80     @IntoMap
81     @ClassKey(MediaOutputSwitcherDialogUI::class)
82     abstract fun bindMediaOutputSwitcherDialogUI(sysui: MediaOutputSwitcherDialogUI): CoreStartable
83 
84     /** Inject into NotificationChannels.  */
85     @Binds
86     @IntoMap
87     @ClassKey(NotificationChannels::class)
88     @PerUser
89     abstract fun bindNotificationChannels(sysui: NotificationChannels): CoreStartable
90 
91     /** Inject into RingtonePlayer.  */
92     @Binds
93     @IntoMap
94     @ClassKey(RingtonePlayer::class)
95     abstract fun bind(sysui: RingtonePlayer): CoreStartable
96 
97     /** Inject into ShortcutKeyDispatcher.  */
98     @Binds
99     @IntoMap
100     @ClassKey(ShortcutKeyDispatcher::class)
101     abstract fun bindShortcutKeyDispatcher(sysui: ShortcutKeyDispatcher): CoreStartable
102 
103     /** Inject into SliceBroadcastRelayHandler.  */
104     @Binds
105     @IntoMap
106     @ClassKey(SliceBroadcastRelayHandler::class)
107     abstract fun bindSliceBroadcastRelayHandler(sysui: SliceBroadcastRelayHandler): CoreStartable
108 
109     /** Inject into StorageNotification.  */
110     @Binds
111     @IntoMap
112     @ClassKey(StorageNotification::class)
113     abstract fun bindStorageNotification(sysui: StorageNotification): CoreStartable
114 
115     /** Inject into ThemeOverlayController.  */
116     @Binds
117     @IntoMap
118     @ClassKey(ThemeOverlayController::class)
119     abstract fun bindThemeOverlayController(sysui: ThemeOverlayController): CoreStartable
120 
121     /** Inject into ToastUI.  */
122     @Binds
123     @IntoMap
124     @ClassKey(ToastUI::class)
125     abstract fun bindToastUI(service: ToastUI): CoreStartable
126 
127     /** Inject into TvNotificationHandler.  */
128     @Binds
129     @IntoMap
130     @ClassKey(TvNotificationHandler::class)
131     abstract fun bindTvNotificationHandler(sysui: TvNotificationHandler): CoreStartable
132 
133     /** Inject into TvNotificationPanel.  */
134     @Binds
135     @IntoMap
136     @ClassKey(TvNotificationPanel::class)
137     abstract fun bindTvNotificationPanel(sysui: TvNotificationPanel): CoreStartable
138 
139     /** Inject into TvStatusBar.  */
140     @Binds
141     @IntoMap
142     @ClassKey(TvStatusBar::class)
143     abstract fun bindTvStatusBar(sysui: TvStatusBar): CoreStartable
144 
145     /** Inject into VpnStatusObserver.  */
146     @Binds
147     @IntoMap
148     @ClassKey(VpnStatusObserver::class)
149     abstract fun bindVpnStatusObserver(sysui: VpnStatusObserver): CoreStartable
150 
151     /** Inject into Magnification.  */
152     @Binds
153     @IntoMap
154     @ClassKey(Magnification::class)
155     abstract fun bindMagnification(sysui: Magnification): CoreStartable
156 
157     /** Inject into WMShell.  */
158     @Binds
159     @IntoMap
160     @ClassKey(WMShell::class)
161     abstract fun bindWMShell(sysui: WMShell): CoreStartable
162 }
163