Merge "Ensure that transitions animating alpha end on a reasonable value" into klp-dev
This commit is contained in:
@@ -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);
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user