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.back;
18 
19 import com.android.wm.shell.back.CrossTaskBackAnimation;
20 import com.android.wm.shell.back.CustomCrossActivityBackAnimation;
21 import com.android.wm.shell.back.DefaultCrossActivityBackAnimation;
22 import com.android.wm.shell.back.ShellBackAnimation;
23 import com.android.wm.shell.back.ShellBackAnimationRegistry;
24 
25 import dagger.Binds;
26 import dagger.Module;
27 import dagger.Provides;
28 
29 /** Default animation definitions for predictive back. */
30 @Module
31 public interface ShellBackAnimationModule {
32     /** Default animation registry */
33     @Provides
provideBackAnimationRegistry( @hellBackAnimation.CrossActivity ShellBackAnimation crossActivity, @ShellBackAnimation.CrossTask ShellBackAnimation crossTask, @ShellBackAnimation.CustomizeActivity ShellBackAnimation customizeActivity)34     static ShellBackAnimationRegistry provideBackAnimationRegistry(
35             @ShellBackAnimation.CrossActivity ShellBackAnimation crossActivity,
36             @ShellBackAnimation.CrossTask ShellBackAnimation crossTask,
37             @ShellBackAnimation.CustomizeActivity ShellBackAnimation customizeActivity) {
38         return new ShellBackAnimationRegistry(
39                 crossActivity,
40                 crossTask,
41                 /* dialogCloseAnimation */ null,
42                 customizeActivity,
43                 /* defaultBackToHomeAnimation= */ null);
44     }
45 
46     /** Default cross activity back animation */
47     @Binds
48     @ShellBackAnimation.CrossActivity
bindCrossActivityShellBackAnimation( DefaultCrossActivityBackAnimation defaultCrossActivityBackAnimation)49     ShellBackAnimation bindCrossActivityShellBackAnimation(
50             DefaultCrossActivityBackAnimation defaultCrossActivityBackAnimation);
51 
52     /** Default cross task back animation */
53     @Binds
54     @ShellBackAnimation.CrossTask
provideCrossTaskShellBackAnimation( CrossTaskBackAnimation crossTaskBackAnimation)55     ShellBackAnimation provideCrossTaskShellBackAnimation(
56             CrossTaskBackAnimation crossTaskBackAnimation);
57 
58     /** Default customized activity back animation */
59     @Binds
60     @ShellBackAnimation.CustomizeActivity
provideCustomizeActivityShellBackAnimation( CustomCrossActivityBackAnimation customCrossActivityBackAnimation)61     ShellBackAnimation provideCustomizeActivityShellBackAnimation(
62             CustomCrossActivityBackAnimation customCrossActivityBackAnimation);
63 }
64