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();