• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2020 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.policy.dagger;
18 
19 import android.content.Context;
20 import android.content.res.Resources;
21 import android.os.UserManager;
22 
23 import com.android.internal.R;
24 import com.android.settingslib.devicestate.DeviceStateRotationLockSettingsManager;
25 import com.android.systemui.dagger.SysUISingleton;
26 import com.android.systemui.dagger.qualifiers.Main;
27 import com.android.systemui.settings.UserTracker;
28 import com.android.systemui.statusbar.connectivity.AccessPointController;
29 import com.android.systemui.statusbar.connectivity.AccessPointControllerImpl;
30 import com.android.systemui.statusbar.connectivity.NetworkController;
31 import com.android.systemui.statusbar.connectivity.NetworkControllerImpl;
32 import com.android.systemui.statusbar.phone.ConfigurationControllerImpl;
33 import com.android.systemui.statusbar.policy.BluetoothController;
34 import com.android.systemui.statusbar.policy.BluetoothControllerImpl;
35 import com.android.systemui.statusbar.policy.CastController;
36 import com.android.systemui.statusbar.policy.CastControllerImpl;
37 import com.android.systemui.statusbar.policy.ConfigurationController;
38 import com.android.systemui.statusbar.policy.DataSaverController;
39 import com.android.systemui.statusbar.policy.DeviceControlsController;
40 import com.android.systemui.statusbar.policy.DeviceControlsControllerImpl;
41 import com.android.systemui.statusbar.policy.DevicePostureController;
42 import com.android.systemui.statusbar.policy.DevicePostureControllerImpl;
43 import com.android.systemui.statusbar.policy.ExtensionController;
44 import com.android.systemui.statusbar.policy.ExtensionControllerImpl;
45 import com.android.systemui.statusbar.policy.FlashlightController;
46 import com.android.systemui.statusbar.policy.FlashlightControllerImpl;
47 import com.android.systemui.statusbar.policy.HotspotController;
48 import com.android.systemui.statusbar.policy.HotspotControllerImpl;
49 import com.android.systemui.statusbar.policy.KeyguardStateController;
50 import com.android.systemui.statusbar.policy.KeyguardStateControllerImpl;
51 import com.android.systemui.statusbar.policy.LocationController;
52 import com.android.systemui.statusbar.policy.LocationControllerImpl;
53 import com.android.systemui.statusbar.policy.NextAlarmController;
54 import com.android.systemui.statusbar.policy.NextAlarmControllerImpl;
55 import com.android.systemui.statusbar.policy.RotationLockController;
56 import com.android.systemui.statusbar.policy.RotationLockControllerImpl;
57 import com.android.systemui.statusbar.policy.SecurityController;
58 import com.android.systemui.statusbar.policy.SecurityControllerImpl;
59 import com.android.systemui.statusbar.policy.UserInfoController;
60 import com.android.systemui.statusbar.policy.UserInfoControllerImpl;
61 import com.android.systemui.statusbar.policy.WalletController;
62 import com.android.systemui.statusbar.policy.WalletControllerImpl;
63 import com.android.systemui.statusbar.policy.ZenModeController;
64 import com.android.systemui.statusbar.policy.ZenModeControllerImpl;
65 
66 import java.util.concurrent.Executor;
67 
68 import javax.inject.Named;
69 
70 import dagger.Binds;
71 import dagger.Module;
72 import dagger.Provides;
73 
74 
75 /** Dagger Module for code in the statusbar.policy package. */
76 @Module
77 public interface StatusBarPolicyModule {
78 
79     String DEVICE_STATE_ROTATION_LOCK_DEFAULTS = "DEVICE_STATE_ROTATION_LOCK_DEFAULTS";
80 
81     /** */
82     @Binds
provideBluetoothController(BluetoothControllerImpl controllerImpl)83     BluetoothController provideBluetoothController(BluetoothControllerImpl controllerImpl);
84 
85     /** */
86     @Binds
provideCastController(CastControllerImpl controllerImpl)87     CastController provideCastController(CastControllerImpl controllerImpl);
88 
89     /** */
90     @Binds
bindConfigurationController(ConfigurationControllerImpl impl)91     ConfigurationController bindConfigurationController(ConfigurationControllerImpl impl);
92 
93     /** */
94     @Binds
provideExtensionController(ExtensionControllerImpl controllerImpl)95     ExtensionController provideExtensionController(ExtensionControllerImpl controllerImpl);
96 
97     /** */
98     @Binds
provideFlashlightController(FlashlightControllerImpl controllerImpl)99     FlashlightController provideFlashlightController(FlashlightControllerImpl controllerImpl);
100 
101     /** */
102     @Binds
provideKeyguardMonitor(KeyguardStateControllerImpl controllerImpl)103     KeyguardStateController provideKeyguardMonitor(KeyguardStateControllerImpl controllerImpl);
104 
105     /** */
106     @Binds
provideHotspotController(HotspotControllerImpl controllerImpl)107     HotspotController provideHotspotController(HotspotControllerImpl controllerImpl);
108 
109     /** */
110     @Binds
provideLocationController(LocationControllerImpl controllerImpl)111     LocationController provideLocationController(LocationControllerImpl controllerImpl);
112 
113     /** */
114     @Binds
provideNetworkController(NetworkControllerImpl controllerImpl)115     NetworkController provideNetworkController(NetworkControllerImpl controllerImpl);
116 
117     /** */
118     @Binds
provideNextAlarmController(NextAlarmControllerImpl controllerImpl)119     NextAlarmController provideNextAlarmController(NextAlarmControllerImpl controllerImpl);
120 
121     /** */
122     @Binds
provideRotationLockController(RotationLockControllerImpl controllerImpl)123     RotationLockController provideRotationLockController(RotationLockControllerImpl controllerImpl);
124 
125     /** */
126     @Binds
provideSecurityController(SecurityControllerImpl controllerImpl)127     SecurityController provideSecurityController(SecurityControllerImpl controllerImpl);
128 
129     /** */
130     @Binds
provideUserInfoContrller(UserInfoControllerImpl controllerImpl)131     UserInfoController provideUserInfoContrller(UserInfoControllerImpl controllerImpl);
132 
133     /** */
134     @Binds
provideZenModeController(ZenModeControllerImpl controllerImpl)135     ZenModeController provideZenModeController(ZenModeControllerImpl controllerImpl);
136 
137     /** */
138     @Binds
provideDeviceControlsController( DeviceControlsControllerImpl controllerImpl)139     DeviceControlsController provideDeviceControlsController(
140             DeviceControlsControllerImpl controllerImpl);
141 
142     /** */
143     @Binds
provideWalletController(WalletControllerImpl controllerImpl)144     WalletController provideWalletController(WalletControllerImpl controllerImpl);
145 
146     /** */
147     @Binds
provideAccessPointController( AccessPointControllerImpl accessPointControllerImpl)148     AccessPointController provideAccessPointController(
149             AccessPointControllerImpl accessPointControllerImpl);
150 
151     /** */
152     @Binds
provideDevicePostureController( DevicePostureControllerImpl devicePostureControllerImpl)153     DevicePostureController provideDevicePostureController(
154             DevicePostureControllerImpl devicePostureControllerImpl);
155 
156     /** */
157     @SysUISingleton
158     @Provides
provideAccessPointControllerImpl( UserManager userManager, UserTracker userTracker, @Main Executor mainExecutor, AccessPointControllerImpl.WifiPickerTrackerFactory wifiPickerTrackerFactory )159     static AccessPointControllerImpl  provideAccessPointControllerImpl(
160             UserManager userManager,
161             UserTracker userTracker,
162             @Main Executor mainExecutor,
163             AccessPointControllerImpl.WifiPickerTrackerFactory wifiPickerTrackerFactory
164     ) {
165         AccessPointControllerImpl controller = new AccessPointControllerImpl(
166                 userManager,
167                 userTracker,
168                 mainExecutor,
169                 wifiPickerTrackerFactory
170         );
171         controller.init();
172         return controller;
173     }
174 
175     /** Returns a singleton instance of DeviceStateRotationLockSettingsManager */
176     @SysUISingleton
177     @Provides
provideAutoRotateSettingsManager( Context context)178     static DeviceStateRotationLockSettingsManager provideAutoRotateSettingsManager(
179             Context context) {
180         return DeviceStateRotationLockSettingsManager.getInstance(context);
181     }
182 
183     /**
184      * Default values for per-device state rotation lock settings.
185      */
186     @Provides
187     @Named(DEVICE_STATE_ROTATION_LOCK_DEFAULTS)
providesDeviceStateRotationLockDefaults(@ain Resources resources)188     static String[] providesDeviceStateRotationLockDefaults(@Main Resources resources) {
189         return resources.getStringArray(
190                 R.array.config_perDeviceStateRotationLockDefaults);
191     }
192 
193     /** */
194     @Provides
195     @SysUISingleton
provideDataSaverController(NetworkController networkController)196     static DataSaverController provideDataSaverController(NetworkController networkController) {
197         return networkController.getDataSaverController();
198     }
199 }
200