[go: nahoru, domu]

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.content.Context;
17import android.os.Build;
18import android.view.Gravity;
19import android.view.View;
20import android.view.ViewGroup;
21import android.view.Window;
22
23import java.util.ArrayList;
24
25/**
26 * Helper for view transitions.
27 * @hide
28 */
29public final class TransitionHelper {
30
31    public static final int FADE_IN = 0x1;
32    public static final int FADE_OUT = 0x2;
33
34    public static final int SLIDE_LEFT = Gravity.LEFT;
35    public static final int SLIDE_TOP = Gravity.TOP;
36    public static final int SLIDE_RIGHT = Gravity.RIGHT;
37    public static final int SLIDE_BOTTOM = Gravity.BOTTOM;
38
39    private static TransitionHelperVersionImpl sImpl;
40
41    /**
42     * Gets whether the system supports Transition animations.
43     *
44     * @return True if Transition animations are supported.
45     */
46    public static boolean systemSupportsTransitions() {
47        if (Build.VERSION.SDK_INT >= 19) {
48            // Supported on Android 4.4 or later.
49            return true;
50        }
51        return false;
52    }
53
54    /**
55     * Returns true if system supports entrance Transition animations.
56     */
57    public static boolean systemSupportsEntranceTransitions() {
58        return Build.VERSION.SDK_INT >= 21;
59    }
60
61    /**
62     * Interface implemented by classes that support Transition animations.
63     */
64    static interface TransitionHelperVersionImpl {
65
66        public void setEnterTransition(android.app.Fragment fragment, Object transition);
67
68        public void setExitTransition(android.app.Fragment fragment, Object transition);
69
70        public void setSharedElementEnterTransition(android.app.Fragment fragment,
71                Object transition);
72
73        public void addSharedElement(android.app.FragmentTransaction ft,
74                View view, String transitionName);
75
76        public Object getSharedElementEnterTransition(Window window);
77
78        public Object getSharedElementReturnTransition(Window window);
79
80        public Object getSharedElementExitTransition(Window window);
81
82        public Object getSharedElementReenterTransition(Window window);
83
84        public Object getEnterTransition(Window window);
85
86        public Object getReturnTransition(Window window);
87
88        public Object getExitTransition(Window window);
89
90        public Object getReenterTransition(Window window);
91
92        public Object createScene(ViewGroup sceneRoot, Runnable r);
93
94        public Object createAutoTransition();
95
96        public Object createSlide(int slideEdge);
97
98        public Object createScale();
99
100        public Object createFadeTransition(int fadingMode);
101
102        public Object createChangeTransform();
103
104        public Object createChangeBounds(boolean reparent);
105
106        public Object createFadeAndShortSlide(int edge);
107
108        public Object createFadeAndShortSlide(int edge, float distance);
109
110        public void setChangeBoundsStartDelay(Object changeBounds, View view, int startDelay);
111
112        public void setChangeBoundsStartDelay(Object changeBounds, int viewId, int startDelay);
113
114        public void setChangeBoundsStartDelay(Object changeBounds, String className,
115                int startDelay);
116
117        public void setChangeBoundsDefaultStartDelay(Object changeBounds, int startDelay);
118
119        public Object createTransitionSet(boolean sequential);
120
121        public void addTransition(Object transitionSet, Object transition);
122
123        public void addTransitionListener(Object transition, TransitionListener listener);
124
125        public void removeTransitionListener(Object transition, TransitionListener listener);
126
127        public void runTransition(Object scene, Object transition);
128
129        public void exclude(Object transition, int targetId, boolean exclude);
130
131        public void exclude(Object transition, View targetView, boolean exclude);
132
133        public void excludeChildren(Object transition, int targetId, boolean exclude);
134
135        public void excludeChildren(Object transition, View target, boolean exclude);
136
137        public void include(Object transition, int targetId);
138
139        public void include(Object transition, View targetView);
140
141        public void setStartDelay(Object transition, long startDelay);
142
143        public void setDuration(Object transition, long duration);
144
145        public void setInterpolator(Object transition, Object timeInterpolator);
146
147        public void addTarget(Object transition, View view);
148
149        public Object createDefaultInterpolator(Context context);
150
151        public Object loadTransition(Context context, int resId);
152
153        public void beginDelayedTransition(ViewGroup sceneRoot, Object transitionObject);
154
155        public void setTransitionGroup(ViewGroup viewGroup, boolean transitionGroup);
156    }
157
158    /**
159     * Interface used when we do not support Transition animations.
160     */
161    static class TransitionHelperStubImpl implements TransitionHelperVersionImpl {
162
163        private static class TransitionStub {
164            ArrayList<TransitionListener> mTransitionListeners;
165        }
166
167        public void setEnterTransition(android.app.Fragment fragment, Object transition) {
168        }
169
170        public void setExitTransition(android.app.Fragment fragment, Object transition) {
171        }
172
173        public void setSharedElementEnterTransition(android.app.Fragment fragment,
174                Object transition) {
175        }
176
177        public void addSharedElement(android.app.FragmentTransaction ft,
178                View view, String transitionName) {
179        }
180
181        @Override
182        public Object getSharedElementEnterTransition(Window window) {
183            return null;
184        }
185
186        @Override
187        public Object getSharedElementReturnTransition(Window window) {
188            return null;
189        }
190
191        @Override
192        public Object getSharedElementExitTransition(Window window) {
193            return null;
194        }
195
196        @Override
197        public Object getSharedElementReenterTransition(Window window) {
198            return null;
199        }
200
201        @Override
202        public Object getEnterTransition(Window window) {
203            return null;
204        }
205
206        @Override
207        public Object getReturnTransition(Window window) {
208            return null;
209        }
210
211        @Override
212        public Object getExitTransition(Window window) {
213            return null;
214        }
215
216        @Override
217        public Object getReenterTransition(Window window) {
218            return null;
219        }
220
221        @Override
222        public Object createScene(ViewGroup sceneRoot, Runnable r) {
223            return r;
224        }
225
226        @Override
227        public Object createAutoTransition() {
228            return new TransitionStub();
229        }
230
231        @Override
232        public Object createFadeTransition(int fadingMode) {
233            return new TransitionStub();
234        }
235
236        @Override
237        public Object createChangeBounds(boolean reparent) {
238            return new TransitionStub();
239        }
240
241        @Override
242        public Object createChangeTransform() {
243            return new TransitionStub();
244        }
245
246        @Override
247        public Object createFadeAndShortSlide(int edge) {
248            return new TransitionStub();
249        }
250
251        @Override
252        public Object createFadeAndShortSlide(int edge, float distance) {
253            return new TransitionStub();
254        }
255
256        @Override
257        public Object createSlide(int slideEdge) {
258            return new TransitionStub();
259        }
260
261        @Override
262        public Object createScale() {
263            return new TransitionStub();
264        }
265
266        @Override
267        public void setChangeBoundsStartDelay(Object changeBounds, View view, int startDelay) {
268        }
269
270        @Override
271        public void setChangeBoundsStartDelay(Object changeBounds, int viewId, int startDelay) {
272        }
273
274        @Override
275        public void setChangeBoundsStartDelay(Object changeBounds, String className,
276                int startDelay) {
277        }
278
279        @Override
280        public void setChangeBoundsDefaultStartDelay(Object changeBounds, int startDelay) {
281        }
282
283        @Override
284        public Object createTransitionSet(boolean sequential) {
285            return new TransitionStub();
286        }
287
288        @Override
289        public void addTransition(Object transitionSet, Object transition) {
290        }
291
292        @Override
293        public void exclude(Object transition, int targetId, boolean exclude) {
294        }
295
296        @Override
297        public void exclude(Object transition, View targetView, boolean exclude) {
298        }
299
300        @Override
301        public void excludeChildren(Object transition, int targetId, boolean exclude) {
302        }
303
304        @Override
305        public void excludeChildren(Object transition, View targetView, boolean exclude) {
306        }
307
308        @Override
309        public void include(Object transition, int targetId) {
310        }
311
312        @Override
313        public void include(Object transition, View targetView) {
314        }
315
316        @Override
317        public void setStartDelay(Object transition, long startDelay) {
318        }
319
320        @Override
321        public void setDuration(Object transition, long duration) {
322        }
323
324        @Override
325        public void addTransitionListener(Object transition, TransitionListener listener) {
326            TransitionStub stub = (TransitionStub) transition;
327            if (stub.mTransitionListeners == null) {
328                stub.mTransitionListeners = new ArrayList<TransitionListener>();
329            }
330            stub.mTransitionListeners.add(listener);
331        }
332
333        @Override
334        public void removeTransitionListener(Object transition, TransitionListener listener) {
335            TransitionStub stub = (TransitionStub) transition;
336            if (stub.mTransitionListeners != null) {
337                stub.mTransitionListeners.remove(listener);
338            }
339        }
340
341        @Override
342        public void runTransition(Object scene, Object transition) {
343            TransitionStub transitionStub = (TransitionStub) transition;
344            if (transitionStub != null && transitionStub.mTransitionListeners != null) {
345                for (int i = 0, size = transitionStub.mTransitionListeners.size(); i < size; i++) {
346                    transitionStub.mTransitionListeners.get(i).onTransitionStart(transition);
347                }
348            }
349            Runnable r = ((Runnable) scene);
350            if (r != null) {
351                r.run();
352            }
353            if (transitionStub != null && transitionStub.mTransitionListeners != null) {
354                for (int i = 0, size = transitionStub.mTransitionListeners.size(); i < size; i++) {
355                    transitionStub.mTransitionListeners.get(i).onTransitionEnd(transition);
356                }
357            }
358        }
359
360        @Override
361        public void setInterpolator(Object transition, Object timeInterpolator) {
362        }
363
364        @Override
365        public void addTarget(Object transition, View view) {
366        }
367
368        @Override
369        public Object createDefaultInterpolator(Context context) {
370            return null;
371        }
372
373        @Override
374        public Object loadTransition(Context context, int resId) {
375            return new TransitionStub();
376        }
377
378        @Override
379        public void beginDelayedTransition(ViewGroup sceneRoot, Object transitionObject) {
380        }
381
382        @Override
383        public void setTransitionGroup(ViewGroup viewGroup, boolean transitionGroup) {
384        }
385    }
386
387    /**
388     * Implementation used on KitKat (and above).
389     */
390    static class TransitionHelperKitkatImpl extends TransitionHelperStubImpl {
391
392        @Override
393        public Object createScene(ViewGroup sceneRoot, Runnable r) {
394            return TransitionHelperKitkat.createScene(sceneRoot, r);
395        }
396
397        @Override
398        public Object createAutoTransition() {
399            return TransitionHelperKitkat.createAutoTransition();
400        }
401
402        @Override
403        public Object createFadeTransition(int fadingMode) {
404            return TransitionHelperKitkat.createFadeTransition(fadingMode);
405        }
406
407        @Override
408        public Object createChangeBounds(boolean reparent) {
409            return TransitionHelperKitkat.createChangeBounds(reparent);
410        }
411
412        @Override
413        public Object createSlide(int slideEdge) {
414            return TransitionHelperKitkat.createSlide(slideEdge);
415        }
416
417        @Override
418        public Object createScale() {
419            return TransitionHelperKitkat.createScale();
420        }
421
422        @Override
423        public void setChangeBoundsStartDelay(Object changeBounds, View view, int startDelay) {
424            TransitionHelperKitkat.setChangeBoundsStartDelay(changeBounds, view, startDelay);
425        }
426
427        @Override
428        public void setChangeBoundsStartDelay(Object changeBounds, int viewId, int startDelay) {
429            TransitionHelperKitkat.setChangeBoundsStartDelay(changeBounds, viewId, startDelay);
430        }
431
432        @Override
433        public void setChangeBoundsStartDelay(Object changeBounds, String className,
434                int startDelay) {
435            TransitionHelperKitkat.setChangeBoundsStartDelay(changeBounds, className, startDelay);
436        }
437
438        @Override
439        public void setChangeBoundsDefaultStartDelay(Object changeBounds, int startDelay) {
440            TransitionHelperKitkat.setChangeBoundsDefaultStartDelay(changeBounds, startDelay);
441        }
442
443        @Override
444        public Object createTransitionSet(boolean sequential) {
445            return TransitionHelperKitkat.createTransitionSet(sequential);
446        }
447
448        @Override
449        public void addTransition(Object transitionSet, Object transition) {
450            TransitionHelperKitkat.addTransition(transitionSet, transition);
451        }
452
453        @Override
454        public void exclude(Object transition, int targetId, boolean exclude) {
455            TransitionHelperKitkat.exclude(transition, targetId, exclude);
456        }
457
458        @Override
459        public void exclude(Object transition, View targetView, boolean exclude) {
460            TransitionHelperKitkat.exclude(transition, targetView, exclude);
461        }
462
463        @Override
464        public void excludeChildren(Object transition, int targetId, boolean exclude) {
465            TransitionHelperKitkat.excludeChildren(transition, targetId, exclude);
466        }
467
468        @Override
469        public void excludeChildren(Object transition, View targetView, boolean exclude) {
470            TransitionHelperKitkat.excludeChildren(transition, targetView, exclude);
471        }
472
473        @Override
474        public void include(Object transition, int targetId) {
475            TransitionHelperKitkat.include(transition, targetId);
476        }
477
478        @Override
479        public void include(Object transition, View targetView) {
480            TransitionHelperKitkat.include(transition, targetView);
481        }
482
483        @Override
484        public void setStartDelay(Object transition, long startDelay) {
485            TransitionHelperKitkat.setStartDelay(transition, startDelay);
486        }
487
488        @Override
489        public void setDuration(Object transition, long duration) {
490            TransitionHelperKitkat.setDuration(transition, duration);
491        }
492
493        @Override
494        public void addTransitionListener(Object transition, TransitionListener listener) {
495            TransitionHelperKitkat.addTransitionListener(transition, listener);
496        }
497
498        @Override
499        public void removeTransitionListener(Object transition, TransitionListener listener) {
500            TransitionHelperKitkat.removeTransitionListener(transition, listener);
501        }
502
503        @Override
504        public void runTransition(Object scene, Object transition) {
505            TransitionHelperKitkat.runTransition(scene, transition);
506        }
507
508        @Override
509        public void setInterpolator(Object transition, Object timeInterpolator) {
510            TransitionHelperKitkat.setInterpolator(transition, timeInterpolator);
511        }
512
513        @Override
514        public void addTarget(Object transition, View view) {
515            TransitionHelperKitkat.addTarget(transition, view);
516        }
517
518        @Override
519        public Object createDefaultInterpolator(Context context) {
520            return null;
521        }
522
523        @Override
524        public Object loadTransition(Context context, int resId) {
525            return TransitionHelperKitkat.loadTransition(context, resId);
526        }
527    }
528
529    static final class TransitionHelperApi21Impl extends TransitionHelperKitkatImpl {
530
531        public void setEnterTransition(android.app.Fragment fragment, Object transition) {
532            TransitionHelperApi21.setEnterTransition(fragment, transition);
533        }
534
535        public void setExitTransition(android.app.Fragment fragment, Object transition) {
536            TransitionHelperApi21.setExitTransition(fragment, transition);
537        }
538
539        public void setSharedElementEnterTransition(android.app.Fragment fragment,
540                Object transition) {
541            TransitionHelperApi21.setSharedElementEnterTransition(fragment, transition);
542        }
543
544        public void addSharedElement(android.app.FragmentTransaction ft,
545                View view, String transitionName) {
546            TransitionHelperApi21.addSharedElement(ft, view, transitionName);
547        }
548
549        @Override
550        public Object getSharedElementEnterTransition(Window window) {
551            return TransitionHelperApi21.getSharedElementEnterTransition(window);
552        }
553
554        @Override
555        public Object getSharedElementReturnTransition(Window window) {
556            return TransitionHelperApi21.getSharedElementReturnTransition(window);
557        }
558
559        @Override
560        public Object getSharedElementExitTransition(Window window) {
561            return TransitionHelperApi21.getSharedElementExitTransition(window);
562        }
563
564        @Override
565        public Object getSharedElementReenterTransition(Window window) {
566            return TransitionHelperApi21.getSharedElementReenterTransition(window);
567        }
568
569        @Override
570        public Object createFadeAndShortSlide(int edge) {
571            return TransitionHelperApi21.createFadeAndShortSlide(edge);
572        }
573
574        @Override
575        public Object createFadeAndShortSlide(int edge, float distance) {
576            return TransitionHelperApi21.createFadeAndShortSlide(edge, distance);
577        }
578
579        @Override
580        public void beginDelayedTransition(ViewGroup sceneRoot, Object transition) {
581            TransitionHelperApi21.beginDelayedTransition(sceneRoot, transition);
582        }
583
584        @Override
585        public Object getEnterTransition(Window window) {
586            return TransitionHelperApi21.getEnterTransition(window);
587        }
588
589        @Override
590        public Object getReturnTransition(Window window) {
591            return TransitionHelperApi21.getReturnTransition(window);
592        }
593
594        @Override
595        public Object getExitTransition(Window window) {
596            return TransitionHelperApi21.getExitTransition(window);
597        }
598
599        @Override
600        public Object getReenterTransition(Window window) {
601            return TransitionHelperApi21.getReenterTransition(window);
602        }
603
604        @Override
605        public Object createScale() {
606            return TransitionHelperApi21.createScale();
607        }
608
609        @Override
610        public Object createDefaultInterpolator(Context context) {
611            return TransitionHelperApi21.createDefaultInterpolator(context);
612        }
613
614        @Override
615        public void setTransitionGroup(ViewGroup viewGroup, boolean transitionGroup) {
616            TransitionHelperApi21.setTransitionGroup(viewGroup, transitionGroup);
617        }
618
619        @Override
620        public Object createChangeTransform() {
621            return TransitionHelperApi21.createChangeTransform();
622        }
623
624    }
625
626    static {
627        if (Build.VERSION.SDK_INT >= 21) {
628            sImpl = new TransitionHelperApi21Impl();
629        } else  if (systemSupportsTransitions()) {
630            sImpl = new TransitionHelperKitkatImpl();
631        } else {
632            sImpl = new TransitionHelperStubImpl();
633        }
634    }
635
636    public static Object getSharedElementEnterTransition(Window window) {
637        return sImpl.getSharedElementEnterTransition(window);
638    }
639
640    public static Object getSharedElementReturnTransition(Window window) {
641        return sImpl.getSharedElementReturnTransition(window);
642    }
643
644    public static Object getSharedElementExitTransition(Window window) {
645        return sImpl.getSharedElementExitTransition(window);
646    }
647
648    public static Object getSharedElementReenterTransition(Window window) {
649        return sImpl.getSharedElementReenterTransition(window);
650    }
651
652    public static Object getEnterTransition(Window window) {
653        return sImpl.getEnterTransition(window);
654    }
655
656    public static Object getReturnTransition(Window window) {
657        return sImpl.getReturnTransition(window);
658    }
659
660    public static Object getExitTransition(Window window) {
661        return sImpl.getExitTransition(window);
662    }
663
664    public static Object getReenterTransition(Window window) {
665        return sImpl.getReenterTransition(window);
666    }
667
668    public static Object createScene(ViewGroup sceneRoot, Runnable r) {
669        return sImpl.createScene(sceneRoot, r);
670    }
671
672    public static Object createChangeBounds(boolean reparent) {
673        return sImpl.createChangeBounds(reparent);
674    }
675
676    public static Object createChangeTransform() {
677        return sImpl.createChangeTransform();
678    }
679
680    public static void setChangeBoundsStartDelay(Object changeBounds, View view, int startDelay) {
681        sImpl.setChangeBoundsStartDelay(changeBounds, view, startDelay);
682    }
683
684    public static void setChangeBoundsStartDelay(Object changeBounds, int viewId, int startDelay) {
685        sImpl.setChangeBoundsStartDelay(changeBounds, viewId, startDelay);
686    }
687
688    public static void setChangeBoundsStartDelay(Object changeBounds, String className,
689            int startDelay) {
690        sImpl.setChangeBoundsStartDelay(changeBounds, className, startDelay);
691    }
692
693    public static void setChangeBoundsDefaultStartDelay(Object changeBounds, int startDelay) {
694        sImpl.setChangeBoundsDefaultStartDelay(changeBounds, startDelay);
695    }
696
697    public static Object createTransitionSet(boolean sequential) {
698        return sImpl.createTransitionSet(sequential);
699    }
700
701    public static Object createSlide(int slideEdge) {
702        return sImpl.createSlide(slideEdge);
703    }
704
705    public static Object createScale() {
706        return sImpl.createScale();
707    }
708
709    public static void addTransition(Object transitionSet, Object transition) {
710        sImpl.addTransition(transitionSet, transition);
711    }
712
713    public static void exclude(Object transition, int targetId, boolean exclude) {
714        sImpl.exclude(transition, targetId, exclude);
715    }
716
717    public static void exclude(Object transition, View targetView, boolean exclude) {
718        sImpl.exclude(transition, targetView, exclude);
719    }
720
721    public static void excludeChildren(Object transition, int targetId, boolean exclude) {
722        sImpl.excludeChildren(transition, targetId, exclude);
723    }
724
725    public static void excludeChildren(Object transition, View targetView, boolean exclude) {
726        sImpl.excludeChildren(transition, targetView, exclude);
727    }
728
729    public static void include(Object transition, int targetId) {
730        sImpl.include(transition, targetId);
731    }
732
733    public static void include(Object transition, View targetView) {
734        sImpl.include(transition, targetView);
735    }
736
737    public static void setStartDelay(Object transition, long startDelay) {
738        sImpl.setStartDelay(transition, startDelay);
739    }
740
741    public static void setDuration(Object transition, long duration) {
742        sImpl.setDuration(transition, duration);
743    }
744
745    public static Object createAutoTransition() {
746        return sImpl.createAutoTransition();
747    }
748
749    public static Object createFadeTransition(int fadeMode) {
750        return sImpl.createFadeTransition(fadeMode);
751    }
752
753    public static void addTransitionListener(Object transition, TransitionListener listener) {
754        sImpl.addTransitionListener(transition, listener);
755    }
756
757    public static void removeTransitionListener(Object transition, TransitionListener listener) {
758        sImpl.removeTransitionListener(transition, listener);
759    }
760
761    public static void runTransition(Object scene, Object transition) {
762        sImpl.runTransition(scene, transition);
763    }
764
765    public static void setInterpolator(Object transition, Object timeInterpolator) {
766        sImpl.setInterpolator(transition, timeInterpolator);
767    }
768
769    public static void addTarget(Object transition, View view) {
770        sImpl.addTarget(transition, view);
771    }
772
773    public static Object createDefaultInterpolator(Context context) {
774        return sImpl.createDefaultInterpolator(context);
775    }
776
777    public static Object loadTransition(Context context, int resId) {
778        return sImpl.loadTransition(context, resId);
779    }
780
781    public static void setEnterTransition(android.app.Fragment fragment, Object transition) {
782        sImpl.setEnterTransition(fragment, transition);
783    }
784
785    public static void setExitTransition(android.app.Fragment fragment, Object transition) {
786        sImpl.setExitTransition(fragment, transition);
787    }
788
789    public static void setSharedElementEnterTransition(android.app.Fragment fragment,
790            Object transition) {
791        sImpl.setSharedElementEnterTransition(fragment, transition);
792    }
793
794    public static void addSharedElement(android.app.FragmentTransaction ft,
795            View view, String transitionName) {
796        sImpl.addSharedElement(ft, view, transitionName);
797    }
798
799    public static void setEnterTransition(android.support.v4.app.Fragment fragment,
800            Object transition) {
801        fragment.setEnterTransition(transition);
802    }
803
804    public static void setExitTransition(android.support.v4.app.Fragment fragment,
805            Object transition) {
806        fragment.setExitTransition(transition);
807    }
808
809    public static void setSharedElementEnterTransition(android.support.v4.app.Fragment fragment,
810            Object transition) {
811        fragment.setSharedElementEnterTransition(transition);
812    }
813
814    public static void addSharedElement(android.support.v4.app.FragmentTransaction ft,
815            View view, String transitionName) {
816        ft.addSharedElement(view, transitionName);
817    }
818
819    public static Object createFadeAndShortSlide(int edge) {
820        return sImpl.createFadeAndShortSlide(edge);
821    }
822
823    public static Object createFadeAndShortSlide(int edge, float distance) {
824        return sImpl.createFadeAndShortSlide(edge, distance);
825    }
826
827    public static void beginDelayedTransition(ViewGroup sceneRoot, Object transitionObject) {
828        sImpl.beginDelayedTransition(sceneRoot, transitionObject);
829    }
830
831    public static void setTransitionGroup(ViewGroup viewGroup, boolean transitionGroup) {
832        sImpl.setTransitionGroup(viewGroup, transitionGroup);
833    }
834
835    /**
836     * @deprecated Use static calls.
837     */
838    @Deprecated
839    public static TransitionHelper getInstance() {
840        return new TransitionHelper();
841    }
842
843    /**
844     * @deprecated Use {@link #addTransitionListener(Object, TransitionListener)}
845     */
846    @Deprecated
847    public static void setTransitionListener(Object transition, TransitionListener listener) {
848        sImpl.addTransitionListener(transition, listener);
849    }
850}
851