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.media.dagger; 18 19 import com.android.systemui.dagger.SysUISingleton; 20 import com.android.systemui.log.LogBuffer; 21 import com.android.systemui.log.LogBufferFactory; 22 import com.android.systemui.media.controls.domain.MediaDomainModule; 23 import com.android.systemui.media.controls.domain.pipeline.MediaDataManager; 24 import com.android.systemui.media.controls.ui.controller.MediaCarouselController; 25 import com.android.systemui.media.controls.ui.controller.MediaCarouselControllerLogger; 26 import com.android.systemui.media.controls.ui.controller.MediaHierarchyManager; 27 import com.android.systemui.media.controls.ui.controller.MediaHostStatesManager; 28 import com.android.systemui.media.controls.ui.view.MediaHost; 29 import com.android.systemui.media.dream.dagger.MediaComplicationComponent; 30 import com.android.systemui.media.taptotransfer.receiver.MediaTttReceiverLogBuffer; 31 import com.android.systemui.media.taptotransfer.sender.MediaTttSenderLogBuffer; 32 33 import dagger.Module; 34 import dagger.Provides; 35 36 import javax.inject.Named; 37 38 /** Dagger module for the media package. */ 39 @Module( 40 includes = { 41 MediaDomainModule.class 42 }, 43 subcomponents = { 44 MediaComplicationComponent.class, 45 }) 46 public interface MediaModule { 47 String QS_PANEL = "media_qs_panel"; 48 String QUICK_QS_PANEL = "media_quick_qs_panel"; 49 String KEYGUARD = "media_keyguard"; 50 String DREAM = "dream"; 51 String COMMUNAL_HUB = "communal_Hub"; 52 String POPUP = "popup"; 53 54 /** */ 55 @Provides 56 @SysUISingleton 57 @Named(QS_PANEL) providesQSMediaHost(MediaHost.MediaHostStateHolder stateHolder, MediaHierarchyManager hierarchyManager, MediaDataManager dataManager, MediaHostStatesManager statesManager, MediaCarouselController carouselController, MediaCarouselControllerLogger logger)58 static MediaHost providesQSMediaHost(MediaHost.MediaHostStateHolder stateHolder, 59 MediaHierarchyManager hierarchyManager, MediaDataManager dataManager, 60 MediaHostStatesManager statesManager, MediaCarouselController carouselController, 61 MediaCarouselControllerLogger logger) { 62 return new MediaHost(stateHolder, hierarchyManager, dataManager, statesManager, 63 carouselController, logger); 64 } 65 66 /** */ 67 @Provides 68 @SysUISingleton 69 @Named(QUICK_QS_PANEL) providesQuickQSMediaHost(MediaHost.MediaHostStateHolder stateHolder, MediaHierarchyManager hierarchyManager, MediaDataManager dataManager, MediaHostStatesManager statesManager, MediaCarouselController carouselController, MediaCarouselControllerLogger logger)70 static MediaHost providesQuickQSMediaHost(MediaHost.MediaHostStateHolder stateHolder, 71 MediaHierarchyManager hierarchyManager, MediaDataManager dataManager, 72 MediaHostStatesManager statesManager, MediaCarouselController carouselController, 73 MediaCarouselControllerLogger logger) { 74 return new MediaHost(stateHolder, hierarchyManager, dataManager, statesManager, 75 carouselController, logger); 76 } 77 78 /** */ 79 @Provides 80 @SysUISingleton 81 @Named(KEYGUARD) providesKeyguardMediaHost(MediaHost.MediaHostStateHolder stateHolder, MediaHierarchyManager hierarchyManager, MediaDataManager dataManager, MediaHostStatesManager statesManager, MediaCarouselController carouselController, MediaCarouselControllerLogger logger)82 static MediaHost providesKeyguardMediaHost(MediaHost.MediaHostStateHolder stateHolder, 83 MediaHierarchyManager hierarchyManager, MediaDataManager dataManager, 84 MediaHostStatesManager statesManager, MediaCarouselController carouselController, 85 MediaCarouselControllerLogger logger) { 86 return new MediaHost(stateHolder, hierarchyManager, dataManager, statesManager, 87 carouselController, logger); 88 } 89 90 /** */ 91 @Provides 92 @SysUISingleton 93 @Named(DREAM) providesDreamMediaHost(MediaHost.MediaHostStateHolder stateHolder, MediaHierarchyManager hierarchyManager, MediaDataManager dataManager, MediaHostStatesManager statesManager, MediaCarouselController carouselController, MediaCarouselControllerLogger logger)94 static MediaHost providesDreamMediaHost(MediaHost.MediaHostStateHolder stateHolder, 95 MediaHierarchyManager hierarchyManager, MediaDataManager dataManager, 96 MediaHostStatesManager statesManager, MediaCarouselController carouselController, 97 MediaCarouselControllerLogger logger) { 98 return new MediaHost(stateHolder, hierarchyManager, dataManager, statesManager, 99 carouselController, logger); 100 } 101 102 /** */ 103 @Provides 104 @SysUISingleton 105 @Named(COMMUNAL_HUB) providesCommunalMediaHost( MediaHost.MediaHostStateHolder stateHolder, MediaHierarchyManager hierarchyManager, MediaDataManager dataManager, MediaHostStatesManager statesManager, MediaCarouselController carouselController, MediaCarouselControllerLogger logger)106 static MediaHost providesCommunalMediaHost( 107 MediaHost.MediaHostStateHolder stateHolder, 108 MediaHierarchyManager hierarchyManager, 109 MediaDataManager dataManager, 110 MediaHostStatesManager statesManager, 111 MediaCarouselController carouselController, 112 MediaCarouselControllerLogger logger) { 113 return new MediaHost( 114 stateHolder, 115 hierarchyManager, 116 dataManager, 117 statesManager, 118 carouselController, 119 logger); 120 } 121 122 @Provides 123 @SysUISingleton 124 @Named(POPUP) providesPopupMediaHost(MediaHost.MediaHostStateHolder stateHolder, MediaHierarchyManager hierarchyManager, MediaDataManager dataManager, MediaHostStatesManager statesManager, MediaCarouselController carouselController, MediaCarouselControllerLogger logger)125 static MediaHost providesPopupMediaHost(MediaHost.MediaHostStateHolder stateHolder, 126 MediaHierarchyManager hierarchyManager, MediaDataManager dataManager, 127 MediaHostStatesManager statesManager, MediaCarouselController carouselController, 128 MediaCarouselControllerLogger logger) { 129 return new MediaHost(stateHolder, hierarchyManager, dataManager, statesManager, 130 carouselController, logger); 131 } 132 133 /** Provides a logging buffer related to the media tap-to-transfer chip on the sender device. */ 134 @Provides 135 @SysUISingleton 136 @MediaTttSenderLogBuffer provideMediaTttSenderLogBuffer(LogBufferFactory factory)137 static LogBuffer provideMediaTttSenderLogBuffer(LogBufferFactory factory) { 138 return factory.create("MediaTttSender", 30); 139 } 140 141 /** 142 * Provides a logging buffer related to the media tap-to-transfer chip on the receiver device. 143 */ 144 @Provides 145 @SysUISingleton 146 @MediaTttReceiverLogBuffer provideMediaTttReceiverLogBuffer(LogBufferFactory factory)147 static LogBuffer provideMediaTttReceiverLogBuffer(LogBufferFactory factory) { 148 return factory.create("MediaTttReceiver", 20); 149 } 150 } 151