Make shared element visible when exit transition finishes early.

Bug 16124915

Change-Id: I91aa4a4912f3edb298ec75dd4178572a2c941a31
This commit is contained in:
George Mount
2014-07-08 11:07:33 -07:00
parent b0a11172ea
commit 8d3cd2c8cf
2 changed files with 4 additions and 2 deletions

View File

@@ -58,6 +58,7 @@ class EnterTransitionCoordinator extends ActivityTransitionCoordinator {
private Bundle mSharedElementsBundle;
private boolean mWasOpaque;
private boolean mAreViewsReady;
private boolean mIsViewsTransitionStarted;
public EnterTransitionCoordinator(Activity activity, ResultReceiver resultReceiver,
ArrayList<String> sharedElementNames, boolean isReturning) {
@@ -219,7 +220,7 @@ class EnterTransitionCoordinator extends ActivityTransitionCoordinator {
private void cancel() {
if (!mIsCanceled) {
mIsCanceled = true;
if (getViewsTransition() == null) {
if (getViewsTransition() == null || mIsViewsTransitionStarted) {
setViewVisibility(mSharedElements, View.VISIBLE);
} else {
mTransitioningViews.addAll(mSharedElements);
@@ -363,6 +364,7 @@ class EnterTransitionCoordinator extends ActivityTransitionCoordinator {
stripOffscreenViews();
}
}
mIsViewsTransitionStarted = mIsViewsTransitionStarted || startEnterTransition;
Transition transition = mergeTransitions(sharedElementTransition, viewsTransition);
if (startSharedElementTransition) {

View File

@@ -116,6 +116,7 @@ class ExitTransitionCoordinator extends ActivityTransitionCoordinator {
setViewVisibility(mTransitioningViews, View.VISIBLE);
setViewVisibility(mSharedElements, View.VISIBLE);
mIsHidden = true;
clearState();
}
private void sharedElementExitBack() {
@@ -357,7 +358,6 @@ class ExitTransitionCoordinator extends ActivityTransitionCoordinator {
}
if (!mIsReturning && mExitNotified) {
mActivity = null; // don't need it anymore
clearState();
}
}