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 
17 package com.android.wm.shell.dagger.pip;
18 
19 import android.annotation.NonNull;
20 
21 import com.android.wm.shell.ShellTaskOrganizer;
22 import com.android.wm.shell.common.pip.PipBoundsAlgorithm;
23 import com.android.wm.shell.common.pip.PipBoundsState;
24 import com.android.wm.shell.dagger.WMShellBaseModule;
25 import com.android.wm.shell.dagger.WMSingleton;
26 import com.android.wm.shell.pip2.PipTransition;
27 import com.android.wm.shell.sysui.ShellInit;
28 import com.android.wm.shell.transition.Transitions;
29 
30 import dagger.Module;
31 import dagger.Provides;
32 
33 /**
34  * Provides dependencies from {@link com.android.wm.shell.pip2}, this implementation is meant to be
35  * the successor of its sibling {@link Pip1Module}.
36  */
37 @Module(includes = WMShellBaseModule.class)
38 public abstract class Pip2Module {
39     @WMSingleton
40     @Provides
providePipTransition(@onNull ShellInit shellInit, @NonNull ShellTaskOrganizer shellTaskOrganizer, @NonNull Transitions transitions, PipBoundsState pipBoundsState, PipBoundsAlgorithm pipBoundsAlgorithm)41     static PipTransition providePipTransition(@NonNull ShellInit shellInit,
42             @NonNull ShellTaskOrganizer shellTaskOrganizer,
43             @NonNull Transitions transitions,
44             PipBoundsState pipBoundsState,
45             PipBoundsAlgorithm pipBoundsAlgorithm) {
46         return new PipTransition(shellInit, shellTaskOrganizer, transitions, pipBoundsState, null,
47                 pipBoundsAlgorithm);
48     }
49 }
50