Create DependencyBinder which is abstract and can tell dagger how to convert directly between interfaces and implementations without requiring code for it. Test: compile (which runs dagger) Change-Id: I7013ee12d37172441e2c70cf2fe36f707975c821
228 lines
7.6 KiB
Java
228 lines
7.6 KiB
Java
/*
|
|
* Copyright (C) 2018 The Android Open Source Project
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
package com.android.systemui;
|
|
|
|
import com.android.systemui.appops.AppOpsController;
|
|
import com.android.systemui.appops.AppOpsControllerImpl;
|
|
import com.android.systemui.plugins.ActivityStarter;
|
|
import com.android.systemui.plugins.VolumeDialogController;
|
|
import com.android.systemui.power.PowerNotificationWarnings;
|
|
import com.android.systemui.power.PowerUI;
|
|
import com.android.systemui.statusbar.NotificationRemoteInputManager;
|
|
import com.android.systemui.statusbar.phone.DarkIconDispatcherImpl;
|
|
import com.android.systemui.statusbar.phone.ManagedProfileController;
|
|
import com.android.systemui.statusbar.phone.ManagedProfileControllerImpl;
|
|
import com.android.systemui.statusbar.phone.StatusBarIconController;
|
|
import com.android.systemui.statusbar.phone.StatusBarIconControllerImpl;
|
|
import com.android.systemui.statusbar.phone.StatusBarRemoteInputCallback;
|
|
import com.android.systemui.statusbar.policy.BatteryController;
|
|
import com.android.systemui.statusbar.policy.BatteryControllerImpl;
|
|
import com.android.systemui.statusbar.policy.BluetoothController;
|
|
import com.android.systemui.statusbar.policy.BluetoothControllerImpl;
|
|
import com.android.systemui.statusbar.policy.CastController;
|
|
import com.android.systemui.statusbar.policy.CastControllerImpl;
|
|
import com.android.systemui.statusbar.policy.DarkIconDispatcher;
|
|
import com.android.systemui.statusbar.policy.DeviceProvisionedController;
|
|
import com.android.systemui.statusbar.policy.DeviceProvisionedControllerImpl;
|
|
import com.android.systemui.statusbar.policy.ExtensionController;
|
|
import com.android.systemui.statusbar.policy.ExtensionControllerImpl;
|
|
import com.android.systemui.statusbar.policy.FlashlightController;
|
|
import com.android.systemui.statusbar.policy.FlashlightControllerImpl;
|
|
import com.android.systemui.statusbar.policy.HotspotController;
|
|
import com.android.systemui.statusbar.policy.HotspotControllerImpl;
|
|
import com.android.systemui.statusbar.policy.IconLogger;
|
|
import com.android.systemui.statusbar.policy.IconLoggerImpl;
|
|
import com.android.systemui.statusbar.policy.KeyguardMonitor;
|
|
import com.android.systemui.statusbar.policy.KeyguardMonitorImpl;
|
|
import com.android.systemui.statusbar.policy.LocationController;
|
|
import com.android.systemui.statusbar.policy.LocationControllerImpl;
|
|
import com.android.systemui.statusbar.policy.NetworkController;
|
|
import com.android.systemui.statusbar.policy.NetworkControllerImpl;
|
|
import com.android.systemui.statusbar.policy.NextAlarmController;
|
|
import com.android.systemui.statusbar.policy.NextAlarmControllerImpl;
|
|
import com.android.systemui.statusbar.policy.RotationLockController;
|
|
import com.android.systemui.statusbar.policy.RotationLockControllerImpl;
|
|
import com.android.systemui.statusbar.policy.SecurityController;
|
|
import com.android.systemui.statusbar.policy.SecurityControllerImpl;
|
|
import com.android.systemui.statusbar.policy.UserInfoController;
|
|
import com.android.systemui.statusbar.policy.UserInfoControllerImpl;
|
|
import com.android.systemui.statusbar.policy.ZenModeController;
|
|
import com.android.systemui.statusbar.policy.ZenModeControllerImpl;
|
|
import com.android.systemui.tuner.TunerService;
|
|
import com.android.systemui.tuner.TunerServiceImpl;
|
|
import com.android.systemui.volume.VolumeDialogControllerImpl;
|
|
|
|
import dagger.Binds;
|
|
import dagger.Module;
|
|
|
|
/**
|
|
* Maps interfaces to implementations for use with Dagger.
|
|
*/
|
|
@Module
|
|
public abstract class DependencyBinder {
|
|
|
|
/**
|
|
*/
|
|
@Binds
|
|
public abstract ActivityStarter provideActivityStarter(ActivityStarterDelegate delegate);
|
|
|
|
/**
|
|
*/
|
|
@Binds
|
|
public abstract BluetoothController provideBluetoothController(
|
|
BluetoothControllerImpl controllerImpl);
|
|
|
|
/**
|
|
*/
|
|
@Binds
|
|
public abstract LocationController provideLocationController(
|
|
LocationControllerImpl controllerImpl);
|
|
|
|
/**
|
|
*/
|
|
@Binds
|
|
public abstract RotationLockController provideRotationLockController(
|
|
RotationLockControllerImpl controllerImpl);
|
|
|
|
/**
|
|
*/
|
|
@Binds
|
|
public abstract NetworkController provideNetworkController(
|
|
NetworkControllerImpl controllerImpl);
|
|
|
|
/**
|
|
*/
|
|
@Binds
|
|
public abstract ZenModeController provideZenModeController(
|
|
ZenModeControllerImpl controllerImpl);
|
|
|
|
/**
|
|
*/
|
|
@Binds
|
|
public abstract HotspotController provideHotspotController(
|
|
HotspotControllerImpl controllerImpl);
|
|
|
|
/**
|
|
*/
|
|
@Binds
|
|
public abstract AppOpsController provideAppOpsController(
|
|
AppOpsControllerImpl controllerImpl);
|
|
|
|
/**
|
|
*/
|
|
@Binds
|
|
public abstract NotificationRemoteInputManager.Callback provideNotificationRemoteInputManager(
|
|
StatusBarRemoteInputCallback callbackImpl);
|
|
|
|
/**
|
|
*/
|
|
@Binds
|
|
public abstract IconLogger provideIconLogger(IconLoggerImpl loggerImpl);
|
|
|
|
/**
|
|
*/
|
|
@Binds
|
|
public abstract CastController provideCastController(CastControllerImpl controllerImpl);
|
|
|
|
/**
|
|
*/
|
|
@Binds
|
|
public abstract FlashlightController provideFlashlightController(
|
|
FlashlightControllerImpl controllerImpl);
|
|
|
|
/**
|
|
*/
|
|
@Binds
|
|
public abstract KeyguardMonitor provideKeyguardMonitor(KeyguardMonitorImpl controllerImpl);
|
|
|
|
/**
|
|
*/
|
|
@Binds
|
|
public abstract UserInfoController provideUserInfoContrller(
|
|
UserInfoControllerImpl controllerImpl);
|
|
|
|
/**
|
|
*/
|
|
@Binds
|
|
public abstract BatteryController provideBatteryController(
|
|
BatteryControllerImpl controllerImpl);
|
|
|
|
/**
|
|
*/
|
|
@Binds
|
|
public abstract ManagedProfileController provideManagedProfileController(
|
|
ManagedProfileControllerImpl controllerImpl);
|
|
|
|
/**
|
|
*/
|
|
@Binds
|
|
public abstract NextAlarmController provideNextAlarmController(
|
|
NextAlarmControllerImpl controllerImpl);
|
|
|
|
/**
|
|
*/
|
|
@Binds
|
|
public abstract DeviceProvisionedController provideDeviceProvisionedController(
|
|
DeviceProvisionedControllerImpl controllerImpl);
|
|
|
|
/**
|
|
*/
|
|
@Binds
|
|
public abstract SecurityController provideSecurityController(
|
|
SecurityControllerImpl controllerImpl);
|
|
|
|
/**
|
|
*/
|
|
@Binds
|
|
public abstract TunerService provideTunerService(TunerServiceImpl controllerImpl);
|
|
|
|
/**
|
|
*/
|
|
@Binds
|
|
public abstract DarkIconDispatcher provideDarkIconDispatcher(
|
|
DarkIconDispatcherImpl controllerImpl);
|
|
|
|
/**
|
|
*/
|
|
@Binds
|
|
public abstract StatusBarIconController provideStatusBarIconController(
|
|
StatusBarIconControllerImpl controllerImpl);
|
|
|
|
/**
|
|
*/
|
|
@Binds
|
|
public abstract ExtensionController provideExtensionController(
|
|
ExtensionControllerImpl controllerImpl);
|
|
|
|
/**
|
|
*/
|
|
@Binds
|
|
public abstract VolumeDialogController provideVolumeDialogController(
|
|
VolumeDialogControllerImpl controllerImpl);
|
|
|
|
/**
|
|
*/
|
|
@Binds
|
|
public abstract ForegroundServiceController provideForegroundService(
|
|
ForegroundServiceControllerImpl controllerImpl);
|
|
|
|
/**
|
|
*/
|
|
@Binds
|
|
public abstract PowerUI.WarningsUI provideWarningsUi(PowerNotificationWarnings controllerImpl);
|
|
}
|