Merge "Only use return transition when requested." into tm-qpr-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
efff8e9f03
@@ -145,7 +145,10 @@ class ActivityTransitionState {
|
|||||||
* that it is preserved through activty destroy and restore.
|
* that it is preserved through activty destroy and restore.
|
||||||
*/
|
*/
|
||||||
private ArrayList<String> getPendingExitNames() {
|
private ArrayList<String> getPendingExitNames() {
|
||||||
if (mPendingExitNames == null && mEnterTransitionCoordinator != null) {
|
if (mPendingExitNames == null
|
||||||
|
&& mEnterTransitionCoordinator != null
|
||||||
|
&& !mEnterTransitionCoordinator.isReturning()
|
||||||
|
) {
|
||||||
mPendingExitNames = mEnterTransitionCoordinator.getPendingExitSharedElementNames();
|
mPendingExitNames = mEnterTransitionCoordinator.getPendingExitSharedElementNames();
|
||||||
}
|
}
|
||||||
return mPendingExitNames;
|
return mPendingExitNames;
|
||||||
@@ -202,6 +205,7 @@ class ActivityTransitionState {
|
|||||||
restoreExitedViews();
|
restoreExitedViews();
|
||||||
activity.getWindow().getDecorView().setVisibility(View.VISIBLE);
|
activity.getWindow().getDecorView().setVisibility(View.VISIBLE);
|
||||||
}
|
}
|
||||||
|
getPendingExitNames(); // Set mPendingExitNames before resetting mEnterTransitionCoordinator
|
||||||
mEnterTransitionCoordinator = new EnterTransitionCoordinator(activity,
|
mEnterTransitionCoordinator = new EnterTransitionCoordinator(activity,
|
||||||
resultReceiver, sharedElementNames, mEnterActivityOptions.isReturning(),
|
resultReceiver, sharedElementNames, mEnterActivityOptions.isReturning(),
|
||||||
mEnterActivityOptions.isCrossTask());
|
mEnterActivityOptions.isCrossTask());
|
||||||
@@ -250,6 +254,7 @@ class ActivityTransitionState {
|
|||||||
public void onStop(Activity activity) {
|
public void onStop(Activity activity) {
|
||||||
restoreExitedViews();
|
restoreExitedViews();
|
||||||
if (mEnterTransitionCoordinator != null) {
|
if (mEnterTransitionCoordinator != null) {
|
||||||
|
getPendingExitNames(); // Set mPendingExitNames before clearing
|
||||||
mEnterTransitionCoordinator.stop();
|
mEnterTransitionCoordinator.stop();
|
||||||
mEnterTransitionCoordinator = null;
|
mEnterTransitionCoordinator = null;
|
||||||
}
|
}
|
||||||
@@ -275,6 +280,7 @@ class ActivityTransitionState {
|
|||||||
restoreReenteringViews();
|
restoreReenteringViews();
|
||||||
} else if (mEnterTransitionCoordinator.isReturning()) {
|
} else if (mEnterTransitionCoordinator.isReturning()) {
|
||||||
mEnterTransitionCoordinator.runAfterTransitionsComplete(() -> {
|
mEnterTransitionCoordinator.runAfterTransitionsComplete(() -> {
|
||||||
|
getPendingExitNames(); // Set mPendingExitNames before clearing
|
||||||
mEnterTransitionCoordinator = null;
|
mEnterTransitionCoordinator = null;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -374,6 +380,7 @@ class ActivityTransitionState {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void startExitOutTransition(Activity activity, Bundle options) {
|
public void startExitOutTransition(Activity activity, Bundle options) {
|
||||||
|
getPendingExitNames(); // Set mPendingExitNames before clearing mEnterTransitionCoordinator
|
||||||
mEnterTransitionCoordinator = null;
|
mEnterTransitionCoordinator = null;
|
||||||
if (!activity.getWindow().hasFeature(Window.FEATURE_ACTIVITY_TRANSITIONS) ||
|
if (!activity.getWindow().hasFeature(Window.FEATURE_ACTIVITY_TRANSITIONS) ||
|
||||||
mExitTransitionCoordinators == null) {
|
mExitTransitionCoordinators == null) {
|
||||||
|
|||||||
Reference in New Issue
Block a user