Only use return transition when requested.
Fixes: 233975804 When exiting back, the activity transition should not run unless an activity transition has been requested. Test: existing ActivityTransitionTests, manually use Settings Change-Id: Ice2cf6d82c25c65076a9656ddd847a9e2aa68b80
This commit is contained in:
@@ -145,7 +145,10 @@ class ActivityTransitionState {
|
||||
* that it is preserved through activty destroy and restore.
|
||||
*/
|
||||
private ArrayList<String> getPendingExitNames() {
|
||||
if (mPendingExitNames == null && mEnterTransitionCoordinator != null) {
|
||||
if (mPendingExitNames == null
|
||||
&& mEnterTransitionCoordinator != null
|
||||
&& !mEnterTransitionCoordinator.isReturning()
|
||||
) {
|
||||
mPendingExitNames = mEnterTransitionCoordinator.getPendingExitSharedElementNames();
|
||||
}
|
||||
return mPendingExitNames;
|
||||
@@ -202,6 +205,7 @@ class ActivityTransitionState {
|
||||
restoreExitedViews();
|
||||
activity.getWindow().getDecorView().setVisibility(View.VISIBLE);
|
||||
}
|
||||
getPendingExitNames(); // Set mPendingExitNames before resetting mEnterTransitionCoordinator
|
||||
mEnterTransitionCoordinator = new EnterTransitionCoordinator(activity,
|
||||
resultReceiver, sharedElementNames, mEnterActivityOptions.isReturning(),
|
||||
mEnterActivityOptions.isCrossTask());
|
||||
@@ -250,6 +254,7 @@ class ActivityTransitionState {
|
||||
public void onStop(Activity activity) {
|
||||
restoreExitedViews();
|
||||
if (mEnterTransitionCoordinator != null) {
|
||||
getPendingExitNames(); // Set mPendingExitNames before clearing
|
||||
mEnterTransitionCoordinator.stop();
|
||||
mEnterTransitionCoordinator = null;
|
||||
}
|
||||
@@ -275,6 +280,7 @@ class ActivityTransitionState {
|
||||
restoreReenteringViews();
|
||||
} else if (mEnterTransitionCoordinator.isReturning()) {
|
||||
mEnterTransitionCoordinator.runAfterTransitionsComplete(() -> {
|
||||
getPendingExitNames(); // Set mPendingExitNames before clearing
|
||||
mEnterTransitionCoordinator = null;
|
||||
});
|
||||
}
|
||||
@@ -374,6 +380,7 @@ class ActivityTransitionState {
|
||||
}
|
||||
|
||||
public void startExitOutTransition(Activity activity, Bundle options) {
|
||||
getPendingExitNames(); // Set mPendingExitNames before clearing mEnterTransitionCoordinator
|
||||
mEnterTransitionCoordinator = null;
|
||||
if (!activity.getWindow().hasFeature(Window.FEATURE_ACTIVITY_TRANSITIONS) ||
|
||||
mExitTransitionCoordinators == null) {
|
||||
|
||||
Reference in New Issue
Block a user