aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTreeHugger Robot <treehugger-gerrit@google.com>2020-05-15 15:53:47 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2020-05-15 15:53:47 +0000
commit10491548e55af5354b72597b0341571ff0e156d2 (patch)
tree8a77b99f02abac6b23a982f646b46331cfb2d820
parentca71d04d2ce43c7cb75855e9c230ddd02ccfffeb (diff)
parent1e60ca9a26cf1851ef31d96557fd72a0f972cedf (diff)
downloadlayoutlib-10491548e55af5354b72597b0341571ff0e156d2.tar.gz
Merge "[ATF-integration] Make sure data can survive render path" into rvc-dev am: 1e60ca9a26
Change-Id: Ib1ba040df6df6b76c15bea0704adfa77cf7be15d
-rw-r--r--bridge/src/com/android/layoutlib/bridge/Bridge.java1
-rw-r--r--bridge/src/com/android/layoutlib/bridge/BridgeRenderSession.java6
2 files changed, 6 insertions, 1 deletions
diff --git a/bridge/src/com/android/layoutlib/bridge/Bridge.java b/bridge/src/com/android/layoutlib/bridge/Bridge.java
index af1f964e3a..8323a00f7f 100644
--- a/bridge/src/com/android/layoutlib/bridge/Bridge.java
+++ b/bridge/src/com/android/layoutlib/bridge/Bridge.java
@@ -384,6 +384,7 @@ public final class Bridge extends com.android.ide.common.rendering.api.Bridge {
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 d61e93368b..6a78f3df46 100644
--- a/bridge/src/com/android/layoutlib/bridge/BridgeRenderSession.java
+++ b/bridge/src/com/android/layoutlib/bridge/BridgeRenderSession.java
@@ -108,11 +108,15 @@ public class BridgeRenderSession extends RenderSession {
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();