TransitionInflaterTest.java revision 7bd2fbcdcfeb9014c16fd78446c34a4eef489626
18158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki/* 28158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki * Copyright (C) 2017 The Android Open Source Project 38158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki * 48158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki * Licensed under the Apache License, Version 2.0 (the "License"); 58158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki * you may not use this file except in compliance with the License. 68158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki * You may obtain a copy of the License at 78158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki * 88158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki * http://www.apache.org/licenses/LICENSE-2.0 98158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki * 108158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki * Unless required by applicable law or agreed to in writing, software 118158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki * distributed under the License is distributed on an "AS IS" BASIS, 128158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 138158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki * See the License for the specific language governing permissions and 148158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki * limitations under the License. 158158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki */ 168158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki 178158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Arakipackage android.support.transition; 188158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki 1950ce74b0963de66b294761c045428562d946b65aYuichi Arakiimport static junit.framework.TestCase.assertFalse; 2050ce74b0963de66b294761c045428562d946b65aYuichi Araki 218158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Arakiimport static org.junit.Assert.assertEquals; 228158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Arakiimport static org.junit.Assert.assertNotNull; 238158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Arakiimport static org.junit.Assert.assertTrue; 248158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Arakiimport static org.junit.Assert.fail; 258158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki 268158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Arakiimport android.content.Context; 27142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Arakiimport android.graphics.Path; 28142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Arakiimport android.graphics.PathMeasure; 298158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Arakiimport android.support.annotation.NonNull; 308158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Arakiimport android.support.test.filters.MediumTest; 318158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Arakiimport android.support.transition.test.R; 328158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Arakiimport android.util.AttributeSet; 33ae4925aede60914bcca5ed47d7ce868ae14313a2Yuichi Arakiimport android.view.Gravity; 348158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Arakiimport android.widget.ImageView; 358158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Arakiimport android.widget.TextView; 368158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki 378158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Arakiimport org.junit.Test; 388158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki 398158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Arakiimport java.util.List; 408158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki 418158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki@MediumTest 428158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Arakipublic class TransitionInflaterTest extends BaseTest { 438158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki 448158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki @Test 458158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki public void testInflationConstructors() throws Throwable { 468158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki TransitionInflater inflater = TransitionInflater.from(rule.getActivity()); 478158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki // TODO: Add more Transition types 488158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki Transition transition = inflater.inflateTransition(R.transition.transition_constructors); 498158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki assertTrue(transition instanceof TransitionSet); 508158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki TransitionSet set = (TransitionSet) transition; 517bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki assertEquals(9, set.getTransitionCount()); 528158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki } 538158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki 548158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki @Test 558158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki public void testInflation() { 568158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki TransitionInflater inflater = TransitionInflater.from(rule.getActivity()); 578158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki // TODO: Add more Transition types 588158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki verifyFadeProperties(inflater.inflateTransition(R.transition.fade)); 597bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki verifyChangeBoundsProperties(inflater.inflateTransition(R.transition.change_bounds)); 60ae4925aede60914bcca5ed47d7ce868ae14313a2Yuichi Araki verifySlideProperties(inflater.inflateTransition(R.transition.slide)); 614c904b38c763179727b9b5ea7a80454630545663Yuichi Araki verifyExplodeProperties(inflater.inflateTransition(R.transition.explode)); 62fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki verifyChangeImageTransformProperties( 63fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki inflater.inflateTransition(R.transition.change_image_transform)); 6450ce74b0963de66b294761c045428562d946b65aYuichi Araki verifyChangeTransformProperties(inflater.inflateTransition(R.transition.change_transform)); 65f137a45c77ee2e753262dc3c5f691fdcfd75053bYuichi Araki verifyChangeClipBoundsProperties( 66f137a45c77ee2e753262dc3c5f691fdcfd75053bYuichi Araki inflater.inflateTransition(R.transition.change_clip_bounds)); 678158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki verifyAutoTransitionProperties(inflater.inflateTransition(R.transition.auto_transition)); 688158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki verifyTransitionSetProperties(inflater.inflateTransition(R.transition.transition_set)); 698158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki verifyCustomTransitionProperties( 708158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki inflater.inflateTransition(R.transition.custom_transition)); 718158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki verifyTargetIds(inflater.inflateTransition(R.transition.target_ids)); 728158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki verifyTargetNames(inflater.inflateTransition(R.transition.target_names)); 738158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki verifyTargetClass(inflater.inflateTransition(R.transition.target_classes)); 74142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki verifyArcMotion(inflater.inflateTransition(R.transition.arc_motion)); 75142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki verifyCustomPathMotion(inflater.inflateTransition(R.transition.custom_path_motion)); 76142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki verifyPatternPathMotion(inflater.inflateTransition(R.transition.pattern_path_motion)); 778158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki } 788158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki 798158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki // TODO: Add test for TransitionManager 808158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki 818158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki private void verifyFadeProperties(Transition transition) { 828158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki assertTrue(transition instanceof Fade); 838158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki Fade fade = (Fade) transition; 848158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki assertEquals(Fade.OUT, fade.getMode()); 858158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki } 868158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki 877bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki private void verifyChangeBoundsProperties(Transition transition) { 887bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki assertTrue(transition instanceof ChangeBounds); 897bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki ChangeBounds changeBounds = (ChangeBounds) transition; 907bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki assertTrue(changeBounds.getResizeClip()); 917bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki } 927bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki 93ae4925aede60914bcca5ed47d7ce868ae14313a2Yuichi Araki private void verifySlideProperties(Transition transition) { 94ae4925aede60914bcca5ed47d7ce868ae14313a2Yuichi Araki assertTrue(transition instanceof Slide); 95ae4925aede60914bcca5ed47d7ce868ae14313a2Yuichi Araki Slide slide = (Slide) transition; 96ae4925aede60914bcca5ed47d7ce868ae14313a2Yuichi Araki assertEquals(Gravity.TOP, slide.getSlideEdge()); 97ae4925aede60914bcca5ed47d7ce868ae14313a2Yuichi Araki } 98ae4925aede60914bcca5ed47d7ce868ae14313a2Yuichi Araki 994c904b38c763179727b9b5ea7a80454630545663Yuichi Araki private void verifyExplodeProperties(Transition transition) { 1004c904b38c763179727b9b5ea7a80454630545663Yuichi Araki assertTrue(transition instanceof Explode); 1014c904b38c763179727b9b5ea7a80454630545663Yuichi Araki Visibility visibility = (Visibility) transition; 1024c904b38c763179727b9b5ea7a80454630545663Yuichi Araki assertEquals(Visibility.MODE_IN, visibility.getMode()); 1034c904b38c763179727b9b5ea7a80454630545663Yuichi Araki } 1044c904b38c763179727b9b5ea7a80454630545663Yuichi Araki 105fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki private void verifyChangeImageTransformProperties(Transition transition) { 106fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki assertTrue(transition instanceof ChangeImageTransform); 107fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki } 108fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki 10950ce74b0963de66b294761c045428562d946b65aYuichi Araki private void verifyChangeTransformProperties(Transition transition) { 11050ce74b0963de66b294761c045428562d946b65aYuichi Araki assertTrue(transition instanceof ChangeTransform); 11150ce74b0963de66b294761c045428562d946b65aYuichi Araki ChangeTransform changeTransform = (ChangeTransform) transition; 11250ce74b0963de66b294761c045428562d946b65aYuichi Araki assertFalse(changeTransform.getReparent()); 11350ce74b0963de66b294761c045428562d946b65aYuichi Araki assertFalse(changeTransform.getReparentWithOverlay()); 11450ce74b0963de66b294761c045428562d946b65aYuichi Araki } 11550ce74b0963de66b294761c045428562d946b65aYuichi Araki 116f137a45c77ee2e753262dc3c5f691fdcfd75053bYuichi Araki private void verifyChangeClipBoundsProperties(Transition transition) { 117f137a45c77ee2e753262dc3c5f691fdcfd75053bYuichi Araki assertTrue(transition instanceof ChangeClipBounds); 118f137a45c77ee2e753262dc3c5f691fdcfd75053bYuichi Araki } 119f137a45c77ee2e753262dc3c5f691fdcfd75053bYuichi Araki 1208158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki private void verifyAutoTransitionProperties(Transition transition) { 1218158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki assertTrue(transition instanceof AutoTransition); 1228158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki } 1238158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki 1248158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki private void verifyTransitionSetProperties(Transition transition) { 1258158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki assertTrue(transition instanceof TransitionSet); 1268158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki TransitionSet set = (TransitionSet) transition; 1278158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki assertEquals(TransitionSet.ORDERING_SEQUENTIAL, set.getOrdering()); 1288158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki assertEquals(2, set.getTransitionCount()); 1298158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki assertTrue(set.getTransitionAt(0) instanceof ChangeBounds); 1308158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki assertTrue(set.getTransitionAt(1) instanceof Fade); 1318158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki } 1328158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki 1338158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki private void verifyCustomTransitionProperties(Transition transition) { 1348158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki assertTrue(transition instanceof CustomTransition); 1358158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki } 1368158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki 1378158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki private void verifyTargetIds(Transition transition) { 1388158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki List<Integer> targets = transition.getTargetIds(); 1398158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki assertNotNull(targets); 1408158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki assertEquals(2, targets.size()); 1418158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki assertEquals(R.id.hello, (int) targets.get(0)); 1428158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki assertEquals(R.id.world, (int) targets.get(1)); 1438158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki } 1448158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki 1458158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki private void verifyTargetNames(Transition transition) { 1468158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki List<String> targets = transition.getTargetNames(); 1478158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki assertNotNull(targets); 1488158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki assertEquals(2, targets.size()); 1498158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki assertEquals("hello", targets.get(0)); 1508158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki assertEquals("world", targets.get(1)); 1518158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki } 1528158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki 1538158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki private void verifyTargetClass(Transition transition) { 1548158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki List<Class> targets = transition.getTargetTypes(); 1558158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki assertNotNull(targets); 1568158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki assertEquals(2, targets.size()); 1578158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki assertEquals(TextView.class, targets.get(0)); 1588158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki assertEquals(ImageView.class, targets.get(1)); 1598158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki } 1608158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki 161142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki private void verifyArcMotion(Transition transition) { 162142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki assertNotNull(transition); 163142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki PathMotion motion = transition.getPathMotion(); 164142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki assertNotNull(motion); 165142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki assertTrue(motion instanceof ArcMotion); 166142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki ArcMotion arcMotion = (ArcMotion) motion; 167142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki assertEquals(1f, arcMotion.getMinimumVerticalAngle(), 0.01f); 168142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki assertEquals(2f, arcMotion.getMinimumHorizontalAngle(), 0.01f); 169142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki assertEquals(53f, arcMotion.getMaximumAngle(), 0.01f); 170142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki } 171142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki 172142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki private void verifyCustomPathMotion(Transition transition) { 173142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki assertNotNull(transition); 174142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki PathMotion motion = transition.getPathMotion(); 175142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki assertNotNull(motion); 176142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki assertTrue(motion instanceof CustomPathMotion); 177142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki } 178142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki 179142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki private void verifyPatternPathMotion(Transition transition) { 180142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki assertNotNull(transition); 181142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki PathMotion motion = transition.getPathMotion(); 182142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki assertNotNull(motion); 183142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki assertTrue(motion instanceof PatternPathMotion); 184142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki PatternPathMotion pattern = (PatternPathMotion) motion; 185142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki Path path = pattern.getPatternPath(); 186142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki PathMeasure measure = new PathMeasure(path, false); 187142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki assertEquals(200f, measure.getLength(), 0.1f); 188142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki } 189142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki 1908158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki public static class CustomTransition extends Transition { 1918158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki public CustomTransition() { 1928158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki fail("Default constructor was not expected"); 1938158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki } 1948158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki 1958158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki @SuppressWarnings("unused") // This constructor is used in XML 1968158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki public CustomTransition(Context context, AttributeSet attrs) { 1978158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki super(context, attrs); 1988158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki } 1998158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki 2008158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki @Override 2018158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki public void captureStartValues(@NonNull TransitionValues transitionValues) { 2028158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki } 2038158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki 2048158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki @Override 2058158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki public void captureEndValues(@NonNull TransitionValues transitionValues) { 2068158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki } 2078158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki } 2088158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki 209142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki public static class CustomPathMotion extends PathMotion { 210142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki public CustomPathMotion() { 211142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki fail("default constructor shouldn't be called."); 212142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki } 213142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki 214142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki public CustomPathMotion(Context context, AttributeSet attrs) { 215142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki super(context, attrs); 216142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki } 217142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki 218142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki @Override 219142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki public Path getPath(float startX, float startY, float endX, float endY) { 220142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki return null; 221142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki } 222142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki } 223142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki 2248158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki public static class InflationFade extends Fade { 2258158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki public InflationFade(Context context, AttributeSet attrs) { 2268158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki super(context, attrs); 2278158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki } 2288158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki } 2298158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki 2308158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki public static class InflationChangeBounds extends ChangeBounds { 2318158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki public InflationChangeBounds(Context context, AttributeSet attrs) { 2328158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki super(context, attrs); 2338158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki } 2348158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki } 2358158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki 2367bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki public static class InflationSlide extends Slide { 2377bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki public InflationSlide(Context context, AttributeSet attrs) { 2387bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki super(context, attrs); 2397bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki } 2407bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki } 2417bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki 2428158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki public static class InflationTransitionSet extends TransitionSet { 2438158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki public InflationTransitionSet(Context context, AttributeSet attrs) { 2448158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki super(context, attrs); 2458158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki } 2468158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki } 2478158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki 2487bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki public static class InflationChangeImageTransform extends ChangeImageTransform { 2497bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki public InflationChangeImageTransform(Context context, AttributeSet attrs) { 2507bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki super(context, attrs); 2517bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki } 2527bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki } 2537bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki 2547bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki public static class InflationChangeTransform extends ChangeTransform { 2557bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki public InflationChangeTransform(Context context, AttributeSet attrs) { 2567bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki super(context, attrs); 2577bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki } 2587bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki } 2597bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki 2608158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki public static class InflationAutoTransition extends AutoTransition { 2618158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki public InflationAutoTransition(Context context, AttributeSet attrs) { 2628158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki super(context, attrs); 2638158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki } 2648158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki } 2658158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki 2667bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki public static class InflationChangeClipBounds extends ChangeClipBounds { 2677bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki public InflationChangeClipBounds(Context context, AttributeSet attrs) { 2687bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki super(context, attrs); 2697bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki } 2707bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki } 2717bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki 2727bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki public static class InflationExplode extends Explode { 2737bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki public InflationExplode(Context context, AttributeSet attrs) { 2747bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki super(context, attrs); 2757bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki } 2767bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki } 2777bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki 2788158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki} 279