OSDN Git Service

Fix NPE during Activity transition using wrong Activity.
authorGeorge Mount <mount@google.com>
Tue, 16 Aug 2016 20:10:19 +0000 (13:10 -0700)
committerGeorge Mount <mount@google.com>
Tue, 16 Aug 2016 20:10:19 +0000 (13:10 -0700)
Bug 30786309

If the Activity used in makeSceneTransitionAnimation isn't
the same one used in the startActivity call, a NullPointerException
could be thrown.

Change-Id: Id21c54fcf99b353feab62f7fc160997ed06e7d23

core/java/android/app/ActivityTransitionState.java

index 2219238..aef1d0c 100644 (file)
@@ -337,11 +337,12 @@ class ActivityTransitionState {
     }
 
     public void startExitOutTransition(Activity activity, Bundle options) {
-        if (!activity.getWindow().hasFeature(Window.FEATURE_ACTIVITY_TRANSITIONS)) {
+        mEnterTransitionCoordinator = null;
+        if (!activity.getWindow().hasFeature(Window.FEATURE_ACTIVITY_TRANSITIONS) ||
+                mExitTransitionCoordinators == null) {
             return;
         }
         ActivityOptions activityOptions = new ActivityOptions(options);
-        mEnterTransitionCoordinator = null;
         if (activityOptions.getAnimationType() == ActivityOptions.ANIM_SCENE_TRANSITION) {
             int key = activityOptions.getExitCoordinatorKey();
             int index = mExitTransitionCoordinators.indexOfKey(key);