diff options
author | Xavier Ducrohet <xav@android.com> | 2011-02-03 11:43:14 -0800 |
---|---|---|
committer | Xavier Ducrohet <xav@android.com> | 2011-02-04 09:41:54 -0800 |
commit | f538a020eec631ca19ce493877de2ebca3b8d6f3 (patch) | |
tree | cf101d31c6a9fdc69001e6c5c53ae27c4b6a3325 /layoutlib_api/src/com/android | |
parent | 8818812b7d824bcd52bb730c6bf659227fb86177 (diff) | |
download | sdk-f538a020eec631ca19ce493877de2ebca3b8d6f3.zip sdk-f538a020eec631ca19ce493877de2ebca3b8d6f3.tar.gz sdk-f538a020eec631ca19ce493877de2ebca3b8d6f3.tar.bz2 |
Add app name/icon and current render locale to the LayoutLib API.
This allows the layoutlib to render system/title/action bars
as a window decor like it would look on the device.
This can be disabled with RenderParams.setForceNoDecor().
(BTW, Params was renamed RenderParams too)
Also minor update to the API by replacing an int with Density
since the enum is now accessible to the API and layoutlib.
Change-Id: Ic37770a9276d12af90c60199a84b04cb64e7c3a1
Diffstat (limited to 'layoutlib_api/src/com/android')
-rw-r--r-- | layoutlib_api/src/com/android/ide/common/rendering/api/Bridge.java | 4 | ||||
-rw-r--r-- | layoutlib_api/src/com/android/ide/common/rendering/api/DensityBasedResourceValue.java | 7 | ||||
-rw-r--r-- | layoutlib_api/src/com/android/ide/common/rendering/api/IImageFactory.java | 2 | ||||
-rw-r--r-- | layoutlib_api/src/com/android/ide/common/rendering/api/RenderParams.java (renamed from layoutlib_api/src/com/android/ide/common/rendering/api/Params.java) | 53 | ||||
-rw-r--r-- | layoutlib_api/src/com/android/ide/common/rendering/api/RenderSession.java | 4 | ||||
-rw-r--r-- | layoutlib_api/src/com/android/ide/common/rendering/api/ResourceValue.java | 8 |
6 files changed, 67 insertions, 11 deletions
diff --git a/layoutlib_api/src/com/android/ide/common/rendering/api/Bridge.java b/layoutlib_api/src/com/android/ide/common/rendering/api/Bridge.java index d014b6c..755c736 100644 --- a/layoutlib_api/src/com/android/ide/common/rendering/api/Bridge.java +++ b/layoutlib_api/src/com/android/ide/common/rendering/api/Bridge.java @@ -78,7 +78,7 @@ public abstract class Bridge { * @return a new {@link RenderSession} object that contains the result of the scene creation and * first rendering. */ - public RenderSession createSession(Params params) { + public RenderSession createSession(RenderParams params) { return null; } @@ -89,7 +89,7 @@ public abstract class Bridge { * <p/>The cache is not configuration dependent and should only be cleared when a * resource changes (at this time only bitmaps and 9 patches go into the cache). * <p/> - * The project key provided must be similar to the one passed in {@link Params}. + * The project key provided must be similar to the one passed in {@link RenderParams}. * * @param projectKey the key for the project. */ diff --git a/layoutlib_api/src/com/android/ide/common/rendering/api/DensityBasedResourceValue.java b/layoutlib_api/src/com/android/ide/common/rendering/api/DensityBasedResourceValue.java index 12bd57c..ca60640 100644 --- a/layoutlib_api/src/com/android/ide/common/rendering/api/DensityBasedResourceValue.java +++ b/layoutlib_api/src/com/android/ide/common/rendering/api/DensityBasedResourceValue.java @@ -44,4 +44,11 @@ public class DensityBasedResourceValue extends ResourceValue implements IDensity public Density getDensity() { return Density.getEnum(mDensity.getDpiValue()); } + + @Override + public String toString() { + return "DensityBasedResourceValue [" + + getResourceType() + "/" + getName() + " = " + getValue() + + " (density:" + mDensity +", framework:" + isFramework() + ")]"; + } } diff --git a/layoutlib_api/src/com/android/ide/common/rendering/api/IImageFactory.java b/layoutlib_api/src/com/android/ide/common/rendering/api/IImageFactory.java index c05c7c6..7681243 100644 --- a/layoutlib_api/src/com/android/ide/common/rendering/api/IImageFactory.java +++ b/layoutlib_api/src/com/android/ide/common/rendering/api/IImageFactory.java @@ -26,7 +26,7 @@ import java.awt.image.BufferedImage; * rendered. The goal is to let the layoutlib caller create an image that's optimized for its use * case. * - * If no factory is passed in {@link Params#setImageFactory(IImageFactory)}, then a default + * If no factory is passed in {@link RenderParams#setImageFactory(IImageFactory)}, then a default * {@link BufferedImage} of type {@link BufferedImage#TYPE_INT_ARGB} is created. * */ diff --git a/layoutlib_api/src/com/android/ide/common/rendering/api/Params.java b/layoutlib_api/src/com/android/ide/common/rendering/api/RenderParams.java index fb4b423..296982c 100644 --- a/layoutlib_api/src/com/android/ide/common/rendering/api/Params.java +++ b/layoutlib_api/src/com/android/ide/common/rendering/api/RenderParams.java @@ -16,10 +16,11 @@ package com.android.ide.common.rendering.api; +import com.android.resources.Density; import com.android.resources.ScreenSize; -public class Params { +public class RenderParams { public final static long DEFAULT_TIMEOUT = 250; //ms @@ -51,7 +52,7 @@ public class Params { private final int mScreenWidth; private final int mScreenHeight; private final RenderingMode mRenderingMode; - private final int mDensity; + private final Density mDensity; private final float mXdpi; private final float mYdpi; private final RenderResources mRenderResources; @@ -67,6 +68,10 @@ public class Params { private IImageFactory mImageFactory = null; private ScreenSize mConfigScreenSize = null; + private String mAppIcon = null; + private String mAppLabel = null; + private String mLocale = null; + private boolean mForceNoDecor; /** * @@ -95,10 +100,10 @@ public class Params { * @param targetSdkVersion the targetSdkVersion of the project * @param log the object responsible for displaying warning/errors to the user. */ - public Params(ILayoutPullParser layoutDescription, + public RenderParams(ILayoutPullParser layoutDescription, Object projectKey, int screenWidth, int screenHeight, RenderingMode renderingMode, - int density, float xdpi, float ydpi, + Density density, float xdpi, float ydpi, RenderResources renderResources, IProjectCallback projectCallback, int minSdkVersion, int targetSdkVersion, @@ -123,7 +128,7 @@ public class Params { /** * Copy constructor. */ - public Params(Params params) { + public RenderParams(RenderParams params) { mLayoutDescription = params.mLayoutDescription; mProjectKey = params.mProjectKey; mScreenWidth = params.mScreenWidth; @@ -142,6 +147,10 @@ public class Params { mTimeout = params.mTimeout; mImageFactory = params.mImageFactory; mConfigScreenSize = params.mConfigScreenSize; + mAppIcon = params.mAppIcon; + mAppLabel = params.mAppLabel; + mLocale = params.mLocale; + mForceNoDecor = params.mForceNoDecor; } public void setOverrideBgColor(int color) { @@ -161,6 +170,22 @@ public class Params { mConfigScreenSize = size; } + public void setAppIcon(String appIcon) { + mAppIcon = appIcon; + } + + public void setAppLabel(String appLabel) { + mAppLabel = appLabel; + } + + public void setLocale(String locale) { + mLocale = locale; + } + + public void setForceNoDecor() { + mForceNoDecor = true; + } + public ILayoutPullParser getLayoutDescription() { return mLayoutDescription; } @@ -189,7 +214,7 @@ public class Params { return mRenderingMode; } - public int getDensity() { + public Density getDensity() { return mDensity; } @@ -232,4 +257,20 @@ public class Params { public ScreenSize getConfigScreenSize() { return mConfigScreenSize; } + + public String getAppIcon() { + return mAppIcon; + } + + public String getAppLabel() { + return mAppLabel; + } + + public String getLocale() { + return mLocale; + } + + public boolean isForceNoDecor() { + return mForceNoDecor; + } } diff --git a/layoutlib_api/src/com/android/ide/common/rendering/api/RenderSession.java b/layoutlib_api/src/com/android/ide/common/rendering/api/RenderSession.java index 9bdd146..a2e087c 100644 --- a/layoutlib_api/src/com/android/ide/common/rendering/api/RenderSession.java +++ b/layoutlib_api/src/com/android/ide/common/rendering/api/RenderSession.java @@ -27,7 +27,7 @@ import java.util.Map; /** * An object allowing interaction with an Android layout. * - * This is returned by {@link Bridge#createScene(Params)}. + * This is returned by {@link Bridge#createScene(RenderParams)}. * and can then be used for subsequent actions on the layout. * * @since 5 @@ -102,7 +102,7 @@ public class RenderSession { * @return a {@link Result} indicating the status of the action. */ public Result render() { - return render(Params.DEFAULT_TIMEOUT); + return render(RenderParams.DEFAULT_TIMEOUT); } /** diff --git a/layoutlib_api/src/com/android/ide/common/rendering/api/ResourceValue.java b/layoutlib_api/src/com/android/ide/common/rendering/api/ResourceValue.java index 76561c8..f15d903 100644 --- a/layoutlib_api/src/com/android/ide/common/rendering/api/ResourceValue.java +++ b/layoutlib_api/src/com/android/ide/common/rendering/api/ResourceValue.java @@ -91,4 +91,12 @@ public class ResourceValue implements IResourceValue { public void replaceWith(ResourceValue value) { mValue = value.mValue; } + + @Override + public String toString() { + return "ResourceValue [" + mType + "/" + mName + " = " + mValue + + " (framework:" + mIsFramwork + ")]"; + } + + } |