Merge "Fix no transition when only shared element exists." into lmp-dev
diff --git a/core/java/android/app/ExitTransitionCoordinator.java b/core/java/android/app/ExitTransitionCoordinator.java
index a74fbdf..d798dbb 100644
--- a/core/java/android/app/ExitTransitionCoordinator.java
+++ b/core/java/android/app/ExitTransitionCoordinator.java
@@ -136,14 +136,15 @@
         Transition transition = getSharedElementExitTransition();
         final ArrayList<View> sharedElementSnapshots = createSnapshots(mExitSharedElementBundle,
                 mSharedElementNames);
-        transition.addListener(new Transition.TransitionListenerAdapter() {
+        transition.addListener(new ContinueTransitionListener() {
             @Override
             public void onTransitionEnd(Transition transition) {
                 transition.removeListener(this);
+                super.onTransitionEnd(transition);
                 int count = mSharedElements.size();
                 for (int i = 0; i < count; i++) {
                     View sharedElement = mSharedElements.get(i);
-                    ((ViewGroup)sharedElement.getParent()).suppressLayout(true);
+                    ((ViewGroup) sharedElement.getParent()).suppressLayout(true);
                 }
             }
         });
@@ -221,6 +222,8 @@
         if (transition != null) {
             TransitionManager.beginDelayedTransition(getDecor(), transition);
             mTransitioningViews.get(0).invalidate();
+        } else {
+            transitionStarted();
         }
     }
 
@@ -307,6 +310,8 @@
         if (transition != null) {
             TransitionManager.beginDelayedTransition(getDecor(), transition);
             getDecor().invalidate();
+        } else {
+            transitionStarted();
         }
     }