Merge "[ATF-integration] Make sure data can survive render path" into rvc-dev am: 1e60ca9a26

Change-Id: I0c29f2e05c09a5b17fc77fd5e5162f1935df71a4
diff --git a/bridge/src/com/android/layoutlib/bridge/Bridge.java b/bridge/src/com/android/layoutlib/bridge/Bridge.java
index af1f964..8323a00 100644
--- a/bridge/src/com/android/layoutlib/bridge/Bridge.java
+++ b/bridge/src/com/android/layoutlib/bridge/Bridge.java
@@ -384,6 +384,7 @@
                     boolean enableLayoutValidation = Boolean.TRUE.equals(
                             params.getFlag(RenderParamsFlags.FLAG_ENABLE_LAYOUT_VALIDATOR));
                     if (enableLayoutValidation && !scene.getViewInfos().isEmpty()) {
+                        // TODO: Once session can hold ValidatorResult stop using data.
                         ValidatorResult validatorResult = LayoutValidator.validate(((View) scene.getViewInfos().get(0).getViewObject()));
                         lastResult = lastResult.getCopyWithData(validatorResult);
                     }
diff --git a/bridge/src/com/android/layoutlib/bridge/BridgeRenderSession.java b/bridge/src/com/android/layoutlib/bridge/BridgeRenderSession.java
index d61e933..6a78f3d 100644
--- a/bridge/src/com/android/layoutlib/bridge/BridgeRenderSession.java
+++ b/bridge/src/com/android/layoutlib/bridge/BridgeRenderSession.java
@@ -108,11 +108,15 @@
             try {
                 Bridge.prepareThread();
                 mLastResult = mSession.acquire(timeout);
+                // If there was any data to preserve from inflate.
+                // TODO: Remove this once session is able to hold data from inflate.
+                Object data = mLastResult.getData();
                 if (mLastResult.isSuccess()) {
                     if (forceMeasure) {
                         mSession.invalidateRenderingSize();
                     }
-                    mLastResult = mSession.render(false /*freshRender*/);
+                    Result result = mSession.render(false /*freshRender*/);
+                    mLastResult = (data == null) ? result : result.getCopyWithData(data);
                 }
             } finally {
                 mSession.release();