summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Nicolas Roard <nicolasroard@google.com> 2024-12-16 03:34:49 +0000
committer Nicolas Roard <nicolasroard@google.com> 2024-12-16 03:34:49 +0000
commit1f1b36f3a8cb4ecaef07329a50c1c3eafa1a57a8 (patch)
tree68830fe96a19258084bef3f10e84393b249cfa82
parentc05c4e0ec183843b430e776def1b1e94b6fd8b73 (diff)
Update to ToT RemoteCompose
Bug: 339721781 Flag: EXEMPT External Libraries Test: in GoB Change-Id: I8c6db4af7f00fa932932214ff192116983c7f371
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/CoreDocument.java16
1 files changed, 11 insertions, 5 deletions
diff --git a/core/java/com/android/internal/widget/remotecompose/core/CoreDocument.java b/core/java/com/android/internal/widget/remotecompose/core/CoreDocument.java
index 1bd502df8e57..60767ed9eb00 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/CoreDocument.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/CoreDocument.java
@@ -601,14 +601,23 @@ public class CoreDocument {
for (Operation o : operations) {
if (o instanceof Container) {
Container container = (Container) o;
- containers.add(container);
- ops = container.getList();
if (container instanceof Component) {
Component component = (Component) container;
+ // Make sure to set the parent when a component is first found, so that
+ // the inflate when closing the component is in a state where the hierarchy
+ // is already existing.
+ if (!containers.isEmpty()) {
+ Container parentContainer = containers.get(containers.size() - 1);
+ if (parentContainer instanceof Component) {
+ component.setParent((Component) parentContainer);
+ }
+ }
if (component.getComponentId() < mLastId) {
mLastId = component.getComponentId();
}
}
+ containers.add(container);
+ ops = container.getList();
} else if (o instanceof ContainerEnd) {
// check if we have a parent container
Container container = null;
@@ -628,9 +637,6 @@ public class CoreDocument {
if (container != null) {
if (container instanceof Component) {
Component component = (Component) container;
- if (parentContainer instanceof Component) {
- component.setParent((Component) parentContainer);
- }
component.inflate();
}
ops.add((Operation) container);