13cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount/*
23cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount * Copyright (C) 2016 The Android Open Source Project
33cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount *
43cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount * Licensed under the Apache License, Version 2.0 (the "License");
53cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount * you may not use this file except in compliance with the License.
63cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount * You may obtain a copy of the License at
73cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount *
83cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount *      http://www.apache.org/licenses/LICENSE-2.0
93cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount *
103cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount * Unless required by applicable law or agreed to in writing, software
113cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount * distributed under the License is distributed on an "AS IS" BASIS,
123cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
133cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount * See the License for the specific language governing permissions and
143cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount * limitations under the License.
153cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount */
163cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount
173cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mountpackage android.transition;
183cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount
193cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mountimport android.animation.AnimatorSetActivity;
203cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mountimport android.app.Activity;
213cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mountimport android.test.ActivityInstrumentationTestCase2;
223cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mountimport android.test.suitebuilder.annotation.SmallTest;
233cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mountimport android.transition.Transition.TransitionListener;
24e0c37bdea37f78778f6c4f23f03604e59dfb0d55Ben Weissimport android.transition.TransitionListenerAdapter;
253cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mountimport android.view.View;
263cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mountimport android.view.ViewGroup;
273cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount
283cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mountimport com.android.frameworks.coretests.R;
293cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount
303cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mountimport java.util.concurrent.CountDownLatch;
313cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mountimport java.util.concurrent.TimeUnit;
323cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount
333cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mountimport static android.support.test.espresso.Espresso.onView;
343cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount
353cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mountpublic class FadeTransitionTest extends ActivityInstrumentationTestCase2<AnimatorSetActivity> {
363cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount    Activity mActivity;
373cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount    public FadeTransitionTest() {
383cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        super(AnimatorSetActivity.class);
393cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount    }
403cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount
413cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount    @Override
423cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount    protected void setUp() throws Exception {
433cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        mActivity = getActivity();
443cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount    }
453cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount
463cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount    @SmallTest
473cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount    public void testFadeOutAndIn() throws Throwable {
483cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        View square1 = mActivity.findViewById(R.id.square1);
493cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        Fade fadeOut = new Fade(Fade.MODE_OUT);
503cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        TransitionLatch latch = setVisibilityInTransition(fadeOut, R.id.square1, View.INVISIBLE);
513cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        assertTrue(latch.startLatch.await(200, TimeUnit.MILLISECONDS));
523cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        assertEquals(View.VISIBLE, square1.getVisibility());
532d2d51adcfeda7bb644e30f9518331da3727cb94George Mount        waitForAnimation();
543cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        assertFalse(square1.getTransitionAlpha() == 0 || square1.getTransitionAlpha() == 1);
553cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        assertTrue(latch.endLatch.await(400, TimeUnit.MILLISECONDS));
563cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        assertEquals(1.0f, square1.getTransitionAlpha());
573cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        assertEquals(View.INVISIBLE, square1.getVisibility());
583cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount
593cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        Fade fadeIn = new Fade(Fade.MODE_IN);
603cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        latch = setVisibilityInTransition(fadeIn, R.id.square1, View.VISIBLE);
613cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        assertTrue(latch.startLatch.await(200, TimeUnit.MILLISECONDS));
623cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        assertEquals(View.VISIBLE, square1.getVisibility());
632d2d51adcfeda7bb644e30f9518331da3727cb94George Mount        waitForAnimation();
643cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        final float transitionAlpha = square1.getTransitionAlpha();
653cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        assertTrue("expecting transitionAlpha to be between 0 and 1. Was " + transitionAlpha,
663cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount                transitionAlpha > 0 && transitionAlpha < 1);
673cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        assertTrue(latch.endLatch.await(400, TimeUnit.MILLISECONDS));
683cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        assertEquals(1.0f, square1.getTransitionAlpha());
693cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        assertEquals(View.VISIBLE, square1.getVisibility());
703cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount    }
713cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount
723cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount    @SmallTest
733cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount    public void testFadeOutInterrupt() throws Throwable {
743cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        View square1 = mActivity.findViewById(R.id.square1);
753cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        Fade fadeOut = new Fade(Fade.MODE_OUT);
763cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        FadeValueCheck fadeOutValueCheck = new FadeValueCheck(square1);
773cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        fadeOut.addListener(fadeOutValueCheck);
783cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        TransitionLatch outLatch = setVisibilityInTransition(fadeOut, R.id.square1, View.INVISIBLE);
793cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        assertTrue(outLatch.startLatch.await(200, TimeUnit.MILLISECONDS));
802d2d51adcfeda7bb644e30f9518331da3727cb94George Mount        waitForAnimation();
813cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount
823cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        Fade fadeIn = new Fade(Fade.MODE_IN);
833cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        FadeValueCheck fadeInValueCheck = new FadeValueCheck(square1);
843cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        fadeIn.addListener(fadeInValueCheck);
853cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        TransitionLatch inLatch = setVisibilityInTransition(fadeIn, R.id.square1, View.VISIBLE);
863cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        assertTrue(inLatch.startLatch.await(200, TimeUnit.MILLISECONDS));
873cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount
883cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        assertEquals(fadeOutValueCheck.pauseTransitionAlpha, fadeInValueCheck.startTransitionAlpha);
893cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        assertTrue("expecting transitionAlpha to be between 0 and 1. Was " +
903cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount                fadeOutValueCheck.pauseTransitionAlpha,
913cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount                fadeOutValueCheck.pauseTransitionAlpha > 0 &&
923cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount                        fadeOutValueCheck.pauseTransitionAlpha < 1);
933cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount
943cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        assertTrue(inLatch.endLatch.await(400, TimeUnit.MILLISECONDS));
953cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        assertEquals(1.0f, square1.getTransitionAlpha());
963cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        assertEquals(View.VISIBLE, square1.getVisibility());
973cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount    }
983cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount
993cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount    @SmallTest
1003cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount    public void testFadeInInterrupt() throws Throwable {
1013cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        final View square1 = mActivity.findViewById(R.id.square1);
1023cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        runTestOnUiThread(new Runnable() {
1033cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount            @Override
1043cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount            public void run() {
1053cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount                square1.setVisibility(View.INVISIBLE);
1063cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount            }
1073cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        });
1083cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        Fade fadeIn = new Fade(Fade.MODE_IN);
1093cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        FadeValueCheck fadeInValueCheck = new FadeValueCheck(square1);
1103cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        fadeIn.addListener(fadeInValueCheck);
1113cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        TransitionLatch inLatch = setVisibilityInTransition(fadeIn, R.id.square1, View.VISIBLE);
1123cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        assertTrue(inLatch.startLatch.await(200, TimeUnit.MILLISECONDS));
1132d2d51adcfeda7bb644e30f9518331da3727cb94George Mount        waitForAnimation();
1143cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount
1153cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        Fade fadeOut = new Fade(Fade.MODE_OUT);
1163cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        FadeValueCheck fadeOutValueCheck = new FadeValueCheck(square1);
1173cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        fadeOut.addListener(fadeOutValueCheck);
1183cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        TransitionLatch outLatch = setVisibilityInTransition(fadeOut, R.id.square1, View.INVISIBLE);
1193cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        assertTrue(outLatch.startLatch.await(200, TimeUnit.MILLISECONDS));
1203cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount
1213cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        assertEquals(fadeOutValueCheck.pauseTransitionAlpha, fadeInValueCheck.startTransitionAlpha);
1223cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        assertTrue("expecting transitionAlpha to be between 0 and 1. Was " +
1233cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount                        fadeInValueCheck.pauseTransitionAlpha,
1243cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount                fadeInValueCheck.pauseTransitionAlpha > 0 &&
1253cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount                        fadeInValueCheck.pauseTransitionAlpha < 1);
1263cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount
1273cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        assertTrue(outLatch.endLatch.await(400, TimeUnit.MILLISECONDS));
1283cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        assertEquals(1.0f, square1.getTransitionAlpha());
1293cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        assertEquals(View.INVISIBLE, square1.getVisibility());
1303cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount    }
1313cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount
1323cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount    public TransitionLatch setVisibilityInTransition(final Transition transition, int viewId,
1333cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount            final int visibility) throws Throwable {
1343cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        final ViewGroup sceneRoot = (ViewGroup) mActivity.findViewById(R.id.container);
1353cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        final View view = sceneRoot.findViewById(viewId);
1363cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        TransitionLatch latch = new TransitionLatch();
1373cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        transition.addListener(latch);
1383cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        runTestOnUiThread(new Runnable() {
1393cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount            @Override
1403cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount            public void run() {
1413cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount                TransitionManager.beginDelayedTransition(sceneRoot, transition);
1423cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount                view.setVisibility(visibility);
1433cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount            }
1443cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        });
1453cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        return latch;
1463cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount    }
1473cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount
1482d2d51adcfeda7bb644e30f9518331da3727cb94George Mount    /**
1492d2d51adcfeda7bb644e30f9518331da3727cb94George Mount     * Waits for two animation frames to ensure animation values change.
1502d2d51adcfeda7bb644e30f9518331da3727cb94George Mount     */
1512d2d51adcfeda7bb644e30f9518331da3727cb94George Mount    private void waitForAnimation() throws InterruptedException {
1522d2d51adcfeda7bb644e30f9518331da3727cb94George Mount        final CountDownLatch latch = new CountDownLatch(2);
1532d2d51adcfeda7bb644e30f9518331da3727cb94George Mount        mActivity.getWindow().getDecorView().postOnAnimation(new Runnable() {
1542d2d51adcfeda7bb644e30f9518331da3727cb94George Mount            @Override
1552d2d51adcfeda7bb644e30f9518331da3727cb94George Mount            public void run() {
1562d2d51adcfeda7bb644e30f9518331da3727cb94George Mount                latch.countDown();
1572d2d51adcfeda7bb644e30f9518331da3727cb94George Mount                if (latch.getCount() > 0) {
1582d2d51adcfeda7bb644e30f9518331da3727cb94George Mount                    mActivity.getWindow().getDecorView().postOnAnimation(this);
1592d2d51adcfeda7bb644e30f9518331da3727cb94George Mount                }
1602d2d51adcfeda7bb644e30f9518331da3727cb94George Mount            }
1612d2d51adcfeda7bb644e30f9518331da3727cb94George Mount        });
1622d2d51adcfeda7bb644e30f9518331da3727cb94George Mount        assertTrue(latch.await(1, TimeUnit.SECONDS));
1632d2d51adcfeda7bb644e30f9518331da3727cb94George Mount    }
1642d2d51adcfeda7bb644e30f9518331da3727cb94George Mount
1653cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount    public static class TransitionLatch implements TransitionListener {
1663cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        public CountDownLatch startLatch = new CountDownLatch(1);
1673cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        public CountDownLatch endLatch = new CountDownLatch(1);
1683cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        public CountDownLatch cancelLatch = new CountDownLatch(1);
1693cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        public CountDownLatch pauseLatch = new CountDownLatch(1);
1703cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        public CountDownLatch resumeLatch = new CountDownLatch(1);
1713cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount
1723cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        @Override
1733cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        public void onTransitionStart(Transition transition) {
1743cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount            startLatch.countDown();
1753cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        }
1763cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount
1773cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        @Override
1783cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        public void onTransitionEnd(Transition transition) {
1793cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount            endLatch.countDown();
1803cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount            transition.removeListener(this);
1813cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        }
1823cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount
1833cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        @Override
1843cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        public void onTransitionCancel(Transition transition) {
1853cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount            cancelLatch.countDown();
1863cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        }
1873cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount
1883cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        @Override
1893cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        public void onTransitionPause(Transition transition) {
1903cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount            pauseLatch.countDown();
1913cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        }
1923cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount
1933cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        @Override
1943cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        public void onTransitionResume(Transition transition) {
1953cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount            resumeLatch.countDown();
1963cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        }
1973cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount    }
1983cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount
1993cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount    private static class FadeValueCheck extends TransitionListenerAdapter {
2003cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        public float startTransitionAlpha;
2013cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        public float pauseTransitionAlpha;
2023cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        private final View mView;
2033cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount
2043cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        public FadeValueCheck(View view) {
2053cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount            mView = view;
2063cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        }
2073cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        @Override
2083cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        public void onTransitionStart(Transition transition) {
2093cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount            startTransitionAlpha = mView.getTransitionAlpha();
2103cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        }
2113cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount
2123cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        @Override
2133cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        public void onTransitionPause(Transition transition) {
2143cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount            pauseTransitionAlpha = mView.getTransitionAlpha();
2153cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount        }
2163cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount    }
2173cf9fa3db0231d035142c27992818d8f7827ac3eGeorge Mount}
218