Update to ToT RemoteCompose

Bug: 339721781
Flag: EXEMPT External Libraries
Test: in GoB
Change-Id: I8c6db4af7f00fa932932214ff192116983c7f371
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 1bd502d..60767ed 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 @@
         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 @@
                 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);