1 /*
2  * Copyright (C) 2021 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.car.statusicon.ui;
18 
19 import com.android.systemui.car.statusicon.StatusIconViewController;
20 import com.android.systemui.car.systembar.element.CarSystemBarElementController;
21 
22 import dagger.Binds;
23 import dagger.Module;
24 import dagger.multibindings.ClassKey;
25 import dagger.multibindings.IntoMap;
26 
27 /**
28  * Dagger injection module for {@link StatusIconViewController}
29  */
30 @Module
31 public abstract class QuickControlsEntryPointsModule {
32 
33     /** Injects BluetoothStatusIconController. */
34     @Binds
35     @IntoMap
36     @ClassKey(BluetoothStatusIconController.class)
bindBluetoothStatusIconController( BluetoothStatusIconController.Factory bluetoothStatusIconController)37     public abstract CarSystemBarElementController.Factory bindBluetoothStatusIconController(
38             BluetoothStatusIconController.Factory bluetoothStatusIconController);
39 
40     /** Injects SignalStatusIconController. */
41     @Binds
42     @IntoMap
43     @ClassKey(SignalStatusIconController.class)
bindSignalStatusIconController( SignalStatusIconController.Factory signalStatusIconController)44     public abstract CarSystemBarElementController.Factory bindSignalStatusIconController(
45             SignalStatusIconController.Factory signalStatusIconController);
46 
47     /** Injects DisplayStatusIconController. */
48     @Binds
49     @IntoMap
50     @ClassKey(DisplayStatusIconController.class)
bindDisplayStatusIconController( DisplayStatusIconController.Factory displayStatusIconController)51     public abstract CarSystemBarElementController.Factory bindDisplayStatusIconController(
52             DisplayStatusIconController.Factory displayStatusIconController);
53 
54     /** Injects LocationStatusIconController. */
55     @Binds
56     @IntoMap
57     @ClassKey(LocationStatusIconController.class)
bindLocationStatusIconController( LocationStatusIconController.Factory locationStatusIconController)58     public abstract CarSystemBarElementController.Factory bindLocationStatusIconController(
59             LocationStatusIconController.Factory locationStatusIconController);
60 
61     /** Injects PhoneCallStatusIconController. */
62     @Binds
63     @IntoMap
64     @ClassKey(PhoneCallStatusIconController.class)
bindPhoneCallStatusIconController( PhoneCallStatusIconController.Factory phoneCallStatusIconController)65     public abstract CarSystemBarElementController.Factory bindPhoneCallStatusIconController(
66             PhoneCallStatusIconController.Factory phoneCallStatusIconController);
67 
68     /** Injects ThemeSwitchStatusIconController. */
69     @Binds
70     @IntoMap
71     @ClassKey(DriveModeStatusIconController.class)
bindDriveModeStatusIconController( DriveModeStatusIconController.Factory driveModeStatusIconController)72     public abstract CarSystemBarElementController.Factory bindDriveModeStatusIconController(
73             DriveModeStatusIconController.Factory driveModeStatusIconController);
74 
75     /** Injects MediaVolumeStatusIconController. */
76     @Binds
77     @IntoMap
78     @ClassKey(MediaVolumeStatusIconController.class)
bindMediaVolumeStatusIconController( MediaVolumeStatusIconController.Factory mediaVolumeStatusIconController)79     public abstract CarSystemBarElementController.Factory bindMediaVolumeStatusIconController(
80             MediaVolumeStatusIconController.Factory mediaVolumeStatusIconController);
81 }
82