1 /*
2  * Copyright (C) 2021 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.wm.shell.dagger;
18 
19 import android.view.IWindowManager;
20 
21 import com.android.wm.shell.common.DisplayController;
22 import com.android.wm.shell.common.DisplayImeController;
23 import com.android.wm.shell.common.DisplayInsetsController;
24 import com.android.wm.shell.common.ShellExecutor;
25 import com.android.wm.shell.common.TransactionPool;
26 import com.android.wm.shell.common.annotations.ShellMainThread;
27 import com.android.wm.shell.startingsurface.StartingWindowTypeAlgorithm;
28 import com.android.wm.shell.startingsurface.tv.TvStartingWindowTypeAlgorithm;
29 
30 import dagger.Module;
31 import dagger.Provides;
32 
33 /**
34  * Provides dependencies from {@link com.android.wm.shell}, these dependencies are only
35  * accessible from components within the WM subcomponent (can be explicitly exposed to the
36  * SysUIComponent, see {@link WMComponent}).
37  *
38  * This module only defines Shell dependencies for the TV SystemUI implementation.  Common
39  * dependencies should go into {@link WMShellBaseModule}.
40  */
41 @Module(includes = {TvPipModule.class})
42 public class TvWMShellModule {
43 
44     //
45     // Starting Windows (Splash Screen)
46     //
47 
48     @WMSingleton
49     @Provides
50     @DynamicOverride
provideStartingWindowTypeAlgorithm()51     static StartingWindowTypeAlgorithm provideStartingWindowTypeAlgorithm() {
52         return new TvStartingWindowTypeAlgorithm();
53     };
54 }
55