1 /* 2 * Copyright (C) 2023 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 package com.android.systemui.tv.dagger 17 18 import com.android.systemui.dagger.DependencyProvider 19 import com.android.systemui.dagger.SysUIComponent 20 import com.android.systemui.dagger.SysUISingleton 21 import com.android.systemui.dagger.SystemUIModule 22 import com.android.systemui.keyguard.dagger.KeyguardModule 23 import com.android.systemui.navigationbar.NoopNavigationBarControllerModule 24 import com.android.systemui.scene.ShadelessSceneContainerFrameworkModule 25 import com.android.systemui.statusbar.dagger.CentralSurfacesDependenciesModule 26 import com.android.systemui.statusbar.notification.dagger.NotificationsModule 27 import com.android.systemui.statusbar.notification.row.NotificationRowModule 28 import com.android.systemui.tv.recents.TvRecentsModule 29 import com.android.systemui.wallpapers.dagger.NoopWallpaperModule 30 import dagger.Subcomponent 31 32 /** 33 * Dagger Subcomponent for Tv SysUI. 34 */ 35 @SysUISingleton 36 @Subcomponent( 37 modules = [ 38 CentralSurfacesDependenciesModule::class, 39 TvServiceBinder::class, 40 TvBroadcastReceiverBinder::class, 41 DependencyProvider::class, 42 KeyguardModule::class, 43 NoopNavigationBarControllerModule::class, 44 NoopWallpaperModule::class, 45 NotificationRowModule::class, 46 NotificationsModule::class, 47 TvRecentsModule::class, 48 ShadelessSceneContainerFrameworkModule::class, 49 SystemUIModule::class, 50 TvSystemUIBinder::class, 51 TVSystemUICoreStartableModule::class, 52 TvSystemUIModule::class, 53 ] 54 ) 55 interface TvSysUIComponent : SysUIComponent { 56 /** 57 * Builder for a SysUIComponent. 58 */ 59 @Subcomponent.Builder 60 interface Builder : SysUIComponent.Builder { buildnull61 override fun build(): TvSysUIComponent 62 } 63 } 64