am ffbf66b6: am afb539e6: Merge "Transition: remap if views in calling activity became invalid" into lmp-dev
* commit 'ffbf66b6e4e0c7de293156e32aff73f61127db2a': Transition: remap if views in calling activity became invalid
This commit is contained in:
@@ -193,7 +193,8 @@ class ActivityTransitionState {
|
||||
private void startEnter() {
|
||||
if (mEnterActivityOptions.isReturning()) {
|
||||
if (mExitingToView != null) {
|
||||
mEnterTransitionCoordinator.viewInstancesReady(mExitingFrom, mExitingToView);
|
||||
mEnterTransitionCoordinator.viewInstancesReady(mExitingFrom, mExitingTo,
|
||||
mExitingToView);
|
||||
} else {
|
||||
mEnterTransitionCoordinator.namedViewsReady(mExitingFrom, mExitingTo);
|
||||
}
|
||||
@@ -248,8 +249,6 @@ class ActivityTransitionState {
|
||||
mEnterTransitionCoordinator.cancelEnter();
|
||||
mEnterTransitionCoordinator = null;
|
||||
}
|
||||
ArrayMap<String, View> sharedElements = new ArrayMap<String, View>();
|
||||
activity.getWindow().getDecorView().findNamedViews(sharedElements);
|
||||
|
||||
ExitTransitionCoordinator exitCoordinator =
|
||||
new ExitTransitionCoordinator(activity, mEnteringNames, null, null, true);
|
||||
|
||||
@@ -24,6 +24,7 @@ import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.os.Message;
|
||||
import android.os.ResultReceiver;
|
||||
import android.text.TextUtils;
|
||||
import android.transition.Transition;
|
||||
import android.transition.TransitionManager;
|
||||
import android.util.ArrayMap;
|
||||
@@ -82,8 +83,22 @@ class EnterTransitionCoordinator extends ActivityTransitionCoordinator {
|
||||
});
|
||||
}
|
||||
|
||||
public void viewInstancesReady(ArrayList<String> accepted, ArrayList<View> localViews) {
|
||||
triggerViewsReady(mapSharedElements(accepted, localViews));
|
||||
public void viewInstancesReady(ArrayList<String> accepted, ArrayList<String> localNames,
|
||||
ArrayList<View> localViews) {
|
||||
boolean remap = false;
|
||||
for (int i = 0; i < localViews.size(); i++) {
|
||||
View view = localViews.get(i);
|
||||
if (!TextUtils.equals(view.getTransitionName(), localNames.get(i))
|
||||
|| !view.isAttachedToWindow()) {
|
||||
remap = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (remap) {
|
||||
triggerViewsReady(mapNamedElements(accepted, localNames));
|
||||
} else {
|
||||
triggerViewsReady(mapSharedElements(accepted, localViews));
|
||||
}
|
||||
}
|
||||
|
||||
public void namedViewsReady(ArrayList<String> accepted, ArrayList<String> localNames) {
|
||||
|
||||
Reference in New Issue
Block a user