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