am e50b091d: Merge "Clean up the enter transition even if there is not entering fragment." into mnc-dev

* commit 'e50b091df9586c5c41d219ffb0c41fa3f893c329':
  Clean up the enter transition even if there is not entering fragment.
This commit is contained in:
George Mount
2015-06-04 18:43:16 +00:00
committed by Android Git Automerger

View File

@@ -1107,6 +1107,7 @@ final class BackStackRecord extends FragmentTransaction implements
} }
if (enterTransition != null) { if (enterTransition != null) {
enterTransition.removeTarget(state.nonExistentView);
View view = inFragment.getView(); View view = inFragment.getView();
if (view != null) { if (view != null) {
view.captureTransitioningViews(enteringViews); view.captureTransitioningViews(enteringViews);
@@ -1115,7 +1116,6 @@ final class BackStackRecord extends FragmentTransaction implements
} }
enteringViews.add(state.nonExistentView); enteringViews.add(state.nonExistentView);
// We added this earlier to prevent any views being targeted. // We added this earlier to prevent any views being targeted.
enterTransition.removeTarget(state.nonExistentView);
addTargets(enterTransition, enteringViews); addTargets(enterTransition, enteringViews);
} }
setSharedElementEpicenter(enterTransition, state); setSharedElementEpicenter(enterTransition, state);
@@ -1170,7 +1170,7 @@ final class BackStackRecord extends FragmentTransaction implements
Transition exitTransition, Transition sharedElementTransition, Fragment inFragment, Transition exitTransition, Transition sharedElementTransition, Fragment inFragment,
boolean isBack) { boolean isBack) {
boolean overlap = true; boolean overlap = true;
if (enterTransition != null && exitTransition != null) { if (enterTransition != null && exitTransition != null && inFragment != null) {
overlap = isBack ? inFragment.getAllowReturnTransitionOverlap() : overlap = isBack ? inFragment.getAllowReturnTransitionOverlap() :
inFragment.getAllowEnterTransitionOverlap(); inFragment.getAllowEnterTransitionOverlap();
} }
@@ -1638,7 +1638,7 @@ final class BackStackRecord extends FragmentTransaction implements
private void setBackNameOverrides(TransitionState state, ArrayMap<String, View> namedViews, private void setBackNameOverrides(TransitionState state, ArrayMap<String, View> namedViews,
boolean isEnd) { boolean isEnd) {
int count = mSharedElementTargetNames.size(); int count = mSharedElementTargetNames == null ? 0 : mSharedElementTargetNames.size();
for (int i = 0; i < count; i++) { for (int i = 0; i < count; i++) {
String source = mSharedElementSourceNames.get(i); String source = mSharedElementSourceNames.get(i);
String originalTarget = mSharedElementTargetNames.get(i); String originalTarget = mSharedElementTargetNames.get(i);
@@ -1656,7 +1656,7 @@ final class BackStackRecord extends FragmentTransaction implements
private void setNameOverrides(TransitionState state, ArrayMap<String, View> namedViews, private void setNameOverrides(TransitionState state, ArrayMap<String, View> namedViews,
boolean isEnd) { boolean isEnd) {
int count = namedViews.size(); int count = namedViews == null ? 0 : namedViews.size();
for (int i = 0; i < count; i++) { for (int i = 0; i < count; i++) {
String source = namedViews.keyAt(i); String source = namedViews.keyAt(i);
String target = namedViews.valueAt(i).getTransitionName(); String target = namedViews.valueAt(i).getTransitionName();