diff options
-rw-r--r-- | layoutlib_api/src/com/android/layoutlib/api/ILayoutBridge.java | 44 | ||||
-rw-r--r-- | layoutlib_api/src/com/android/layoutlib/api/ILayoutScene.java | 103 | ||||
-rw-r--r-- | layoutlib_api/src/com/android/layoutlib/api/IXmlPullParser.java | 2 | ||||
-rw-r--r-- | layoutlib_api/src/com/android/layoutlib/api/LayoutBridge.java | 78 | ||||
-rw-r--r-- | layoutlib_api/src/com/android/layoutlib/api/LayoutScene.java | 158 | ||||
-rw-r--r-- | layoutlib_api/src/com/android/layoutlib/api/SceneParams.java | 181 | ||||
-rw-r--r-- | layoutlib_api/src/com/android/layoutlib/api/SceneResult.java | 84 | ||||
-rw-r--r-- | layoutlib_api/src/com/android/layoutlib/api/ViewInfo.java (renamed from layoutlib_api/src/com/android/layoutlib/api/ILayoutViewInfo.java) | 73 |
8 files changed, 566 insertions, 157 deletions
diff --git a/layoutlib_api/src/com/android/layoutlib/api/ILayoutBridge.java b/layoutlib_api/src/com/android/layoutlib/api/ILayoutBridge.java index 103525c..70d099d 100644 --- a/layoutlib_api/src/com/android/layoutlib/api/ILayoutBridge.java +++ b/layoutlib_api/src/com/android/layoutlib/api/ILayoutBridge.java @@ -26,8 +26,7 @@ import java.util.Map; * <p/> * Changes in API level 5: * <ul> - * <li>new render method: {@link #startLayout(IXmlPullParser, Object, int, int, boolean, int, float, float, String, boolean, Map, Map, IProjectCallback, ILayoutLog)} - * <li>deprecated {@link #computeLayout(IXmlPullParser, Object, int, int, boolean, int, float, float, String, boolean, Map, Map, IProjectCallback, ILayoutLog)}</li> + * <li>Bridge should extend {@link LayoutBridge} instead of implementing {@link ILayoutBridge}.</li> * </ul> * Changes in API level 4: * <ul> @@ -45,10 +44,12 @@ import java.util.Map; * <li>new render method: {@link #computeLayout(IXmlPullParser, Object, int, int, String, boolean, Map, Map, IProjectCallback, ILayoutLog)}</li> * <li>deprecated {@link #computeLayout(IXmlPullParser, Object, int, int, String, Map, Map, IProjectCallback, ILayoutLog)}</li> * </ul> + * @Deprecated Extend {@link LayoutBridge} instead. */ +@Deprecated public interface ILayoutBridge { - final int API_CURRENT = 5; + final int API_CURRENT = 4; /** * Returns the API level of the layout library. @@ -100,43 +101,6 @@ public interface ILayoutBridge { * @param projectCallback The {@link IProjectCallback} object to get information from * the project. * @param logger the object responsible for displaying warning/errors to the user. - * @return a new {@link ILayoutScene} object that contains the result of the layout. - * @since 5 - */ - ILayoutScene startLayout(IXmlPullParser layoutDescription, - Object projectKey, - int screenWidth, int screenHeight, boolean renderFullSize, - int density, float xdpi, float ydpi, - String themeName, boolean isProjectTheme, - Map<String, Map<String, IResourceValue>> projectResources, - Map<String, Map<String, IResourceValue>> frameworkResources, - IProjectCallback projectCallback, ILayoutLog logger); - - /** - * Computes and renders a layout - * @param layoutDescription the {@link IXmlPullParser} letting the LayoutLib Bridge visit the - * layout file. - * @param projectKey An Object identifying the project. This is used for the cache mechanism. - * @param screenWidth the screen width - * @param screenHeight the screen height - * @param renderFullSize if true, the rendering will render the full size needed by the - * layout. This size is never smaller than <var>screenWidth</var> x <var>screenHeight</var>. - * @param density the density factor for the screen. - * @param xdpi the screen actual dpi in X - * @param ydpi the screen actual dpi in Y - * @param themeName The name of the theme to use. - * @param isProjectTheme true if the theme is a project theme, false if it is a framework theme. - * @param projectResources the resources of the project. The map contains (String, map) pairs - * where the string is the type of the resource reference used in the layout file, and the - * map contains (String, {@link IResourceValue}) pairs where the key is the resource name, - * and the value is the resource value. - * @param frameworkResources the framework resources. The map contains (String, map) pairs - * where the string is the type of the resource reference used in the layout file, and the map - * contains (String, {@link IResourceValue}) pairs where the key is the resource name, and the - * value is the resource value. - * @param projectCallback The {@link IProjectCallback} object to get information from - * the project. - * @param logger the object responsible for displaying warning/errors to the user. * @return a new {@link ILayoutResult} object that contains the result of the layout. * @deprecated use {@link #startLayout(IXmlPullParser, Object, int, int, boolean, int, float, float, String, boolean, Map, Map, IProjectCallback, ILayoutLog)} * @since 4 diff --git a/layoutlib_api/src/com/android/layoutlib/api/ILayoutScene.java b/layoutlib_api/src/com/android/layoutlib/api/ILayoutScene.java deleted file mode 100644 index 125266e..0000000 --- a/layoutlib_api/src/com/android/layoutlib/api/ILayoutScene.java +++ /dev/null @@ -1,103 +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.layoutlib.api; - -import java.awt.image.BufferedImage; - -/** - * An object allowing interaction with an Android layout. - * - * This is returned by {@link ILayoutBridge#startLayout(IXmlPullParser, Object, int, int, boolean, int, float, float, String, boolean, java.util.Map, java.util.Map, IProjectCallback, ILayoutLog)} - * and can then be used for subsequent actions on the layout. - * - * @since 5 - * - */ -public interface ILayoutScene { - - enum LayoutStatus { SUCCESS, ERROR }; - - public interface ILayoutResult { - LayoutStatus getStatus(); - String getErrorMessage(); - Throwable getException(); - } - - public interface IAnimationListener { - /** - * Called when a new animation frame is available for display. - */ - void onNewFrame(BufferedImage image); - - /** - * Called when the animation is done playing. - */ - void done(); - } - - /** - * Returns the result for the original call to {@link ILayoutBridge#startLayout(IXmlPullParser, Object, int, int, boolean, int, float, float, String, boolean, java.util.Map, java.util.Map, IProjectCallback, ILayoutLog)} - */ - ILayoutResult getResult(); - - /** - * Returns the {@link ILayoutViewInfo} object for the top level view. - */ - ILayoutViewInfo getRootView(); - - /** - * Returns the rendering of the full layout. - */ - BufferedImage getImage(); - - /** - * Re-renders the layout as-is. - * In case of success, this should be followed by calls to {@link #getRootView()} and - * {@link #getImage()} - */ - ILayoutResult render(); - - /** - * Sets the value of a given property on a given object. - * In case of success, this should be followed by a call to {@link #render()} - * @param object - * @param propertyName - * @param propertyValue - * @return - */ - ILayoutResult setProperty(int object, String propertyName, String propertyValue); - - /** - * TBD - */ - ILayoutResult insertChild(); - - /** - * TBD - */ - ILayoutResult removeChild(); - - /** - * TBD - */ - ILayoutResult animate(int object, int animation, IAnimationListener listener); - - /** - * Discards the layout. No more actions can be called on this object. - */ - void dispose(); -} diff --git a/layoutlib_api/src/com/android/layoutlib/api/IXmlPullParser.java b/layoutlib_api/src/com/android/layoutlib/api/IXmlPullParser.java index 8cf0325..6d0f2b6 100644 --- a/layoutlib_api/src/com/android/layoutlib/api/IXmlPullParser.java +++ b/layoutlib_api/src/com/android/layoutlib/api/IXmlPullParser.java @@ -28,7 +28,7 @@ public interface IXmlPullParser extends XmlPullParser { /** * Returns a key for the current XML node. - * <p/>This key will be passed back in the {@link ILayoutViewInfo} objects, allowing association + * <p/>This key will be passed back in the {@link ViewInfo} objects, allowing association * of a particular XML node with its result from the layout computation. */ Object getViewKey(); diff --git a/layoutlib_api/src/com/android/layoutlib/api/LayoutBridge.java b/layoutlib_api/src/com/android/layoutlib/api/LayoutBridge.java new file mode 100644 index 0000000..c70524b --- /dev/null +++ b/layoutlib_api/src/com/android/layoutlib/api/LayoutBridge.java @@ -0,0 +1,78 @@ +/* + * 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.layoutlib.api; + +import java.util.Map; + +/** + * Entry point of the Layout Lib. Extensions of this class provide a method to compute + * and render a layout. + */ +public abstract class LayoutBridge { + + public final static int API_CURRENT = 5; + + /** + * Returns the API level of the layout library. + * <p/> + * While no methods will ever be removed, some may become deprecated, and some new ones + * will appear. + */ + public abstract int getApiLevel(); + + /** + * Initializes the Bridge object. + * + * @param fontOsLocation the location of the fonts. + * @param enumValueMap map attrName => { map enumFlagName => Integer value }. + * @return true if success. + */ + public boolean init(String fontOsLocation, Map<String, Map<String, Integer>> enumValueMap) { + return false; + } + + /** + * Prepares the layoutlib to unloaded. + */ + public boolean dispose() { + return false; + } + + /** + * Starts a layout session by inflating and rendering it. The method returns a + * {@link LayoutScene} on which further actions can be taken. + * + * @return a new {@link ILayoutScene} object that contains the result of the scene creation and + * first rendering. + */ + public LayoutScene createScene(SceneParams params) { + return null; + } + + /** + * Clears the resource cache for a specific project. + * <p/>This cache contains bitmaps and nine patches that are loaded from the disk and reused + * until this method is called. + * <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). + * + * @param projectKey the key for the project. + */ + public void clearCaches(Object projectKey) { + + } +} diff --git a/layoutlib_api/src/com/android/layoutlib/api/LayoutScene.java b/layoutlib_api/src/com/android/layoutlib/api/LayoutScene.java new file mode 100644 index 0000000..8e0fe73 --- /dev/null +++ b/layoutlib_api/src/com/android/layoutlib/api/LayoutScene.java @@ -0,0 +1,158 @@ +/* + * 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.layoutlib.api; + +import com.android.layoutlib.api.SceneResult.LayoutStatus; + +import java.awt.image.BufferedImage; + +/** + * An object allowing interaction with an Android layout. + * + * This is returned by {@link LayoutBridge#createScene(SceneParams)}. + * and can then be used for subsequent actions on the layout. + * + * @since 5 + * + */ +public class LayoutScene { + + public interface IAnimationListener { + /** + * Called when a new animation frame is available for display. + */ + void onNewFrame(BufferedImage image); + + /** + * Called when the animation is done playing. + */ + void done(); + + /** + * Returns true if the animation is canceled. + */ + void isCanceled(); + } + + /** + * Returns the last operation result. + */ + public SceneResult getResult() { + return new SceneResult(LayoutStatus.NOT_IMPLEMENTED); + } + + /** + * Returns the {@link ViewInfo} object for the top level view. + * <p> + * This is reset to a new instance every time {@link #render()} is called and can be + * <code>null</code> if the call failed (and the method returned a {@link SceneResult} with + * {@link LayoutStatus#ERROR} or {@link LayoutStatus#NOT_IMPLEMENTED}. + * <p/> + * This can be safely modified by the caller. + */ + public ViewInfo getRootView() { + return null; + } + + /** + * Returns the rendering of the full layout. + * <p> + * This is reset to a new instance every time {@link #render()} is called and can be + * <code>null</code> if the call failed (and the method returned a {@link SceneResult} with + * {@link LayoutStatus#ERROR} or {@link LayoutStatus#NOT_IMPLEMENTED}. + * <p/> + * This can be safely modified by the caller. + */ + public BufferedImage getImage() { + return null; + } + + /** + * Re-renders the layout as-is. + * In case of success, this should be followed by calls to {@link #getRootView()} and + * {@link #getImage()} to access the result of the rendering. + * + * @return a {@link SceneResult} indicating the status of the action. + */ + public SceneResult render() { + return new SceneResult(LayoutStatus.NOT_IMPLEMENTED); + } + + /** + * Sets the value of a given property on a given object. + * <p/> + * This does nothing more than change the property. To render the scene in its new state, a + * call to {@link #render()} is required. + * <p/> + * Any amount of actions can be taken on the scene before {@link #render()} is called. + * + * @param object + * @param propertyName + * @param propertyValue + * + * @return a {@link SceneResult} indicating the status of the action. + */ + public SceneResult setProperty(int object, String propertyName, String propertyValue) { + return new SceneResult(LayoutStatus.NOT_IMPLEMENTED); + } + + /** + * Inserts a new child in a ViewGroup object. + * <p/> + * This does nothing more than change the layouy. To render the scene in its new state, a + * call to {@link #render()} is required. + * <p/> + * Any amount of actions can be taken on the scene before {@link #render()} is called. + * + * @return a {@link SceneResult} indicating the status of the action. + */ + public SceneResult insertChild() { + return new SceneResult(LayoutStatus.NOT_IMPLEMENTED); + } + + /** + * Removes a child from a ViewGroup object. + * <p/> + * This does nothing more than change the layouy. To render the scene in its new state, a + * call to {@link #render()} is required. + * <p/> + * Any amount of actions can be taken on the scene before {@link #render()} is called. + * + * @return a {@link SceneResult} indicating the status of the action. + */ + public SceneResult removeChild() { + return new SceneResult(LayoutStatus.NOT_IMPLEMENTED); + } + + /** + * Starts playing an given animation on a given object. + * <p/> + * The animation playback is asynchronous and the rendered frame is sent vi the + * <var>listener</var>. + * + * @return a {@link SceneResult} indicating the status of the action. + */ + public SceneResult animate(int object, int animation, IAnimationListener listener) { + return new SceneResult(LayoutStatus.NOT_IMPLEMENTED); + } + + /** + * Discards the layout. No more actions can be called on this object. + */ + public void dispose() { + } +} diff --git a/layoutlib_api/src/com/android/layoutlib/api/SceneParams.java b/layoutlib_api/src/com/android/layoutlib/api/SceneParams.java new file mode 100644 index 0000000..6b8f781 --- /dev/null +++ b/layoutlib_api/src/com/android/layoutlib/api/SceneParams.java @@ -0,0 +1,181 @@ +/* + * 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.layoutlib.api; + +import java.util.Map; + +public class SceneParams { + + private IXmlPullParser mLayoutDescription; + private Object mProjectKey; + private int mScreenWidth; + private int mScreenHeight; + private boolean mRenderFullSize; + private int mDensity; + private float mXdpi; + private float mYdpi; + private String mThemeName; + private boolean mIsProjectTheme; + private Map<String, Map<String, IResourceValue>> mProjectResources; + private Map<String, Map<String, IResourceValue>> mFrameworkResources; + private IProjectCallback mProjectCallback; + private ILayoutLog mLogger; + private boolean mCustomBackgroundEnabled; + private int mCustomBackgroundColor; + + /** + * + * @param layoutDescription the {@link IXmlPullParser} letting the LayoutLib Bridge visit the + * layout file. + * @param projectKey An Object identifying the project. This is used for the cache mechanism. + * @param screenWidth the screen width + * @param screenHeight the screen height + * @param renderFullSize if true, the rendering will render the full size needed by the + * layout. This size is never smaller than <var>screenWidth</var> x <var>screenHeight</var>. + * @param density the density factor for the screen. + * @param xdpi the screen actual dpi in X + * @param ydpi the screen actual dpi in Y + * @param themeName The name of the theme to use. + * @param isProjectTheme true if the theme is a project theme, false if it is a framework theme. + * @param projectResources the resources of the project. The map contains (String, map) pairs + * where the string is the type of the resource reference used in the layout file, and the + * map contains (String, {@link IResourceValue}) pairs where the key is the resource name, + * and the value is the resource value. + * @param frameworkResources the framework resources. The map contains (String, map) pairs + * where the string is the type of the resource reference used in the layout file, and the map + * contains (String, {@link IResourceValue}) pairs where the key is the resource name, and the + * value is the resource value. + * @param projectCallback The {@link IProjectCallback} object to get information from + * the project. + * @param logger the object responsible for displaying warning/errors to the user. + */ + public SceneParams(IXmlPullParser layoutDescription, + Object projectKey, + int screenWidth, int screenHeight, boolean renderFullSize, + int density, float xdpi, float ydpi, + String themeName, boolean isProjectTheme, + Map<String, Map<String, IResourceValue>> projectResources, + Map<String, Map<String, IResourceValue>> frameworkResources, + IProjectCallback projectCallback, ILayoutLog logger) { + mLayoutDescription = layoutDescription; + mProjectKey = projectKey; + mScreenWidth = screenWidth; + mScreenHeight = screenHeight; + mRenderFullSize = renderFullSize; + mDensity = density; + mXdpi = xdpi; + mYdpi = ydpi; + mThemeName = themeName; + mIsProjectTheme = isProjectTheme; + mProjectResources = projectResources; + mFrameworkResources = frameworkResources; + mProjectCallback = projectCallback; + mLogger = logger; + mCustomBackgroundEnabled = false; + } + + /** + * Copy constructor. + */ + public SceneParams(SceneParams params) { + mLayoutDescription = params.mLayoutDescription; + mProjectKey = params.mProjectKey; + mScreenWidth = params.mScreenWidth; + mScreenHeight = params.mScreenHeight; + mRenderFullSize = params.mRenderFullSize; + mDensity = params.mDensity; + mXdpi = params.mXdpi; + mYdpi = params.mYdpi; + mThemeName = params.mThemeName; + mIsProjectTheme = params.mIsProjectTheme; + mProjectResources = params.mProjectResources; + mFrameworkResources = params.mFrameworkResources; + mProjectCallback = params.mProjectCallback; + mLogger = params.mLogger; + mCustomBackgroundEnabled = params.mCustomBackgroundEnabled; + mCustomBackgroundColor = params.mCustomBackgroundColor; + } + + public void setCustomBackgroundColor(int color) { + mCustomBackgroundEnabled = true; + mCustomBackgroundColor = color; + } + + public IXmlPullParser getLayoutDescription() { + return mLayoutDescription; + } + + public Object getProjectKey() { + return mProjectKey; + } + + public int getScreenWidth() { + return mScreenWidth; + } + + public int getScreenHeight() { + return mScreenHeight; + } + + public boolean getRenderFullSize() { + return mRenderFullSize; + } + + public int getDensity() { + return mDensity; + } + + public float getXdpi() { + return mXdpi; + } + + public float getYdpi() { + return mYdpi; + } + + public String getThemeName() { + return mThemeName; + } + + public boolean getIsProjectTheme() { + return mIsProjectTheme; + } + + public Map<String, Map<String, IResourceValue>> getProjectResources() { + return mProjectResources; + } + + public Map<String, Map<String, IResourceValue>> getFrameworkResources() { + return mFrameworkResources; + } + + public IProjectCallback getProjectCallback() { + return mProjectCallback; + } + + public ILayoutLog getLogger() { + return mLogger; + } + + public boolean isCustomBackgroundEnabled() { + return mCustomBackgroundEnabled; + } + + public int getCustomBackgroundColor() { + return mCustomBackgroundColor; + } +} diff --git a/layoutlib_api/src/com/android/layoutlib/api/SceneResult.java b/layoutlib_api/src/com/android/layoutlib/api/SceneResult.java new file mode 100644 index 0000000..7214b3f --- /dev/null +++ b/layoutlib_api/src/com/android/layoutlib/api/SceneResult.java @@ -0,0 +1,84 @@ +/* + * 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.layoutlib.api; + + +/** + * Scene result class. + */ +public class SceneResult { + + private final LayoutStatus mStatus; + private final String mErrorMessage; + private final Throwable mThrowable; + + public enum LayoutStatus { SUCCESS, ERROR, NOT_IMPLEMENTED }; + + /** + * Creates a successful {@link SceneResult} object. + */ + public SceneResult() { + mStatus = LayoutStatus.SUCCESS; + mErrorMessage = null; + mThrowable = null; + } + + /** + * Creates an error {@link SceneResult} object with the given message. + */ + public SceneResult(String errorMessage) { + mStatus = LayoutStatus.ERROR; + mErrorMessage = errorMessage; + mThrowable = null; + } + + /** + * Creates an error {@link SceneResult} object with the given message and {@link Throwable} + */ + public SceneResult(String errorMessage, Throwable t) { + mStatus = LayoutStatus.ERROR; + mErrorMessage = errorMessage; + mThrowable = t; + } + + /*package*/ SceneResult(LayoutStatus status) { + mStatus = LayoutStatus.NOT_IMPLEMENTED; + mErrorMessage = null; + mThrowable = null; + } + + /** + * Returns the status. This is never null. + */ + public LayoutStatus getStatus() { + return mStatus; + } + + /** + * Returns the error message. This can be null if the status is {@link LayoutStatus#SUCCESS}. + */ + public String getErrorMessage() { + return mErrorMessage; + } + + /** + * Returns the exception. This can be null. + */ + public Throwable getException() { + return mThrowable; + } +} diff --git a/layoutlib_api/src/com/android/layoutlib/api/ILayoutViewInfo.java b/layoutlib_api/src/com/android/layoutlib/api/ViewInfo.java index 4c864c0..3e7d907 100644 --- a/layoutlib_api/src/com/android/layoutlib/api/ILayoutViewInfo.java +++ b/layoutlib_api/src/com/android/layoutlib/api/ViewInfo.java @@ -16,60 +16,107 @@ package com.android.layoutlib.api; +import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.Map; /** * Layout information for a specific view object */ -public interface ILayoutViewInfo { +public class ViewInfo { + + protected final Object mKey; + protected final String mName; + protected final int mLeft; + protected final int mRight; + protected final int mTop; + protected final int mBottom; + protected List<ViewInfo> mChildren;; + + public ViewInfo(String name, Object key, int left, int top, int right, int bottom) { + mName = name; + mKey = key; + mLeft = left; + mRight = right; + mTop = top; + mBottom = bottom; + } + + /** + * Sets the list of children {@link ViewInfo}. + */ + public void setChildren(List<ViewInfo> children) { + mChildren = new ArrayList<ViewInfo>(); + mChildren.addAll(children); + mChildren = Collections.unmodifiableList(mChildren); + } /** - * Returns the list of children views. + * Returns the list of children views. This is never null, but can be empty. */ - List<ILayoutViewInfo> getChildren(); + public List<ViewInfo> getChildren() { + return mChildren; + } /** - * Returns the key associated with the node. + * Returns the key associated with the node. Can be null. + * * @see IXmlPullParser#getViewKey() */ - Object getViewKey(); + public Object getViewKey() { + return null; + } /** - * Returns the class name of the view object. + * Returns the class name of the view object. Can be null. */ - String getClassName(); + public String getClassName() { + return null; + } /** * Returns the left of the view bounds, relative to the view parent bounds. */ - int getLeft(); + public int getLeft() { + return 0; + } /** * Returns the top of the view bounds, relative to the view parent bounds. */ - int getTop(); + public int getTop() { + return 0; + } /** * Returns the right of the view bounds, relative to the view parent bounds. */ - int getRight(); + public int getRight() { + return 0; + } /** * Returns the bottom of the view bounds, relative to the view parent bounds. */ - int getBottom(); + public int getBottom() { + return 0; + } /** * Returns a map of default values for some properties. The map key is the property name, * as found in the XML. */ - Map<String, String> getDefaultPropertyValues(); + public Map<String, String> getDefaultPropertyValues() { + return null; + } /** * Returns the actual android.view.View (or child class) object. This can be used * to query the object properties that are not in the XML and not in the map returned * by {@link #getDefaultPropertyValues()}. */ - Object getViewObject(); + public Object getViewObject() { + return null; + } } |