diff options
author | Xavier Ducrohet <xav@android.com> | 2010-12-15 16:08:57 -0800 |
---|---|---|
committer | Xavier Ducrohet <xav@android.com> | 2010-12-21 10:27:22 -0800 |
commit | 95b17a5e62eeeb7b38ef668508df43a1ee9e0880 (patch) | |
tree | ca77258cf072446e38d2a68acab77aac8dd3a73e /layoutlib_api/src/com/android/ide/common/rendering/api/IProjectCallback.java | |
parent | 77e0fdebe08d39f550544571989649533d043223 (diff) | |
download | sdk-95b17a5e62eeeb7b38ef668508df43a1ee9e0880.zip sdk-95b17a5e62eeeb7b38ef668508df43a1ee9e0880.tar.gz sdk-95b17a5e62eeeb7b38ef668508df43a1ee9e0880.tar.bz2 |
LayoutLib API refactoring
Change-Id: I40abba4c4f786755c2a1c0e70df4d7bc08e2bcde
Diffstat (limited to 'layoutlib_api/src/com/android/ide/common/rendering/api/IProjectCallback.java')
-rw-r--r-- | layoutlib_api/src/com/android/ide/common/rendering/api/IProjectCallback.java | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/layoutlib_api/src/com/android/ide/common/rendering/api/IProjectCallback.java b/layoutlib_api/src/com/android/ide/common/rendering/api/IProjectCallback.java new file mode 100644 index 0000000..67e082e --- /dev/null +++ b/layoutlib_api/src/com/android/ide/common/rendering/api/IProjectCallback.java @@ -0,0 +1,74 @@ +/* + * Copyright (C) 2008 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; + +/** + * Callback for project information needed by the Layout Library. + * Classes implementing this interface provide methods giving access to some project data, like + * resource resolution, namespace information, and instantiation of custom view. + */ +public interface IProjectCallback { + + /** + * Loads a custom view with the given constructor signature and arguments. + * @param name The fully qualified name of the class. + * @param constructorSignature The signature of the class to use + * @param constructorArgs The arguments to use on the constructor + * @return A newly instantiated android.view.View object. + * @throws ClassNotFoundException + * @throws Exception + */ + @SuppressWarnings("unchecked") + Object loadView(String name, Class[] constructorSignature, Object[] constructorArgs) + throws ClassNotFoundException, Exception; + + /** + * Returns the namespace of the application. + * <p/>This lets the Layout Lib load custom attributes for custom views. + */ + String getNamespace(); + + /** + * Resolves the id of a resource Id. + * <p/>The resource id is the value of a <code>R.<type>.<name></code>, and + * this method will return both the type and name of the resource. + * @param id the Id to resolve. + * @return an array of 2 strings containing the resource name and type, or null if the id + * does not match any resource. + */ + String[] resolveResourceValue(int id); + + /** + * Resolves the id of a resource Id of type int[] + * <p/>The resource id is the value of a R.styleable.<name>, and this method will + * return the name of the resource. + * @param id the Id to resolve. + * @return the name of the resource or <code>null</code> if not found. + */ + String resolveResourceValue(int[] id); + + /** + * Returns the id of a resource. + * <p/>The provided type and name must match an existing constant defined as + * <code>R.<type>.<name></code>. + * @param type the type of the resource + * @param name the name of the resource + * @return an Integer containing the resource Id, or <code>null</code> if not found. + */ + Integer getResourceValue(String type, String name); + +} |