summaryrefslogtreecommitdiff
path: root/core/java/android
diff options
context:
space:
mode:
authorGeorge Mount <mount@google.com>2017-03-02 15:12:26 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2017-03-02 15:12:30 +0000
commit0882330c39dfefe4473bbefe20f479989cbb71ca (patch)
tree36f7d4517d8ce416e987d61556a12256b2f27391 /core/java/android
parent00a5f2a65882f5b2814c9449e0ab75b6f2656315 (diff)
parentf05db56f242da7a0bd3770d69eb816091b303d3d (diff)
Merge "Fix NPE when combining pop with add transaction."
Diffstat (limited to 'core/java/android')
-rw-r--r--core/java/android/app/FragmentTransition.java15
1 files changed, 10 insertions, 5 deletions
diff --git a/core/java/android/app/FragmentTransition.java b/core/java/android/app/FragmentTransition.java
index f62ab8d76c3c..780a9227cecc 100644
--- a/core/java/android/app/FragmentTransition.java
+++ b/core/java/android/app/FragmentTransition.java
@@ -780,8 +780,10 @@ class FragmentTransition {
names = inTransaction.mSharedElementTargetNames;
}
- inSharedElements.retainAll(names);
- if (sharedElementCallback != null) {
+ if (names != null) {
+ inSharedElements.retainAll(names);
+ }
+ if (names != null && sharedElementCallback != null) {
sharedElementCallback.onMapSharedElements(names, inSharedElements);
for (int i = names.size() - 1; i >= 0; i--) {
String name = names.get(i);
@@ -830,8 +832,9 @@ class FragmentTransition {
FragmentContainerTransition fragments,
Transition enterTransition, boolean inIsPop) {
BackStackRecord inTransaction = fragments.lastInTransaction;
- if (enterTransition != null && inTransaction.mSharedElementSourceNames != null &&
- !inTransaction.mSharedElementSourceNames.isEmpty()) {
+ if (enterTransition != null && inSharedElements != null
+ && inTransaction.mSharedElementSourceNames != null
+ && !inTransaction.mSharedElementSourceNames.isEmpty()) {
final String targetName = inIsPop
? inTransaction.mSharedElementSourceNames.get(0)
: inTransaction.mSharedElementTargetNames.get(0);
@@ -1096,7 +1099,9 @@ class FragmentTransition {
if (transition != null) {
viewList = new ArrayList<>();
View root = fragment.getView();
- root.captureTransitioningViews(viewList);
+ if (root != null) {
+ root.captureTransitioningViews(viewList);
+ }
if (sharedElements != null) {
viewList.removeAll(sharedElements);
}