diff options
Diffstat (limited to 'layoutlib_api')
8 files changed, 40 insertions, 71 deletions
diff --git a/layoutlib_api/.classpath b/layoutlib_api/.classpath index a09ce5f..bae87a9 100644 --- a/layoutlib_api/.classpath +++ b/layoutlib_api/.classpath @@ -3,5 +3,6 @@ <classpathentry kind="src" path="src"/> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> <classpathentry kind="var" path="ANDROID_SRC/prebuilt/common/kxml2/kxml2-2.3.0.jar" sourcepath="/ANDROID_SRC/dalvik/libcore/xml/src/main/java"/> + <classpathentry combineaccessrules="false" kind="src" path="/resources"/> <classpathentry kind="output" path="bin"/> </classpath> diff --git a/layoutlib_api/Android.mk b/layoutlib_api/Android.mk index d60987c..4ebf1f6 100644 --- a/layoutlib_api/Android.mk +++ b/layoutlib_api/Android.mk @@ -19,6 +19,7 @@ include $(CLEAR_VARS) LOCAL_SRC_FILES := $(call all-java-files-under,src) LOCAL_JAVA_LIBRARIES := \ + resources \ kxml2-2.3.0 LOCAL_MODULE := layoutlib_api diff --git a/layoutlib_api/README.txt b/layoutlib_api/README.txt new file mode 100644 index 0000000..487a1a2 --- /dev/null +++ b/layoutlib_api/README.txt @@ -0,0 +1,16 @@ +LayoutLib API is a jar describing the API used to load and interact with layoutlib.jar +It is to be packaged with clients accessing layoutlib.jar + +Layoutlib.jar is built from frameworks/base.git and therefore is versioned with the platform. + +IMPORTANT NOTE REGARDING CHANGES IN LAYOUTLIB_API: + +- The API must stay compatible. This is because while layoutlib.jar compiles against it, + the client provides the implementation and must be able to load earlier versions of layoutlib.jar. + This is true for all the classes under com.android.ide.common.rendering.api and + com.android.layoutlib.api although the latter is obsolete and should not be changed at all. + +- Updated version of layoutlib_api should be copied to the current in-dev branch of + prebuilt/common/layoutlib_api/layoutlib_api-prebuilt.jar + The PREBUILT file in the same folder must be updated as well to reflect how to rebuild this + prebuilt jar file.
\ No newline at end of file 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 d190b62..4d0d51f 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 @@ -21,10 +21,10 @@ import com.android.layoutlib.api.IDensityBasedResourceValue; @SuppressWarnings("deprecation") public class DensityBasedResourceValue extends ResourceValue implements IDensityBasedResourceValue { - private ResourceDensity mDensity; + private com.android.resources.Density mDensity; public DensityBasedResourceValue(String type, String name, String value, - ResourceDensity density, boolean isFramework) { + com.android.resources.Density density, boolean isFramework) { super(type, name, value, isFramework); mDensity = density; } @@ -33,7 +33,7 @@ public class DensityBasedResourceValue extends ResourceValue implements IDensity * Returns the density for which this resource is configured. * @return the density. */ - public ResourceDensity getResourceDensity() { + public com.android.resources.Density getResourceDensity() { return mDensity; } @@ -41,6 +41,6 @@ public class DensityBasedResourceValue extends ResourceValue implements IDensity * @deprecated use {@link #getResourceDensity()} instead. */ public Density getDensity() { - return Density.getEnum(mDensity.getDpi()); + return Density.getEnum(mDensity.getDpiValue()); } } diff --git a/layoutlib_api/src/com/android/ide/common/rendering/api/Params.java b/layoutlib_api/src/com/android/ide/common/rendering/api/Params.java index 4bb41f1..fb4b423 100644 --- a/layoutlib_api/src/com/android/ide/common/rendering/api/Params.java +++ b/layoutlib_api/src/com/android/ide/common/rendering/api/Params.java @@ -16,6 +16,8 @@ package com.android.ide.common.rendering.api; +import com.android.resources.ScreenSize; + public class Params { @@ -64,6 +66,8 @@ public class Params { private IImageFactory mImageFactory = null; + private ScreenSize mConfigScreenSize = null; + /** * * @param layoutDescription the {@link ILayoutPullParser} letting the LayoutLib Bridge visit the @@ -137,6 +141,7 @@ public class Params { mCustomBackgroundColor = params.mCustomBackgroundColor; mTimeout = params.mTimeout; mImageFactory = params.mImageFactory; + mConfigScreenSize = params.mConfigScreenSize; } public void setOverrideBgColor(int color) { @@ -152,6 +157,10 @@ public class Params { mImageFactory = imageFactory; } + public void setConfigScreenSize(ScreenSize size) { + mConfigScreenSize = size; + } + public ILayoutPullParser getLayoutDescription() { return mLayoutDescription; } @@ -219,4 +228,8 @@ public class Params { public IImageFactory getImageFactory() { return mImageFactory; } + + public ScreenSize getConfigScreenSize() { + return mConfigScreenSize; + } } 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 5a00ebc..9bdd146 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 @@ -74,13 +74,11 @@ public class RenderSession { } /** - * Returns true if the current session is rendered as a floating window. - * <p/> - * If true this means the alpha channel of {@link #getImage()} should be respected. If false, - * if can be dropped if it's more convenient/faster. - * @return whether the current session is rendered as a floating window. + * Returns true if the current image alpha channel is relevant. + * + * @return whether the image alpha channel is relevant. */ - public boolean isFloatingWindow() { + public boolean isAlphaChannelImage() { return true; } diff --git a/layoutlib_api/src/com/android/ide/common/rendering/api/ResourceDensity.java b/layoutlib_api/src/com/android/ide/common/rendering/api/ResourceDensity.java deleted file mode 100644 index ca92eae..0000000 --- a/layoutlib_api/src/com/android/ide/common/rendering/api/ResourceDensity.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright (C) 2010 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.ide.common.rendering.api; - -/** - * Enum representing the density class of Android resources. - */ -public enum ResourceDensity { - XHIGH(320), - HIGH(240), - MEDIUM(160), - LOW(120), - NODPI(0); - - public final static int DEFAULT_DENSITY = 160; - - private final int mDpi; - - ResourceDensity(int dpi) { - mDpi = dpi; - } - - /** - * Returns the dot-per-inch value associated with the density. - * @return the dpi value. - */ - public int getDpi() { - return mDpi; - } - - /** - * Returns the enum matching the given dpi. - * @param dpi The dpi - * @return the enum for the dpi or null if no match was found. - */ - public static ResourceDensity getEnum(int dpi) { - for (ResourceDensity d : values()) { - if (d.mDpi == dpi) { - return d; - } - } - - return null; - } -} diff --git a/layoutlib_api/src/com/android/layoutlib/api/IDensityBasedResourceValue.java b/layoutlib_api/src/com/android/layoutlib/api/IDensityBasedResourceValue.java index 4e55d54..dce907c 100644 --- a/layoutlib_api/src/com/android/layoutlib/api/IDensityBasedResourceValue.java +++ b/layoutlib_api/src/com/android/layoutlib/api/IDensityBasedResourceValue.java @@ -17,7 +17,6 @@ package com.android.layoutlib.api; import com.android.ide.common.rendering.api.DensityBasedResourceValue; -import com.android.ide.common.rendering.api.ResourceDensity; /** * Represents an Android Resources that has a density info attached to it. @@ -29,7 +28,7 @@ public interface IDensityBasedResourceValue extends IResourceValue { /** * Density. * - * @deprecated use {@link ResourceDensity}. + * @deprecated use {@link com.android.resources.Density}. */ @Deprecated public static enum Density { |