From 96e54dcfa4e2f5295b0441971f10906eeaa35328 Mon Sep 17 00:00:00 2001 From: George Mount Date: Tue, 3 Mar 2015 15:28:44 -0800 Subject: [PATCH] Fix TransitionManager.go not running transition. Bug 19459362 Change-Id: I17595390c9fb289dec8de44447ca490c46570fb4 --- .../android/transition/TransitionManager.java | 35 ++++++++++--------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/core/java/android/transition/TransitionManager.java b/core/java/android/transition/TransitionManager.java index 80245efdfce0c..0b70fdbe5a4f5 100644 --- a/core/java/android/transition/TransitionManager.java +++ b/core/java/android/transition/TransitionManager.java @@ -181,24 +181,27 @@ public class TransitionManager { private static void changeScene(Scene scene, Transition transition) { final ViewGroup sceneRoot = scene.getSceneRoot(); + if (!sPendingTransitions.contains(sceneRoot)) { + sPendingTransitions.add(sceneRoot); - Transition transitionClone = null; - if (transition != null) { - transitionClone = transition.clone(); - transitionClone.setSceneRoot(sceneRoot); + Transition transitionClone = null; + if (transition != null) { + transitionClone = transition.clone(); + transitionClone.setSceneRoot(sceneRoot); + } + + Scene oldScene = Scene.getCurrentScene(sceneRoot); + if (oldScene != null && transitionClone != null && + oldScene.isCreatedFromLayoutResource()) { + transitionClone.setCanRemoveViews(true); + } + + sceneChangeSetup(sceneRoot, transitionClone); + + scene.enter(); + + sceneChangeRunTransition(sceneRoot, transitionClone); } - - Scene oldScene = Scene.getCurrentScene(sceneRoot); - if (oldScene != null && transitionClone != null && - oldScene.isCreatedFromLayoutResource()) { - transitionClone.setCanRemoveViews(true); - } - - sceneChangeSetup(sceneRoot, transitionClone); - - scene.enter(); - - sceneChangeRunTransition(sceneRoot, transitionClone); } private static ArrayMap> getRunningTransitions() {