1/*
2 * Copyright (C) 2014 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
5 * in compliance with the License. You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software distributed under the License
10 * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
11 * or implied. See the License for the specific language governing permissions and limitations under
12 * the License.
13 */
14package android.support.v17.leanback.transition;
15
16import android.R;
17import android.app.Fragment;
18import android.content.Context;
19import android.transition.ChangeTransform;
20import android.transition.Transition;
21import android.transition.TransitionManager;
22import android.view.View;
23import android.view.ViewGroup;
24import android.view.Window;
25import android.view.animation.AnimationUtils;
26
27final class TransitionHelperApi21 {
28
29    TransitionHelperApi21() {
30    }
31
32    public static void setEnterTransition(android.app.Fragment fragment, Object transition) {
33        fragment.setEnterTransition((Transition)transition);
34    }
35
36    public static void setExitTransition(android.app.Fragment fragment, Object transition) {
37       fragment.setExitTransition((Transition)transition);
38    }
39
40    public static void setSharedElementEnterTransition(android.app.Fragment fragment,
41            Object transition) {
42        fragment.setSharedElementEnterTransition((Transition)transition);
43     }
44
45    public static void addSharedElement(android.app.FragmentTransaction ft,
46            View view, String transitionName) {
47        ft.addSharedElement(view, transitionName);
48    }
49
50    public static Object getSharedElementEnterTransition(Window window) {
51        return window.getSharedElementEnterTransition();
52    }
53
54    public static Object getSharedElementReturnTransition(Window window) {
55        return window.getSharedElementReturnTransition();
56    }
57
58    public static Object getSharedElementExitTransition(Window window) {
59        return window.getSharedElementExitTransition();
60    }
61
62    public static Object getSharedElementReenterTransition(Window window) {
63        return window.getSharedElementReenterTransition();
64    }
65
66    public static Object getEnterTransition(Window window) {
67        return window.getEnterTransition();
68    }
69
70    public static Object getReturnTransition(Window window) {
71        return window.getReturnTransition();
72    }
73
74    public static Object getExitTransition(Window window) {
75        return window.getExitTransition();
76    }
77
78    public static Object getReenterTransition(Window window) {
79        return window.getReenterTransition();
80    }
81
82    public static Object createScale() {
83        return new ChangeTransform();
84    }
85
86    public static Object createDefaultInterpolator(Context context) {
87        return AnimationUtils.loadInterpolator(context, R.interpolator.fast_out_linear_in);
88    }
89
90    public static Object createChangeTransform() {
91        return new ChangeTransform();
92    }
93
94    public static Object createFadeAndShortSlide(int edge) {
95        return new FadeAndShortSlide(edge);
96    }
97
98    public static Object createFadeAndShortSlide(int edge, float distance) {
99        FadeAndShortSlide slide = new FadeAndShortSlide(edge);
100        slide.setDistance(distance);
101        return slide;
102    }
103
104    public static void beginDelayedTransition(ViewGroup sceneRoot, Object transitionObject) {
105        Transition transition = (Transition) transitionObject;
106        TransitionManager.beginDelayedTransition(sceneRoot, transition);
107    }
108
109    public static void setTransitionGroup(ViewGroup viewGroup, boolean transitionGroup) {
110        viewGroup.setTransitionGroup(transitionGroup);
111    }
112}
113