Loading core/java/android/transition/Fade.java +33 −1 Original line number Diff line number Diff line Loading @@ -91,6 +91,9 @@ public class Fade extends Visibility { return null; } final ObjectAnimator anim = ObjectAnimator.ofFloat(view, "alpha", startAlpha, endAlpha); if (DBG) { Log.d(LOG_TAG, "Created animator " + anim); } if (listener != null) { anim.addListener(listener); anim.addPauseListener(listener); Loading Loading @@ -146,12 +149,41 @@ public class Fade extends Visibility { final View endView = endValues.view; if (DBG) { View startView = (startValues != null) ? startValues.view : null; Log.d(LOG_TAG, "Fade.onDisappear: startView, startVis, endView, endVis = " + Log.d(LOG_TAG, "Fade.onAppear: startView, startVis, endView, endVis = " + startView + ", " + startVisibility + ", " + endView + ", " + endVisibility); } // if alpha < 1, just fade it in from the current value if (endView.getAlpha() == 1.0f) { endView.setAlpha(0); TransitionListener transitionListener = new TransitionListenerAdapter() { boolean mCanceled = false; float mPausedAlpha; @Override public void onTransitionCancel(Transition transition) { endView.setAlpha(1); mCanceled = true; } @Override public void onTransitionEnd(Transition transition) { if (!mCanceled) { endView.setAlpha(1); } } @Override public void onTransitionPause(Transition transition) { mPausedAlpha = endView.getAlpha(); endView.setAlpha(1); } @Override public void onTransitionResume(Transition transition) { endView.setAlpha(mPausedAlpha); } }; addListener(transitionListener); } return createAnimation(endView, endView.getAlpha(), 1, null); } Loading core/java/android/transition/Transition.java +4 −3 Original line number Diff line number Diff line Loading @@ -1240,12 +1240,13 @@ public abstract class Transition implements Cloneable { View oldView = oldInfo.view; TransitionValues newValues = mEndValues.viewValues != null ? mEndValues.viewValues.get(oldView) : null; if (newValues == null) { newValues = mEndValues.idValues.get(oldView.getId()); } if (oldValues != null) { // if oldValues null, then transition didn't care to stash values, // and won't get canceled if (newValues == null) { cancel = true; } else { if (newValues != null) { for (String key : oldValues.values.keySet()) { Object oldValue = oldValues.values.get(key); Object newValue = newValues.values.get(key); Loading core/java/android/transition/TransitionManager.java +14 −18 Original line number Diff line number Diff line Loading @@ -349,23 +349,19 @@ public class TransitionManager { * value of null causes the TransitionManager to use the default transition. */ public static void beginDelayedTransition(final ViewGroup sceneRoot, Transition transition) { // TEMPORARY: disabling delayed transitions until a fix for the various ActionBar- // triggered artifacts is found // if (!sPendingTransitions.contains(sceneRoot) && sceneRoot.isLaidOut()) { // if (Transition.DBG) { // Log.d(LOG_TAG, "beginDelayedTransition: root, transition = " + // sceneRoot + ", " + transition); // } // sPendingTransitions.add(sceneRoot); // if (transition == null) { // transition = sDefaultTransition; // } // final Transition transitionClone = transition.clone(); // sceneChangeSetup(sceneRoot, transitionClone); // Scene.setCurrentScene(sceneRoot, null); // sceneChangeRunTransition(sceneRoot, transitionClone); // } if (!sPendingTransitions.contains(sceneRoot) && sceneRoot.isLaidOut()) { if (Transition.DBG) { Log.d(LOG_TAG, "beginDelayedTransition: root, transition = " + sceneRoot + ", " + transition); } sPendingTransitions.add(sceneRoot); if (transition == null) { transition = sDefaultTransition; } final Transition transitionClone = transition.clone(); sceneChangeSetup(sceneRoot, transitionClone); Scene.setCurrentScene(sceneRoot, null); sceneChangeRunTransition(sceneRoot, transitionClone); } } } Loading
core/java/android/transition/Fade.java +33 −1 Original line number Diff line number Diff line Loading @@ -91,6 +91,9 @@ public class Fade extends Visibility { return null; } final ObjectAnimator anim = ObjectAnimator.ofFloat(view, "alpha", startAlpha, endAlpha); if (DBG) { Log.d(LOG_TAG, "Created animator " + anim); } if (listener != null) { anim.addListener(listener); anim.addPauseListener(listener); Loading Loading @@ -146,12 +149,41 @@ public class Fade extends Visibility { final View endView = endValues.view; if (DBG) { View startView = (startValues != null) ? startValues.view : null; Log.d(LOG_TAG, "Fade.onDisappear: startView, startVis, endView, endVis = " + Log.d(LOG_TAG, "Fade.onAppear: startView, startVis, endView, endVis = " + startView + ", " + startVisibility + ", " + endView + ", " + endVisibility); } // if alpha < 1, just fade it in from the current value if (endView.getAlpha() == 1.0f) { endView.setAlpha(0); TransitionListener transitionListener = new TransitionListenerAdapter() { boolean mCanceled = false; float mPausedAlpha; @Override public void onTransitionCancel(Transition transition) { endView.setAlpha(1); mCanceled = true; } @Override public void onTransitionEnd(Transition transition) { if (!mCanceled) { endView.setAlpha(1); } } @Override public void onTransitionPause(Transition transition) { mPausedAlpha = endView.getAlpha(); endView.setAlpha(1); } @Override public void onTransitionResume(Transition transition) { endView.setAlpha(mPausedAlpha); } }; addListener(transitionListener); } return createAnimation(endView, endView.getAlpha(), 1, null); } Loading
core/java/android/transition/Transition.java +4 −3 Original line number Diff line number Diff line Loading @@ -1240,12 +1240,13 @@ public abstract class Transition implements Cloneable { View oldView = oldInfo.view; TransitionValues newValues = mEndValues.viewValues != null ? mEndValues.viewValues.get(oldView) : null; if (newValues == null) { newValues = mEndValues.idValues.get(oldView.getId()); } if (oldValues != null) { // if oldValues null, then transition didn't care to stash values, // and won't get canceled if (newValues == null) { cancel = true; } else { if (newValues != null) { for (String key : oldValues.values.keySet()) { Object oldValue = oldValues.values.get(key); Object newValue = newValues.values.get(key); Loading
core/java/android/transition/TransitionManager.java +14 −18 Original line number Diff line number Diff line Loading @@ -349,23 +349,19 @@ public class TransitionManager { * value of null causes the TransitionManager to use the default transition. */ public static void beginDelayedTransition(final ViewGroup sceneRoot, Transition transition) { // TEMPORARY: disabling delayed transitions until a fix for the various ActionBar- // triggered artifacts is found // if (!sPendingTransitions.contains(sceneRoot) && sceneRoot.isLaidOut()) { // if (Transition.DBG) { // Log.d(LOG_TAG, "beginDelayedTransition: root, transition = " + // sceneRoot + ", " + transition); // } // sPendingTransitions.add(sceneRoot); // if (transition == null) { // transition = sDefaultTransition; // } // final Transition transitionClone = transition.clone(); // sceneChangeSetup(sceneRoot, transitionClone); // Scene.setCurrentScene(sceneRoot, null); // sceneChangeRunTransition(sceneRoot, transitionClone); // } if (!sPendingTransitions.contains(sceneRoot) && sceneRoot.isLaidOut()) { if (Transition.DBG) { Log.d(LOG_TAG, "beginDelayedTransition: root, transition = " + sceneRoot + ", " + transition); } sPendingTransitions.add(sceneRoot); if (transition == null) { transition = sDefaultTransition; } final Transition transitionClone = transition.clone(); sceneChangeSetup(sceneRoot, transitionClone); Scene.setCurrentScene(sceneRoot, null); sceneChangeRunTransition(sceneRoot, transitionClone); } } }