• 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.car.window;
18 
19 import com.android.systemui.car.keyguard.CarKeyguardViewMediator;
20 import com.android.systemui.car.notification.BottomNotificationPanelViewMediator;
21 import com.android.systemui.car.notification.NotificationPanelViewMediator;
22 import com.android.systemui.car.notification.TopNotificationPanelViewMediator;
23 import com.android.systemui.car.userswitcher.FullscreenUserSwitcherViewMediator;
24 import com.android.systemui.car.userswitcher.UserSwitchTransitionViewMediator;
25 
26 import dagger.Binds;
27 import dagger.Module;
28 import dagger.multibindings.ClassKey;
29 import dagger.multibindings.IntoMap;
30 
31 /**
32  * Dagger injection module for {@link SystemUIOverlayWindowManager}
33  */
34 @Module
35 public abstract class OverlayWindowModule {
36 
37     /** Injects NotificationPanelViewMediator. */
38     @Binds
39     @IntoMap
40     @ClassKey(NotificationPanelViewMediator.class)
bindNotificationPanelViewMediator( NotificationPanelViewMediator notificationPanelViewMediator)41     public abstract OverlayViewMediator bindNotificationPanelViewMediator(
42             NotificationPanelViewMediator notificationPanelViewMediator);
43 
44     /** Injects TopNotificationPanelViewMediator. */
45     @Binds
46     @IntoMap
47     @ClassKey(TopNotificationPanelViewMediator.class)
bindTopNotificationPanelViewMediator( TopNotificationPanelViewMediator topNotificationPanelViewMediator)48     public abstract OverlayViewMediator bindTopNotificationPanelViewMediator(
49             TopNotificationPanelViewMediator topNotificationPanelViewMediator);
50 
51     /** Injects BottomNotificationPanelViewMediator. */
52     @Binds
53     @IntoMap
54     @ClassKey(BottomNotificationPanelViewMediator.class)
bindBottomNotificationPanelViewMediator( BottomNotificationPanelViewMediator bottomNotificationPanelViewMediator)55     public abstract OverlayViewMediator bindBottomNotificationPanelViewMediator(
56             BottomNotificationPanelViewMediator bottomNotificationPanelViewMediator);
57 
58     /** Inject into CarKeyguardViewMediator. */
59     @Binds
60     @IntoMap
61     @ClassKey(CarKeyguardViewMediator.class)
bindCarKeyguardViewMediator( CarKeyguardViewMediator carKeyguardViewMediator)62     public abstract OverlayViewMediator bindCarKeyguardViewMediator(
63             CarKeyguardViewMediator carKeyguardViewMediator);
64 
65     /** Injects FullscreenUserSwitcherViewsMediator. */
66     @Binds
67     @IntoMap
68     @ClassKey(FullscreenUserSwitcherViewMediator.class)
bindFullscreenUserSwitcherViewsMediator( FullscreenUserSwitcherViewMediator overlayViewsMediator)69     public abstract OverlayViewMediator bindFullscreenUserSwitcherViewsMediator(
70             FullscreenUserSwitcherViewMediator overlayViewsMediator);
71 
72     /** Injects CarUserSwitchingDialogMediator. */
73     @Binds
74     @IntoMap
75     @ClassKey(UserSwitchTransitionViewMediator.class)
bindUserSwitchTransitionViewMediator( UserSwitchTransitionViewMediator userSwitchTransitionViewMediator)76     public abstract OverlayViewMediator bindUserSwitchTransitionViewMediator(
77             UserSwitchTransitionViewMediator userSwitchTransitionViewMediator);
78 }
79