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 Transition transition = inflater.inflateTransition(R.transition.transition_constructors); 488158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki assertTrue(transition instanceof TransitionSet); 498158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki TransitionSet set = (TransitionSet) transition; 50913cfb35ee8a1fc3223c4f98bd1e22182b035186Yuichi Araki assertEquals(10, set.getTransitionCount()); 518158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki } 528158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki 538158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki @Test 548158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki public void testInflation() { 558158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki TransitionInflater inflater = TransitionInflater.from(rule.getActivity()); 568158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki verifyFadeProperties(inflater.inflateTransition(R.transition.fade)); 577bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki verifyChangeBoundsProperties(inflater.inflateTransition(R.transition.change_bounds)); 58ae4925aede60914bcca5ed47d7ce868ae14313a2Yuichi Araki verifySlideProperties(inflater.inflateTransition(R.transition.slide)); 594c904b38c763179727b9b5ea7a80454630545663Yuichi Araki verifyExplodeProperties(inflater.inflateTransition(R.transition.explode)); 60fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki verifyChangeImageTransformProperties( 61fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki inflater.inflateTransition(R.transition.change_image_transform)); 6250ce74b0963de66b294761c045428562d946b65aYuichi Araki verifyChangeTransformProperties(inflater.inflateTransition(R.transition.change_transform)); 63f137a45c77ee2e753262dc3c5f691fdcfd75053bYuichi Araki verifyChangeClipBoundsProperties( 64f137a45c77ee2e753262dc3c5f691fdcfd75053bYuichi Araki inflater.inflateTransition(R.transition.change_clip_bounds)); 658158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki verifyAutoTransitionProperties(inflater.inflateTransition(R.transition.auto_transition)); 66913cfb35ee8a1fc3223c4f98bd1e22182b035186Yuichi Araki verifyChangeScrollProperties(inflater.inflateTransition(R.transition.change_scroll)); 678158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki verifyTransitionSetProperties(inflater.inflateTransition(R.transition.transition_set)); 688158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki verifyCustomTransitionProperties( 698158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki inflater.inflateTransition(R.transition.custom_transition)); 708158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki verifyTargetIds(inflater.inflateTransition(R.transition.target_ids)); 718158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki verifyTargetNames(inflater.inflateTransition(R.transition.target_names)); 728158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki verifyTargetClass(inflater.inflateTransition(R.transition.target_classes)); 73142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki verifyArcMotion(inflater.inflateTransition(R.transition.arc_motion)); 74142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki verifyCustomPathMotion(inflater.inflateTransition(R.transition.custom_path_motion)); 75142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki verifyPatternPathMotion(inflater.inflateTransition(R.transition.pattern_path_motion)); 768158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki } 778158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki 788158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki // TODO: Add test for TransitionManager 798158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki 808158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki private void verifyFadeProperties(Transition transition) { 818158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki assertTrue(transition instanceof Fade); 828158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki Fade fade = (Fade) transition; 838158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki assertEquals(Fade.OUT, fade.getMode()); 848158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki } 858158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki 867bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki private void verifyChangeBoundsProperties(Transition transition) { 877bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki assertTrue(transition instanceof ChangeBounds); 887bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki ChangeBounds changeBounds = (ChangeBounds) transition; 897bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki assertTrue(changeBounds.getResizeClip()); 907bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki } 917bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki 92ae4925aede60914bcca5ed47d7ce868ae14313a2Yuichi Araki private void verifySlideProperties(Transition transition) { 93ae4925aede60914bcca5ed47d7ce868ae14313a2Yuichi Araki assertTrue(transition instanceof Slide); 94ae4925aede60914bcca5ed47d7ce868ae14313a2Yuichi Araki Slide slide = (Slide) transition; 95ae4925aede60914bcca5ed47d7ce868ae14313a2Yuichi Araki assertEquals(Gravity.TOP, slide.getSlideEdge()); 96ae4925aede60914bcca5ed47d7ce868ae14313a2Yuichi Araki } 97ae4925aede60914bcca5ed47d7ce868ae14313a2Yuichi Araki 984c904b38c763179727b9b5ea7a80454630545663Yuichi Araki private void verifyExplodeProperties(Transition transition) { 994c904b38c763179727b9b5ea7a80454630545663Yuichi Araki assertTrue(transition instanceof Explode); 1004c904b38c763179727b9b5ea7a80454630545663Yuichi Araki Visibility visibility = (Visibility) transition; 1014c904b38c763179727b9b5ea7a80454630545663Yuichi Araki assertEquals(Visibility.MODE_IN, visibility.getMode()); 1024c904b38c763179727b9b5ea7a80454630545663Yuichi Araki } 1034c904b38c763179727b9b5ea7a80454630545663Yuichi Araki 104fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki private void verifyChangeImageTransformProperties(Transition transition) { 105fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki assertTrue(transition instanceof ChangeImageTransform); 106fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki } 107fdfa819aa29e12734eb90101f5f40d2636a5f1aeYuichi Araki 10850ce74b0963de66b294761c045428562d946b65aYuichi Araki private void verifyChangeTransformProperties(Transition transition) { 10950ce74b0963de66b294761c045428562d946b65aYuichi Araki assertTrue(transition instanceof ChangeTransform); 11050ce74b0963de66b294761c045428562d946b65aYuichi Araki ChangeTransform changeTransform = (ChangeTransform) transition; 11150ce74b0963de66b294761c045428562d946b65aYuichi Araki assertFalse(changeTransform.getReparent()); 11250ce74b0963de66b294761c045428562d946b65aYuichi Araki assertFalse(changeTransform.getReparentWithOverlay()); 11350ce74b0963de66b294761c045428562d946b65aYuichi Araki } 11450ce74b0963de66b294761c045428562d946b65aYuichi Araki 115f137a45c77ee2e753262dc3c5f691fdcfd75053bYuichi Araki private void verifyChangeClipBoundsProperties(Transition transition) { 116f137a45c77ee2e753262dc3c5f691fdcfd75053bYuichi Araki assertTrue(transition instanceof ChangeClipBounds); 117f137a45c77ee2e753262dc3c5f691fdcfd75053bYuichi Araki } 118f137a45c77ee2e753262dc3c5f691fdcfd75053bYuichi Araki 1198158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki private void verifyAutoTransitionProperties(Transition transition) { 1208158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki assertTrue(transition instanceof AutoTransition); 1218158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki } 1228158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki 123913cfb35ee8a1fc3223c4f98bd1e22182b035186Yuichi Araki private void verifyChangeScrollProperties(Transition transition) { 124913cfb35ee8a1fc3223c4f98bd1e22182b035186Yuichi Araki assertTrue(transition instanceof ChangeScroll); 125913cfb35ee8a1fc3223c4f98bd1e22182b035186Yuichi Araki } 126913cfb35ee8a1fc3223c4f98bd1e22182b035186Yuichi Araki 1278158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki private void verifyTransitionSetProperties(Transition transition) { 1288158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki assertTrue(transition instanceof TransitionSet); 1298158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki TransitionSet set = (TransitionSet) transition; 1308158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki assertEquals(TransitionSet.ORDERING_SEQUENTIAL, set.getOrdering()); 1318158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki assertEquals(2, set.getTransitionCount()); 1328158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki assertTrue(set.getTransitionAt(0) instanceof ChangeBounds); 1338158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki assertTrue(set.getTransitionAt(1) instanceof Fade); 1348158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki } 1358158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki 1368158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki private void verifyCustomTransitionProperties(Transition transition) { 1378158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki assertTrue(transition instanceof CustomTransition); 1388158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki } 1398158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki 1408158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki private void verifyTargetIds(Transition transition) { 1418158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki List<Integer> targets = transition.getTargetIds(); 1428158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki assertNotNull(targets); 1438158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki assertEquals(2, targets.size()); 1448158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki assertEquals(R.id.hello, (int) targets.get(0)); 1458158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki assertEquals(R.id.world, (int) targets.get(1)); 1468158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki } 1478158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki 1488158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki private void verifyTargetNames(Transition transition) { 1498158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki List<String> targets = transition.getTargetNames(); 1508158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki assertNotNull(targets); 1518158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki assertEquals(2, targets.size()); 1528158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki assertEquals("hello", targets.get(0)); 1538158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki assertEquals("world", targets.get(1)); 1548158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki } 1558158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki 1568158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki private void verifyTargetClass(Transition transition) { 1578158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki List<Class> targets = transition.getTargetTypes(); 1588158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki assertNotNull(targets); 1598158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki assertEquals(2, targets.size()); 1608158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki assertEquals(TextView.class, targets.get(0)); 1618158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki assertEquals(ImageView.class, targets.get(1)); 1628158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki } 1638158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki 164142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki private void verifyArcMotion(Transition transition) { 165142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki assertNotNull(transition); 166142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki PathMotion motion = transition.getPathMotion(); 167142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki assertNotNull(motion); 168142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki assertTrue(motion instanceof ArcMotion); 169142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki ArcMotion arcMotion = (ArcMotion) motion; 170142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki assertEquals(1f, arcMotion.getMinimumVerticalAngle(), 0.01f); 171142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki assertEquals(2f, arcMotion.getMinimumHorizontalAngle(), 0.01f); 172142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki assertEquals(53f, arcMotion.getMaximumAngle(), 0.01f); 173142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki } 174142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki 175142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki private void verifyCustomPathMotion(Transition transition) { 176142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki assertNotNull(transition); 177142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki PathMotion motion = transition.getPathMotion(); 178142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki assertNotNull(motion); 179142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki assertTrue(motion instanceof CustomPathMotion); 180142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki } 181142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki 182142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki private void verifyPatternPathMotion(Transition transition) { 183142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki assertNotNull(transition); 184142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki PathMotion motion = transition.getPathMotion(); 185142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki assertNotNull(motion); 186142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki assertTrue(motion instanceof PatternPathMotion); 187142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki PatternPathMotion pattern = (PatternPathMotion) motion; 188142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki Path path = pattern.getPatternPath(); 189142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki PathMeasure measure = new PathMeasure(path, false); 190142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki assertEquals(200f, measure.getLength(), 0.1f); 191142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki } 192142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki 1938158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki public static class CustomTransition extends Transition { 1948158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki public CustomTransition() { 1958158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki fail("Default constructor was not expected"); 1968158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki } 1978158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki 1988158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki @SuppressWarnings("unused") // This constructor is used in XML 1998158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki public CustomTransition(Context context, AttributeSet attrs) { 2008158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki super(context, attrs); 2018158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki } 2028158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki 2038158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki @Override 2048158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki public void captureStartValues(@NonNull TransitionValues transitionValues) { 2058158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki } 2068158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki 2078158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki @Override 2088158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki public void captureEndValues(@NonNull TransitionValues transitionValues) { 2098158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki } 2108158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki } 2118158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki 212142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki public static class CustomPathMotion extends PathMotion { 213142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki public CustomPathMotion() { 214142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki fail("default constructor shouldn't be called."); 215142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki } 216142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki 217142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki public CustomPathMotion(Context context, AttributeSet attrs) { 218142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki super(context, attrs); 219142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki } 220142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki 221142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki @Override 222142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki public Path getPath(float startX, float startY, float endX, float endY) { 223142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki return null; 224142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki } 225142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki } 226142a5654b5eff546b6fa1b9b938896356ff9b03bYuichi Araki 2278158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki public static class InflationFade extends Fade { 2288158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki public InflationFade(Context context, AttributeSet attrs) { 2298158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki super(context, attrs); 2308158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki } 2318158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki } 2328158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki 2338158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki public static class InflationChangeBounds extends ChangeBounds { 2348158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki public InflationChangeBounds(Context context, AttributeSet attrs) { 2358158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki super(context, attrs); 2368158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki } 2378158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki } 2388158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki 2397bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki public static class InflationSlide extends Slide { 2407bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki public InflationSlide(Context context, AttributeSet attrs) { 2417bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki super(context, attrs); 2427bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki } 2437bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki } 2447bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki 2458158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki public static class InflationTransitionSet extends TransitionSet { 2468158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki public InflationTransitionSet(Context context, AttributeSet attrs) { 2478158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki super(context, attrs); 2488158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki } 2498158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki } 2508158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki 2517bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki public static class InflationChangeImageTransform extends ChangeImageTransform { 2527bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki public InflationChangeImageTransform(Context context, AttributeSet attrs) { 2537bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki super(context, attrs); 2547bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki } 2557bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki } 2567bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki 2577bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki public static class InflationChangeTransform extends ChangeTransform { 2587bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki public InflationChangeTransform(Context context, AttributeSet attrs) { 2597bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki super(context, attrs); 2607bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki } 2617bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki } 2627bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki 2638158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki public static class InflationAutoTransition extends AutoTransition { 2648158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki public InflationAutoTransition(Context context, AttributeSet attrs) { 2658158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki super(context, attrs); 2668158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki } 2678158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki } 2688158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki 2697bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki public static class InflationChangeClipBounds extends ChangeClipBounds { 2707bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki public InflationChangeClipBounds(Context context, AttributeSet attrs) { 2717bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki super(context, attrs); 2727bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki } 2737bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki } 2747bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki 275913cfb35ee8a1fc3223c4f98bd1e22182b035186Yuichi Araki public static class InflationChangeScroll extends ChangeScroll { 276913cfb35ee8a1fc3223c4f98bd1e22182b035186Yuichi Araki public InflationChangeScroll(Context context, AttributeSet attrs) { 277913cfb35ee8a1fc3223c4f98bd1e22182b035186Yuichi Araki super(context, attrs); 278913cfb35ee8a1fc3223c4f98bd1e22182b035186Yuichi Araki } 279913cfb35ee8a1fc3223c4f98bd1e22182b035186Yuichi Araki } 280913cfb35ee8a1fc3223c4f98bd1e22182b035186Yuichi Araki 2817bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki public static class InflationExplode extends Explode { 2827bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki public InflationExplode(Context context, AttributeSet attrs) { 2837bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki super(context, attrs); 2847bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki } 2857bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki } 2867bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki 2878158051cdfef95fc1f22b56bba93b9c610f5ecb1Yuichi Araki} 288