1 /* 2 * Copyright (C) 2019 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.dagger; 18 19 import android.app.Activity; 20 21 import com.android.systemui.ForegroundServicesDialog; 22 import com.android.systemui.hdmi.HdmiCecSetMenuLanguageActivity; 23 import com.android.systemui.keyguard.WorkLockActivity; 24 import com.android.systemui.people.PeopleSpaceActivity; 25 import com.android.systemui.people.widget.LaunchConversationActivity; 26 import com.android.systemui.screenshot.LongScreenshotActivity; 27 import com.android.systemui.sensorprivacy.SensorUseStartedActivity; 28 import com.android.systemui.sensorprivacy.television.TvUnblockSensorActivity; 29 import com.android.systemui.settings.brightness.BrightnessDialog; 30 import com.android.systemui.statusbar.tv.notifications.TvNotificationPanelActivity; 31 import com.android.systemui.tuner.TunerActivity; 32 import com.android.systemui.usb.UsbAccessoryUriActivity; 33 import com.android.systemui.usb.UsbConfirmActivity; 34 import com.android.systemui.usb.UsbDebuggingActivity; 35 import com.android.systemui.usb.UsbDebuggingSecondaryUserActivity; 36 import com.android.systemui.usb.UsbPermissionActivity; 37 import com.android.systemui.user.CreateUserActivity; 38 39 import dagger.Binds; 40 import dagger.Module; 41 import dagger.multibindings.ClassKey; 42 import dagger.multibindings.IntoMap; 43 44 /** 45 * Activities that are injectable should go here. 46 */ 47 @Module 48 public abstract class DefaultActivityBinder { 49 /** Inject into TunerActivity. */ 50 @Binds 51 @IntoMap 52 @ClassKey(TunerActivity.class) bindTunerActivity(TunerActivity activity)53 public abstract Activity bindTunerActivity(TunerActivity activity); 54 55 /** Inject into ForegroundServicesDialog. */ 56 @Binds 57 @IntoMap 58 @ClassKey(ForegroundServicesDialog.class) bindForegroundServicesDialog(ForegroundServicesDialog activity)59 public abstract Activity bindForegroundServicesDialog(ForegroundServicesDialog activity); 60 61 /** Inject into WorkLockActivity. */ 62 @Binds 63 @IntoMap 64 @ClassKey(WorkLockActivity.class) bindWorkLockActivity(WorkLockActivity activity)65 public abstract Activity bindWorkLockActivity(WorkLockActivity activity); 66 67 /** Inject into BrightnessDialog. */ 68 @Binds 69 @IntoMap 70 @ClassKey(BrightnessDialog.class) bindBrightnessDialog(BrightnessDialog activity)71 public abstract Activity bindBrightnessDialog(BrightnessDialog activity); 72 73 /** Inject into UsbDebuggingActivity. */ 74 @Binds 75 @IntoMap 76 @ClassKey(UsbDebuggingActivity.class) bindUsbDebuggingActivity(UsbDebuggingActivity activity)77 public abstract Activity bindUsbDebuggingActivity(UsbDebuggingActivity activity); 78 79 /** Inject into UsbDebuggingSecondaryUserActivity. */ 80 @Binds 81 @IntoMap 82 @ClassKey(UsbDebuggingSecondaryUserActivity.class) bindUsbDebuggingSecondaryUserActivity( UsbDebuggingSecondaryUserActivity activity)83 public abstract Activity bindUsbDebuggingSecondaryUserActivity( 84 UsbDebuggingSecondaryUserActivity activity); 85 86 /** Inject into UsbPermissionActivity. */ 87 @Binds 88 @IntoMap 89 @ClassKey(UsbPermissionActivity.class) bindUsbPermissionActivity(UsbPermissionActivity activity)90 public abstract Activity bindUsbPermissionActivity(UsbPermissionActivity activity); 91 92 /** Inject into UsbConfirmActivity. */ 93 @Binds 94 @IntoMap 95 @ClassKey(UsbConfirmActivity.class) bindUsbConfirmActivity(UsbConfirmActivity activity)96 public abstract Activity bindUsbConfirmActivity(UsbConfirmActivity activity); 97 98 /** Inject into UsbAccessoryUriActivity. */ 99 @Binds 100 @IntoMap 101 @ClassKey(UsbAccessoryUriActivity.class) bindUsbAccessoryUriActivity(UsbAccessoryUriActivity activity)102 public abstract Activity bindUsbAccessoryUriActivity(UsbAccessoryUriActivity activity); 103 104 /** Inject into CreateUserActivity. */ 105 @Binds 106 @IntoMap 107 @ClassKey(CreateUserActivity.class) bindCreateUserActivity(CreateUserActivity activity)108 public abstract Activity bindCreateUserActivity(CreateUserActivity activity); 109 110 /** Inject into TvNotificationPanelActivity. */ 111 @Binds 112 @IntoMap 113 @ClassKey(TvNotificationPanelActivity.class) bindTvNotificationPanelActivity(TvNotificationPanelActivity activity)114 public abstract Activity bindTvNotificationPanelActivity(TvNotificationPanelActivity activity); 115 116 /** Inject into PeopleSpaceActivity. */ 117 @Binds 118 @IntoMap 119 @ClassKey(PeopleSpaceActivity.class) bindPeopleSpaceActivity(PeopleSpaceActivity activity)120 public abstract Activity bindPeopleSpaceActivity(PeopleSpaceActivity activity); 121 122 /** Inject into LongScreenshotActivity. */ 123 @Binds 124 @IntoMap 125 @ClassKey(LongScreenshotActivity.class) bindLongScreenshotActivity(LongScreenshotActivity activity)126 public abstract Activity bindLongScreenshotActivity(LongScreenshotActivity activity); 127 128 /** Inject into LaunchConversationActivity. */ 129 @Binds 130 @IntoMap 131 @ClassKey(LaunchConversationActivity.class) bindLaunchConversationActivity(LaunchConversationActivity activity)132 public abstract Activity bindLaunchConversationActivity(LaunchConversationActivity activity); 133 134 /** Inject into SensorUseStartedActivity. */ 135 @Binds 136 @IntoMap 137 @ClassKey(SensorUseStartedActivity.class) bindSensorUseStartedActivity(SensorUseStartedActivity activity)138 public abstract Activity bindSensorUseStartedActivity(SensorUseStartedActivity activity); 139 140 /** Inject into TvUnblockSensorActivity. */ 141 @Binds 142 @IntoMap 143 @ClassKey(TvUnblockSensorActivity.class) bindTvUnblockSensorActivity(TvUnblockSensorActivity activity)144 public abstract Activity bindTvUnblockSensorActivity(TvUnblockSensorActivity activity); 145 146 /** Inject into HdmiCecSetMenuLanguageActivity. */ 147 @Binds 148 @IntoMap 149 @ClassKey(HdmiCecSetMenuLanguageActivity.class) bindHdmiCecSetMenuLanguageActivity( HdmiCecSetMenuLanguageActivity activity)150 public abstract Activity bindHdmiCecSetMenuLanguageActivity( 151 HdmiCecSetMenuLanguageActivity activity); 152 } 153