blob: 49cd414f9d9eaad01382d2524db98713313300a4 [file] [log] [blame]
Dave Mankoffaa8b7ae2019-09-04 18:03:21 -04001/*
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
Dave Mankofff4736812019-10-18 17:25:50 -040017package com.android.systemui.dagger;
Dave Mankoffaa8b7ae2019-09-04 18:03:21 -040018
Dave Mankofff4736812019-10-18 17:25:50 -040019import com.android.systemui.SystemUI;
Dave Mankoffaa8b7ae2019-09-04 18:03:21 -040020import com.android.systemui.keyguard.KeyguardViewMediator;
Dave Mankoff33174bc2019-10-10 14:57:02 -040021import com.android.systemui.pip.PipUI;
Fabian Kozynskiff5e91f2019-09-24 15:38:08 -040022import com.android.systemui.power.PowerUI;
Dave Mankoff898e1bb2019-09-25 17:54:19 -040023import com.android.systemui.recents.Recents;
24import com.android.systemui.recents.RecentsModule;
Robert Snoeberger81d76152019-09-30 15:43:34 -040025import com.android.systemui.util.leak.GarbageMonitor;
Dave Mankoff33174bc2019-10-10 14:57:02 -040026import com.android.systemui.volume.VolumeUI;
Dave Mankoffaa8b7ae2019-09-04 18:03:21 -040027
28import dagger.Binds;
29import dagger.Module;
30import dagger.multibindings.ClassKey;
31import dagger.multibindings.IntoMap;
32
33/**
Dave Mankoffeb593ae2019-09-04 11:31:55 -040034 * SystemUI objects that are injectable should go here.
Dave Mankoffaa8b7ae2019-09-04 18:03:21 -040035 */
Dave Mankoff898e1bb2019-09-25 17:54:19 -040036@Module(includes = {RecentsModule.class})
Dave Mankoffaa8b7ae2019-09-04 18:03:21 -040037public abstract class SystemUIBinder {
Dave Mankoffa5d8a392019-10-10 12:21:09 -040038
39 /** Inject into GarbageMonitor.Service. */
40 @Binds
41 @IntoMap
42 @ClassKey(GarbageMonitor.Service.class)
43 public abstract SystemUI bindGarbageMonitorService(GarbageMonitor.Service service);
44
Dave Mankoffaa8b7ae2019-09-04 18:03:21 -040045 /** Inject into KeyguardViewMediator. */
46 @Binds
47 @IntoMap
48 @ClassKey(KeyguardViewMediator.class)
49 public abstract SystemUI bindKeyguardViewMediator(KeyguardViewMediator sysui);
Fabian Kozynskiff5e91f2019-09-24 15:38:08 -040050
Dave Mankoff33174bc2019-10-10 14:57:02 -040051 /** Inject into PipUI. */
52 @Binds
53 @IntoMap
54 @ClassKey(PipUI.class)
55 public abstract SystemUI bindPipUI(PipUI sysui);
56
Fabian Kozynskiff5e91f2019-09-24 15:38:08 -040057 /** Inject into PowerUI. */
58 @Binds
59 @IntoMap
60 @ClassKey(PowerUI.class)
61 public abstract SystemUI bindPowerUI(PowerUI sysui);
Dave Mankoff898e1bb2019-09-25 17:54:19 -040062
Dave Mankoffbb9575f2019-10-02 12:23:49 -040063 /** Inject into Recents. */
Dave Mankoff898e1bb2019-09-25 17:54:19 -040064 @Binds
65 @IntoMap
66 @ClassKey(Recents.class)
67 public abstract SystemUI bindRecents(Recents sysui);
Robert Snoeberger81d76152019-09-30 15:43:34 -040068
Dave Mankoff33174bc2019-10-10 14:57:02 -040069 /** Inject into VolumeUI. */
70 @Binds
71 @IntoMap
72 @ClassKey(VolumeUI.class)
73 public abstract SystemUI bindVolumeUI(VolumeUI sysui);
74
Dave Mankoffaa8b7ae2019-09-04 18:03:21 -040075}