Keep scene change code in framework transitions in sync with AndroidX
Bug: 65536124 Test: cts/TransitionManagerTest Change-Id: I976f07899c7d6ef68acbcc207ddb07ae5ac7f28f
This commit is contained in:
@@ -188,8 +188,12 @@ public class TransitionManager {
|
||||
|
||||
final ViewGroup sceneRoot = scene.getSceneRoot();
|
||||
if (!sPendingTransitions.contains(sceneRoot)) {
|
||||
Scene oldScene = Scene.getCurrentScene(sceneRoot);
|
||||
if (transition == null) {
|
||||
exitPreviousScene(sceneRoot);
|
||||
// Notify old scene that it is being exited
|
||||
if (oldScene != null) {
|
||||
oldScene.exit();
|
||||
}
|
||||
|
||||
scene.enter();
|
||||
} else {
|
||||
@@ -198,7 +202,6 @@ public class TransitionManager {
|
||||
Transition transitionClone = transition.clone();
|
||||
transitionClone.setSceneRoot(sceneRoot);
|
||||
|
||||
Scene oldScene = Scene.getCurrentScene(sceneRoot);
|
||||
if (oldScene != null && oldScene.isCreatedFromLayoutResource()) {
|
||||
transitionClone.setCanRemoveViews(true);
|
||||
}
|
||||
@@ -212,14 +215,6 @@ public class TransitionManager {
|
||||
}
|
||||
}
|
||||
|
||||
private static void exitPreviousScene(final ViewGroup sceneRoot) {
|
||||
// Notify previous scene that it is being exited
|
||||
final Scene previousScene = Scene.getCurrentScene(sceneRoot);
|
||||
if (previousScene != null) {
|
||||
previousScene.exit();
|
||||
}
|
||||
}
|
||||
|
||||
@UnsupportedAppUsage
|
||||
private static ArrayMap<ViewGroup, ArrayList<Transition>> getRunningTransitions() {
|
||||
WeakReference<ArrayMap<ViewGroup, ArrayList<Transition>>> runningTransitions =
|
||||
@@ -349,7 +344,11 @@ public class TransitionManager {
|
||||
transition.captureValues(sceneRoot, true);
|
||||
}
|
||||
|
||||
exitPreviousScene(sceneRoot);
|
||||
// Notify previous scene that it is being exited
|
||||
Scene previousScene = Scene.getCurrentScene(sceneRoot);
|
||||
if (previousScene != null) {
|
||||
previousScene.exit();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user