LayoutLib: use the new expand API.
Change-Id: I248de70ebe97aa6fb1cbcb5b6572a4a46c5ca1ba
diff --git a/bridge/src/com/android/layoutlib/bridge/impl/LayoutSceneImpl.java b/bridge/src/com/android/layoutlib/bridge/impl/LayoutSceneImpl.java
index b0316a3..2e3f9a8 100644
--- a/bridge/src/com/android/layoutlib/bridge/impl/LayoutSceneImpl.java
+++ b/bridge/src/com/android/layoutlib/bridge/impl/LayoutSceneImpl.java
@@ -25,6 +25,7 @@
import com.android.layoutlib.api.SceneResult;
import com.android.layoutlib.api.ViewInfo;
import com.android.layoutlib.api.IDensityBasedResourceValue.Density;
+import com.android.layoutlib.api.SceneParams.RenderingMode;
import com.android.layoutlib.bridge.BridgeConstants;
import com.android.layoutlib.bridge.android.BridgeContext;
import com.android.layoutlib.bridge.android.BridgeInflater;
@@ -259,22 +260,32 @@
int renderScreenWidth = mParams.getScreenWidth();
int renderScreenHeight = mParams.getScreenHeight();
- if (mParams.getRenderFullSize()) {
+ RenderingMode renderingMode = mParams.getRenderingMode();
+
+ if (renderingMode != RenderingMode.NORMAL) {
// measure the full size needed by the layout.
w_spec = MeasureSpec.makeMeasureSpec(renderScreenWidth,
- MeasureSpec.UNSPECIFIED); // this lets us know the actual needed size
+ renderingMode.isHorizExpand() ?
+ MeasureSpec.UNSPECIFIED // this lets us know the actual needed size
+ : MeasureSpec.EXACTLY);
h_spec = MeasureSpec.makeMeasureSpec(renderScreenHeight - mScreenOffset,
- MeasureSpec.UNSPECIFIED); // this lets us know the actual needed size
+ renderingMode.isVertExpand() ?
+ MeasureSpec.UNSPECIFIED // this lets us know the actual needed size
+ : MeasureSpec.EXACTLY);
mViewRoot.measure(w_spec, h_spec);
- int neededWidth = mViewRoot.getChildAt(0).getMeasuredWidth();
- if (neededWidth > renderScreenWidth) {
- renderScreenWidth = neededWidth;
+ if (renderingMode.isHorizExpand()) {
+ int neededWidth = mViewRoot.getChildAt(0).getMeasuredWidth();
+ if (neededWidth > renderScreenWidth) {
+ renderScreenWidth = neededWidth;
+ }
}
- int neededHeight = mViewRoot.getChildAt(0).getMeasuredHeight();
- if (neededHeight > renderScreenHeight - mScreenOffset) {
- renderScreenHeight = neededHeight + mScreenOffset;
+ if (renderingMode.isVertExpand()) {
+ int neededHeight = mViewRoot.getChildAt(0).getMeasuredHeight();
+ if (neededHeight > renderScreenHeight - mScreenOffset) {
+ renderScreenHeight = neededHeight + mScreenOffset;
+ }
}
}