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.statusbar.dagger
18 
19 import com.android.systemui.CoreStartable
20 import com.android.systemui.statusbar.data.StatusBarDataLayerModule
21 import com.android.systemui.statusbar.phone.LightBarController
22 import com.android.systemui.statusbar.phone.ongoingcall.OngoingCallController
23 import com.android.systemui.statusbar.ui.SystemBarUtilsProxyImpl
24 import dagger.Binds
25 import dagger.Module
26 import dagger.multibindings.ClassKey
27 import dagger.multibindings.IntoMap
28 
29 /**
30  * A module for **only** classes related to the status bar **UI element**. This module specifically
31  * should **not** include:
32  * - Classes in the `statusbar` package that are unrelated to the status bar UI.
33  * - Status bar classes that are already provided by other modules
34  *   ([com.android.systemui.statusbar.pipeline.dagger.StatusBarPipelineModule],
35  *   [com.android.systemui.statusbar.policy.dagger.StatusBarPolicyModule], etc.).
36  */
37 @Module(includes = [StatusBarDataLayerModule::class, SystemBarUtilsProxyImpl.Module::class])
38 abstract class StatusBarModule {
39     @Binds
40     @IntoMap
41     @ClassKey(OngoingCallController::class)
bindOngoingCallControllernull42     abstract fun bindOngoingCallController(impl: OngoingCallController): CoreStartable
43 
44     @Binds
45     @IntoMap
46     @ClassKey(LightBarController::class)
47     abstract fun bindLightBarController(impl: LightBarController): CoreStartable
48 }
49