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.contrast.ContrastDialogActivity;
23 import com.android.systemui.hdmi.HdmiCecSetMenuLanguageActivity;
24 import com.android.systemui.keyguard.WorkLockActivity;
25 import com.android.systemui.people.PeopleSpaceActivity;
26 import com.android.systemui.people.widget.LaunchConversationActivity;
27 import com.android.systemui.screenshot.LongScreenshotActivity;
28 import com.android.systemui.screenshot.appclips.AppClipsActivity;
29 import com.android.systemui.screenshot.appclips.AppClipsTrampolineActivity;
30 import com.android.systemui.sensorprivacy.SensorUseStartedActivity;
31 import com.android.systemui.sensorprivacy.television.TvSensorPrivacyChangedActivity;
32 import com.android.systemui.sensorprivacy.television.TvUnblockSensorActivity;
33 import com.android.systemui.settings.brightness.BrightnessDialog;
34 import com.android.systemui.statusbar.tv.notifications.TvNotificationPanelActivity;
35 import com.android.systemui.telephony.ui.activity.SwitchToManagedProfileForCallActivity;
36 import com.android.systemui.tuner.TunerActivity;
37 import com.android.systemui.usb.UsbAccessoryUriActivity;
38 import com.android.systemui.usb.UsbConfirmActivity;
39 import com.android.systemui.usb.UsbDebuggingActivity;
40 import com.android.systemui.usb.UsbDebuggingSecondaryUserActivity;
41 import com.android.systemui.usb.UsbPermissionActivity;
42 import com.android.systemui.user.CreateUserActivity;
43 
44 import dagger.Binds;
45 import dagger.Module;
46 import dagger.multibindings.ClassKey;
47 import dagger.multibindings.IntoMap;
48 
49 /**
50  * Activities that are injectable should go here.
51  */
52 @Module
53 public abstract class DefaultActivityBinder {
54     /** Inject into TunerActivity. */
55     @Binds
56     @IntoMap
57     @ClassKey(TunerActivity.class)
bindTunerActivity(TunerActivity activity)58     public abstract Activity bindTunerActivity(TunerActivity activity);
59 
60     /** Inject into ForegroundServicesDialog. */
61     @Binds
62     @IntoMap
63     @ClassKey(ForegroundServicesDialog.class)
bindForegroundServicesDialog(ForegroundServicesDialog activity)64     public abstract Activity bindForegroundServicesDialog(ForegroundServicesDialog activity);
65 
66     /** Inject into WorkLockActivity. */
67     @Binds
68     @IntoMap
69     @ClassKey(WorkLockActivity.class)
bindWorkLockActivity(WorkLockActivity activity)70     public abstract Activity bindWorkLockActivity(WorkLockActivity activity);
71 
72     /** Inject into BrightnessDialog. */
73     @Binds
74     @IntoMap
75     @ClassKey(BrightnessDialog.class)
bindBrightnessDialog(BrightnessDialog activity)76     public abstract Activity bindBrightnessDialog(BrightnessDialog activity);
77 
78     /** Inject into ContrastDialogActivity. */
79     @Binds
80     @IntoMap
81     @ClassKey(ContrastDialogActivity.class)
bindContrastDialogActivity(ContrastDialogActivity activity)82     public abstract Activity bindContrastDialogActivity(ContrastDialogActivity activity);
83 
84     /** Inject into UsbDebuggingActivity. */
85     @Binds
86     @IntoMap
87     @ClassKey(UsbDebuggingActivity.class)
bindUsbDebuggingActivity(UsbDebuggingActivity activity)88     public abstract Activity bindUsbDebuggingActivity(UsbDebuggingActivity activity);
89 
90     /** Inject into UsbDebuggingSecondaryUserActivity. */
91     @Binds
92     @IntoMap
93     @ClassKey(UsbDebuggingSecondaryUserActivity.class)
bindUsbDebuggingSecondaryUserActivity( UsbDebuggingSecondaryUserActivity activity)94     public abstract Activity bindUsbDebuggingSecondaryUserActivity(
95             UsbDebuggingSecondaryUserActivity activity);
96 
97     /** Inject into UsbPermissionActivity. */
98     @Binds
99     @IntoMap
100     @ClassKey(UsbPermissionActivity.class)
bindUsbPermissionActivity(UsbPermissionActivity activity)101     public abstract Activity bindUsbPermissionActivity(UsbPermissionActivity activity);
102 
103     /** Inject into UsbConfirmActivity. */
104     @Binds
105     @IntoMap
106     @ClassKey(UsbConfirmActivity.class)
bindUsbConfirmActivity(UsbConfirmActivity activity)107     public abstract Activity bindUsbConfirmActivity(UsbConfirmActivity activity);
108 
109     /** Inject into UsbAccessoryUriActivity. */
110     @Binds
111     @IntoMap
112     @ClassKey(UsbAccessoryUriActivity.class)
bindUsbAccessoryUriActivity(UsbAccessoryUriActivity activity)113     public abstract Activity bindUsbAccessoryUriActivity(UsbAccessoryUriActivity activity);
114 
115     /** Inject into CreateUserActivity. */
116     @Binds
117     @IntoMap
118     @ClassKey(CreateUserActivity.class)
bindCreateUserActivity(CreateUserActivity activity)119     public abstract Activity bindCreateUserActivity(CreateUserActivity activity);
120 
121     /** Inject into TvNotificationPanelActivity. */
122     @Binds
123     @IntoMap
124     @ClassKey(TvNotificationPanelActivity.class)
bindTvNotificationPanelActivity(TvNotificationPanelActivity activity)125     public abstract Activity bindTvNotificationPanelActivity(TvNotificationPanelActivity activity);
126 
127     /** Inject into PeopleSpaceActivity. */
128     @Binds
129     @IntoMap
130     @ClassKey(PeopleSpaceActivity.class)
bindPeopleSpaceActivity(PeopleSpaceActivity activity)131     public abstract Activity bindPeopleSpaceActivity(PeopleSpaceActivity activity);
132 
133     /** Inject into LongScreenshotActivity. */
134     @Binds
135     @IntoMap
136     @ClassKey(LongScreenshotActivity.class)
bindLongScreenshotActivity(LongScreenshotActivity activity)137     public abstract Activity bindLongScreenshotActivity(LongScreenshotActivity activity);
138 
139     /** Inject into AppClipsTrampolineActivity. */
140     @Binds
141     @IntoMap
142     @ClassKey(AppClipsTrampolineActivity.class)
bindAppClipsTrampolineActivity(AppClipsTrampolineActivity activity)143     public abstract Activity bindAppClipsTrampolineActivity(AppClipsTrampolineActivity activity);
144 
145     /** Inject into AppClipsActivity. */
146     @Binds
147     @IntoMap
148     @ClassKey(AppClipsActivity.class)
bindAppClipsActivity(AppClipsActivity activity)149     public abstract Activity bindAppClipsActivity(AppClipsActivity activity);
150 
151     /** Inject into LaunchConversationActivity. */
152     @Binds
153     @IntoMap
154     @ClassKey(LaunchConversationActivity.class)
bindLaunchConversationActivity(LaunchConversationActivity activity)155     public abstract Activity bindLaunchConversationActivity(LaunchConversationActivity activity);
156 
157     /** Inject into SensorUseStartedActivity. */
158     @Binds
159     @IntoMap
160     @ClassKey(SensorUseStartedActivity.class)
bindSensorUseStartedActivity(SensorUseStartedActivity activity)161     public abstract Activity bindSensorUseStartedActivity(SensorUseStartedActivity activity);
162 
163     /** Inject into TvUnblockSensorActivity. */
164     @Binds
165     @IntoMap
166     @ClassKey(TvUnblockSensorActivity.class)
bindTvUnblockSensorActivity(TvUnblockSensorActivity activity)167     public abstract Activity bindTvUnblockSensorActivity(TvUnblockSensorActivity activity);
168 
169     /** Inject into HdmiCecSetMenuLanguageActivity. */
170     @Binds
171     @IntoMap
172     @ClassKey(HdmiCecSetMenuLanguageActivity.class)
bindHdmiCecSetMenuLanguageActivity( HdmiCecSetMenuLanguageActivity activity)173     public abstract Activity bindHdmiCecSetMenuLanguageActivity(
174             HdmiCecSetMenuLanguageActivity activity);
175 
176     /** Inject into TvSensorPrivacyChangedActivity. */
177     @Binds
178     @IntoMap
179     @ClassKey(TvSensorPrivacyChangedActivity.class)
bindTvSensorPrivacyChangedActivity( TvSensorPrivacyChangedActivity activity)180     public abstract Activity bindTvSensorPrivacyChangedActivity(
181             TvSensorPrivacyChangedActivity activity);
182 
183     /** Inject into SwitchToManagedProfileForCallActivity. */
184     @Binds
185     @IntoMap
186     @ClassKey(SwitchToManagedProfileForCallActivity.class)
bindSwitchToManagedProfileForCallActivity( SwitchToManagedProfileForCallActivity activity)187     public abstract Activity bindSwitchToManagedProfileForCallActivity(
188             SwitchToManagedProfileForCallActivity activity);
189 }
190