diff options
author | George Mount <mount@google.com> | 2014-09-19 16:30:28 +0000 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2014-09-19 16:30:28 +0000 |
commit | 74b01d84afad804338f11b1d46feb4e5168fc8b3 (patch) | |
tree | 3492a882d3f6b715fbe61305eebcf473ba06aab7 /core/java/android/app | |
parent | 92fc67aae3517e727b06829b942c1093dc328002 (diff) | |
parent | 754b80c1c8190a7b721c26470b3595b3b34929b7 (diff) | |
download | frameworks_base-74b01d84afad804338f11b1d46feb4e5168fc8b3.zip frameworks_base-74b01d84afad804338f11b1d46feb4e5168fc8b3.tar.gz frameworks_base-74b01d84afad804338f11b1d46feb4e5168fc8b3.tar.bz2 |
am 4785cb7f: am 46df1eee: am af2f8cda: am 04a96bca: Merge "Fix NPE when shared element listener is null." into lmp-dev
* commit '4785cb7f541951cf3e31a84acf0767c7393fbe92':
Fix NPE when shared element listener is null.
Diffstat (limited to 'core/java/android/app')
-rw-r--r-- | core/java/android/app/ActivityTransitionCoordinator.java | 23 | ||||
-rw-r--r-- | core/java/android/app/EnterTransitionCoordinator.java | 4 | ||||
-rw-r--r-- | core/java/android/app/ExitTransitionCoordinator.java | 5 |
3 files changed, 24 insertions, 8 deletions
diff --git a/core/java/android/app/ActivityTransitionCoordinator.java b/core/java/android/app/ActivityTransitionCoordinator.java index 137f77d..540376e 100644 --- a/core/java/android/app/ActivityTransitionCoordinator.java +++ b/core/java/android/app/ActivityTransitionCoordinator.java @@ -219,7 +219,9 @@ abstract class ActivityTransitionCoordinator extends ResultReceiver { protected void viewsReady(ArrayMap<String, View> sharedElements) { sharedElements.retainAll(mAllSharedElementNames); - mListener.onMapSharedElements(mAllSharedElementNames, sharedElements); + if (mListener != null) { + mListener.onMapSharedElements(mAllSharedElementNames, sharedElements); + } mSharedElementNames.addAll(sharedElements.keySet()); mSharedElements.addAll(sharedElements.values()); if (getViewsTransition() != null && mTransitioningViews != null) { @@ -461,7 +463,8 @@ abstract class ActivityTransitionCoordinator extends ResultReceiver { if (sharedElementState != null) { Matrix tempMatrix = new Matrix(); RectF tempRect = new RectF(); - for (int i = 0; i < mSharedElementNames.size(); i++) { + final int numSharedElements = mSharedElements.size(); + for (int i = 0; i < numSharedElements; i++) { View sharedElement = mSharedElements.get(i); String name = mSharedElementNames.get(i); SharedElementOriginalState originalState = getOldSharedElementState(sharedElement, @@ -471,12 +474,16 @@ abstract class ActivityTransitionCoordinator extends ResultReceiver { tempMatrix, tempRect, null); } } - mListener.onSharedElementStart(mSharedElementNames, mSharedElements, snapshots); + if (mListener != null) { + mListener.onSharedElementStart(mSharedElementNames, mSharedElements, snapshots); + } return originalImageState; } protected void notifySharedElementEnd(ArrayList<View> snapshots) { - mListener.onSharedElementEnd(mSharedElementNames, mSharedElements, snapshots); + if (mListener != null) { + mListener.onSharedElementEnd(mSharedElementNames, mSharedElements, snapshots); + } } protected void scheduleSetSharedElementEnd(final ArrayList<View> snapshots) { @@ -544,7 +551,7 @@ abstract class ActivityTransitionCoordinator extends ResultReceiver { if (sharedElementBundle != null) { Parcelable parcelable = sharedElementBundle.getParcelable(KEY_SNAPSHOT); View snapshot = null; - if (parcelable != null) { + if (parcelable != null && mListener != null) { snapshot = mListener.onCreateSnapshotView(context, parcelable); } if (snapshot != null) { @@ -659,7 +666,11 @@ abstract class ActivityTransitionCoordinator extends ResultReceiver { sharedElementBundle.putFloat(KEY_TRANSLATION_Z, view.getTranslationZ()); sharedElementBundle.putFloat(KEY_ELEVATION, view.getElevation()); - Parcelable bitmap = mListener.onCaptureSharedElementSnapshot(view, tempMatrix, tempBounds); + Parcelable bitmap = null; + if (mListener != null) { + bitmap = mListener.onCaptureSharedElementSnapshot(view, tempMatrix, tempBounds); + } + if (bitmap != null) { sharedElementBundle.putParcelable(KEY_SNAPSHOT, bitmap); } diff --git a/core/java/android/app/EnterTransitionCoordinator.java b/core/java/android/app/EnterTransitionCoordinator.java index 16a3575..216d6ba 100644 --- a/core/java/android/app/EnterTransitionCoordinator.java +++ b/core/java/android/app/EnterTransitionCoordinator.java @@ -306,7 +306,9 @@ class EnterTransitionCoordinator extends ActivityTransitionCoordinator { ArrayList<String> rejectedNames = new ArrayList<String>(mAllSharedElementNames); rejectedNames.removeAll(mSharedElementNames); ArrayList<View> rejectedSnapshots = createSnapshots(sharedElementState, rejectedNames); - mListener.onRejectSharedElements(rejectedSnapshots); + if (mListener != null) { + mListener.onRejectSharedElements(rejectedSnapshots); + } startRejectedAnimations(rejectedSnapshots); // Now start shared element transition diff --git a/core/java/android/app/ExitTransitionCoordinator.java b/core/java/android/app/ExitTransitionCoordinator.java index 812dfdb..d4d3eda 100644 --- a/core/java/android/app/ExitTransitionCoordinator.java +++ b/core/java/android/app/ExitTransitionCoordinator.java @@ -181,7 +181,10 @@ class ExitTransitionCoordinator extends ActivityTransitionCoordinator { }); setGhostVisibility(View.INVISIBLE); scheduleGhostVisibilityChange(View.INVISIBLE); - mListener.onSharedElementEnd(mSharedElementNames, mSharedElements, sharedElementSnapshots); + if (mListener != null) { + mListener.onSharedElementEnd(mSharedElementNames, mSharedElements, + sharedElementSnapshots); + } TransitionManager.beginDelayedTransition(decorView, transition); scheduleGhostVisibilityChange(View.VISIBLE); setGhostVisibility(View.VISIBLE); |