diff options
author | TreeHugger Robot <treehugger-gerrit@google.com> | 2020-05-15 15:53:47 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2020-05-15 15:53:47 +0000 |
commit | 10491548e55af5354b72597b0341571ff0e156d2 (patch) | |
tree | 8a77b99f02abac6b23a982f646b46331cfb2d820 | |
parent | ca71d04d2ce43c7cb75855e9c230ddd02ccfffeb (diff) | |
parent | 1e60ca9a26cf1851ef31d96557fd72a0f972cedf (diff) | |
download | layoutlib-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.java | 1 | ||||
-rw-r--r-- | bridge/src/com/android/layoutlib/bridge/BridgeRenderSession.java | 6 |
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(); |