Merge "LayoutLib: Properly support attr ns when used in styles."

This commit is contained in:
Xavier Ducrohet
2012-03-16 16:46:00 -07:00
committed by Android (Google) Code Review
4 changed files with 184 additions and 199 deletions

View File

@@ -120,10 +120,8 @@ public final class BridgeResources extends Resources {
mProjectCallback = projectCallback;
}
public BridgeTypedArray newTypeArray(int numEntries, boolean platformFile,
boolean platformStyleable, String styleableName) {
return new BridgeTypedArray(this, mContext, numEntries, platformFile,
platformStyleable, styleableName);
public BridgeTypedArray newTypeArray(int numEntries, boolean platformFile) {
return new BridgeTypedArray(this, mContext, numEntries, platformFile);
}
private Pair<String, ResourceValue> getResourceValue(int id, boolean[] platformResFlag_out) {

View File

@@ -16,7 +16,7 @@
package android.content.res;
import com.android.ide.common.rendering.api.DeclareStyleableResourceValue;
import com.android.ide.common.rendering.api.AttrResourceValue;
import com.android.ide.common.rendering.api.LayoutLog;
import com.android.ide.common.rendering.api.RenderResources;
import com.android.ide.common.rendering.api.ResourceValue;
@@ -51,28 +51,33 @@ public final class BridgeTypedArray extends TypedArray {
private final BridgeResources mBridgeResources;
private final BridgeContext mContext;
private final boolean mPlatformFile;
private final boolean mPlatformStyleable;
private final String mStyleableName;
private ResourceValue[] mResourceData;
private String[] mNames;
private boolean[] mIsFramework;
public BridgeTypedArray(BridgeResources resources, BridgeContext context, int len,
boolean platformFile, boolean platformStyleable, String styleableName) {
boolean platformFile) {
super(null, null, null, 0);
mBridgeResources = resources;
mContext = context;
mPlatformFile = platformFile;
mPlatformStyleable = platformStyleable;
mStyleableName = styleableName;
mResourceData = new ResourceValue[len];
mNames = new String[len];
mIsFramework = new boolean[len];
}
/** A bridge-specific method that sets a value in the type array */
public void bridgeSetValue(int index, String name, ResourceValue value) {
/**
* A bridge-specific method that sets a value in the type array
* @param index the index of the value in the TypedArray
* @param name the name of the attribute
* @param isFramework whether the attribute is in the android namespace.
* @param value the value of the attribute
*/
public void bridgeSetValue(int index, String name, boolean isFramework, ResourceValue value) {
mResourceData[index] = value;
mNames[index] = name;
mIsFramework[index] = isFramework;
}
/**
@@ -213,8 +218,12 @@ public final class BridgeTypedArray extends TypedArray {
return defValue;
}
if (s == null) {
return defValue;
}
try {
return (s == null) ? defValue : XmlUtils.convertValueToInt(s, defValue);
return XmlUtils.convertValueToInt(s, defValue);
} catch (NumberFormatException e) {
// pass
}
@@ -223,15 +232,14 @@ public final class BridgeTypedArray extends TypedArray {
// Check for possible constants and try to find them.
// Get the map of attribute-constant -> IntegerValue
Map<String, Integer> map = null;
if (mPlatformStyleable) {
if (mIsFramework[index]) {
map = Bridge.getEnumValues(mNames[index]);
} else if (mStyleableName != null) {
} else {
// get the styleable matching the resolved name
RenderResources res = mContext.getRenderResources();
ResourceValue styleable = res.getProjectResource(ResourceType.DECLARE_STYLEABLE,
mStyleableName);
if (styleable instanceof DeclareStyleableResourceValue) {
map = ((DeclareStyleableResourceValue) styleable).getAttributeValues(mNames[index]);
ResourceValue attr = res.getProjectResource(ResourceType.ATTR, mNames[index]);
if (attr instanceof AttrResourceValue) {
map = ((AttrResourceValue) attr).getAttributeValues();
}
}

View File

@@ -70,13 +70,13 @@ public class BridgeRenderSession extends RenderSession {
@Override
public Result getProperty(Object objectView, String propertyName) {
// TODO Auto-generated method stub
// pass
return super.getProperty(objectView, propertyName);
}
@Override
public Result setProperty(Object objectView, String propertyName, String propertyValue) {
// TODO Auto-generated method stub
// pass
return super.setProperty(objectView, propertyName, propertyValue);
}

View File

@@ -76,13 +76,11 @@ import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.IdentityHashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.TreeMap;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicReference;
/**
* Custom implementation of Context/Activity to handle non compiled resources.
@@ -247,15 +245,18 @@ public final class BridgeContext extends Context {
public boolean resolveThemeAttribute(int resid, TypedValue outValue, boolean resolveRefs) {
Pair<ResourceType, String> resourceInfo = Bridge.resolveResourceId(resid);
boolean isFrameworkRes = true;
if (resourceInfo == null) {
resourceInfo = mProjectCallback.resolveResourceId(resid);
isFrameworkRes = false;
}
if (resourceInfo == null) {
return false;
}
ResourceValue value = mRenderResources.findItemInTheme(resourceInfo.getSecond());
ResourceValue value = mRenderResources.findItemInTheme(resourceInfo.getSecond(),
isFrameworkRes);
if (resolveRefs) {
value = mRenderResources.resolveResValue(value);
}
@@ -315,12 +316,7 @@ public final class BridgeContext extends Context {
if (isPlatformLayout == false && skipCallbackParser == false) {
// check if the project callback can provide us with a custom parser.
ILayoutPullParser parser;
if (resource instanceof ResourceValue) {
parser = mProjectCallback.getParser((ResourceValue) resource);
} else {
parser = mProjectCallback.getParser(resource.getName());
}
ILayoutPullParser parser = getParser(resource);
if (parser != null) {
BridgeXmlBlockParser blockParser = new BridgeXmlBlockParser(parser,
@@ -393,6 +389,17 @@ public final class BridgeContext extends Context {
return Pair.of(null, false);
}
@SuppressWarnings("deprecation")
private ILayoutPullParser getParser(ResourceReference resource) {
ILayoutPullParser parser;
if (resource instanceof ResourceValue) {
parser = mProjectCallback.getParser((ResourceValue) resource);
} else {
parser = mProjectCallback.getParser(resource.getName());
}
return parser;
}
// ------------ Context methods
@Override
@@ -524,12 +531,10 @@ public final class BridgeContext extends Context {
return null;
}
AtomicBoolean frameworkAttributes = new AtomicBoolean();
AtomicReference<String> attrName = new AtomicReference<String>();
TreeMap<Integer, String> styleNameMap = searchAttrs(attrs, frameworkAttributes, attrName);
List<Pair<String, Boolean>> attributeList = searchAttrs(attrs);
BridgeTypedArray ta = ((BridgeResources) mSystemResources).newTypeArray(attrs.length,
isPlatformFile, frameworkAttributes.get(), attrName.get());
isPlatformFile);
// look for a custom style.
String customStyle = null;
@@ -555,14 +560,19 @@ public final class BridgeContext extends Context {
if (defStyleAttr != 0) {
// get the name from the int.
String defStyleName = searchAttr(defStyleAttr);
Pair<String, Boolean> defStyleAttribute = searchAttr(defStyleAttr);
if (defaultPropMap != null) {
String defStyleName = defStyleAttribute.getFirst();
if (defStyleAttribute.getSecond()) {
defStyleName = "android:" + defStyleName;
}
defaultPropMap.put("style", defStyleName);
}
// look for the style in the current theme, and its parent:
ResourceValue item = mRenderResources.findItemInTheme(defStyleName);
ResourceValue item = mRenderResources.findItemInTheme(defStyleAttribute.getFirst(),
defStyleAttribute.getSecond());
if (item != null) {
// item is a reference to a style entry. Search for it.
@@ -575,19 +585,23 @@ public final class BridgeContext extends Context {
} else {
Bridge.getLog().error(LayoutLog.TAG_RESOURCES_RESOLVE_THEME_ATTR,
String.format(
"Failed to find style '%s' in current theme", defStyleName),
"Failed to find style '%s' in current theme",
defStyleAttribute.getFirst()),
null /*data*/);
}
} else if (defStyleRes != 0) {
boolean isFrameworkRes = true;
Pair<ResourceType, String> value = Bridge.resolveResourceId(defStyleRes);
if (value == null) {
value = mProjectCallback.resolveResourceId(defStyleRes);
isFrameworkRes = false;
}
if (value != null) {
if (value.getFirst() == ResourceType.STYLE) {
// look for the style in the current theme, and its parent:
ResourceValue item = mRenderResources.findItemInTheme(value.getSecond());
ResourceValue item = mRenderResources.findItemInTheme(value.getSecond(),
isFrameworkRes);
if (item != null) {
if (item instanceof StyleResourceValue) {
if (defaultPropMap != null) {
@@ -619,26 +633,28 @@ public final class BridgeContext extends Context {
}
}
String namespace = BridgeConstants.NS_RESOURCES;
boolean useFrameworkNS = frameworkAttributes.get();
if (useFrameworkNS == false) {
// need to use the application namespace
namespace = mProjectCallback.getNamespace();
}
String appNamespace = mProjectCallback.getNamespace();
if (styleNameMap != null) {
for (Entry<Integer, String> styleAttribute : styleNameMap.entrySet()) {
int index = styleAttribute.getKey().intValue();
if (attributeList != null) {
for (int index = 0 ; index < attributeList.size() ; index++) {
Pair<String, Boolean> attribute = attributeList.get(index);
String name = styleAttribute.getValue();
if (attribute == null) {
continue;
}
String attrName = attribute.getFirst();
boolean frameworkAttr = attribute.getSecond().booleanValue();
String value = null;
if (set != null) {
value = set.getAttributeValue(namespace, name);
value = set.getAttributeValue(
frameworkAttr ? BridgeConstants.NS_RESOURCES : appNamespace,
attrName);
// if this is an app attribute, and the first get fails, try with the
// new res-auto namespace as well
if (useFrameworkNS == false && value == null) {
value = set.getAttributeValue(BridgeConstants.NS_APP_RES_AUTO, name);
if (frameworkAttr == false && value == null) {
value = set.getAttributeValue(BridgeConstants.NS_APP_RES_AUTO, attrName);
}
}
@@ -649,18 +665,20 @@ public final class BridgeContext extends Context {
// look for the value in the custom style first (and its parent if needed)
if (customStyleValues != null) {
resValue = mRenderResources.findItemInStyle(customStyleValues, name);
resValue = mRenderResources.findItemInStyle(customStyleValues,
attrName, frameworkAttr);
}
// then look for the value in the default Style (and its parent if needed)
if (resValue == null && defStyleValues != null) {
resValue = mRenderResources.findItemInStyle(defStyleValues, name);
resValue = mRenderResources.findItemInStyle(defStyleValues,
attrName, frameworkAttr);
}
// if the item is not present in the defStyle, we look in the main theme (and
// its parent themes)
if (resValue == null) {
resValue = mRenderResources.findItemInTheme(name);
resValue = mRenderResources.findItemInTheme(attrName, frameworkAttr);
}
// if we found a value, we make sure this doesn't reference another value.
@@ -668,18 +686,18 @@ public final class BridgeContext extends Context {
if (resValue != null) {
// put the first default value, before the resolution.
if (defaultPropMap != null) {
defaultPropMap.put(name, resValue.getValue());
defaultPropMap.put(attrName, resValue.getValue());
}
resValue = mRenderResources.resolveResValue(resValue);
}
ta.bridgeSetValue(index, name, resValue);
ta.bridgeSetValue(index, attrName, frameworkAttr, resValue);
} else {
// there is a value in the XML, but we need to resolve it in case it's
// referencing another resource or a theme value.
ta.bridgeSetValue(index, name,
mRenderResources.resolveValue(null, name, value, isPlatformFile));
ta.bridgeSetValue(index, attrName, frameworkAttr,
mRenderResources.resolveValue(null, attrName, value, isPlatformFile));
}
}
}
@@ -705,23 +723,23 @@ public final class BridgeContext extends Context {
private BridgeTypedArray createStyleBasedTypedArray(StyleResourceValue style, int[] attrs)
throws Resources.NotFoundException {
List<Pair<String, Boolean>> attributes = searchAttrs(attrs);
BridgeTypedArray ta = ((BridgeResources) mSystemResources).newTypeArray(attrs.length,
false, true, null);
false);
// for each attribute, get its name so that we can search it in the style
for (int i = 0 ; i < attrs.length ; i++) {
Pair<ResourceType, String> resolvedResource = Bridge.resolveResourceId(attrs[i]);
if (resolvedResource != null) {
String attrName = resolvedResource.getSecond();
// look for the value in the given style
ResourceValue resValue = mRenderResources.findItemInStyle(style, attrName);
Pair<String, Boolean> attribute = attributes.get(i);
if (resValue != null) {
// resolve it to make sure there are no references left.
ta.bridgeSetValue(i, attrName, mRenderResources.resolveResValue(resValue));
// look for the value in the given style
ResourceValue resValue = mRenderResources.findItemInStyle(style, attribute.getFirst(),
attribute.getSecond());
resValue = mRenderResources.resolveResValue(resValue);
}
if (resValue != null) {
// resolve it to make sure there are no references left.
ta.bridgeSetValue(i, attribute.getFirst(), attribute.getSecond(),
mRenderResources.resolveResValue(resValue));
}
}
@@ -732,91 +750,52 @@ public final class BridgeContext extends Context {
/**
* The input int[] attrs is one of com.android.internal.R.styleable fields where the name
* of the field is the style being referenced and the array contains one index per attribute.
* The input int[] attrs is a list of attributes. The returns a list of information about
* each attributes. The information is (name, isFramework)
* <p/>
* searchAttrs() finds all the names of the attributes referenced so for example if
* attrs == com.android.internal.R.styleable.View, this returns the list of the "xyz" where
* there's a field com.android.internal.R.styleable.View_xyz and the field value is the index
* that is used to reference the attribute later in the TypedArray.
*
* @param attrs An attribute array reference given to obtainStyledAttributes.
* @param outFrameworkFlag out value indicating if the attr array is a framework value
* @param outAttrName out value for the resolved attr name.
* @return A sorted map Attribute-Value to Attribute-Name for all attributes declared by the
* attribute array. Returns null if nothing is found.
* @return List of attribute information.
*/
private TreeMap<Integer,String> searchAttrs(int[] attrs, AtomicBoolean outFrameworkFlag,
AtomicReference<String> outAttrName) {
// get the name of the array from the framework resources
String arrayName = Bridge.resolveResourceId(attrs);
if (arrayName != null) {
// if we found it, get the name of each of the int in the array.
TreeMap<Integer,String> attributes = new TreeMap<Integer, String>();
for (int i = 0 ; i < attrs.length ; i++) {
Pair<ResourceType, String> info = Bridge.resolveResourceId(attrs[i]);
if (info != null) {
attributes.put(i, info.getSecond());
} else {
// FIXME Not sure what we should be doing here...
attributes.put(i, null);
}
private List<Pair<String, Boolean>> searchAttrs(int[] attrs) {
List<Pair<String, Boolean>> results = new ArrayList<Pair<String, Boolean>>(attrs.length);
// for each attribute, get its name so that we can search it in the style
for (int i = 0 ; i < attrs.length ; i++) {
Pair<ResourceType, String> resolvedResource = Bridge.resolveResourceId(attrs[i]);
boolean isFramework = false;
if (resolvedResource != null) {
isFramework = true;
} else {
resolvedResource = mProjectCallback.resolveResourceId(attrs[i]);
}
if (outFrameworkFlag != null) {
outFrameworkFlag.set(true);
if (resolvedResource != null) {
results.add(Pair.of(resolvedResource.getSecond(), isFramework));
} else {
results.add(null);
}
if (outAttrName != null) {
outAttrName.set(arrayName);
}
return attributes;
}
// if the name was not found in the framework resources, look in the project
// resources
arrayName = mProjectCallback.resolveResourceId(attrs);
if (arrayName != null) {
TreeMap<Integer,String> attributes = new TreeMap<Integer, String>();
for (int i = 0 ; i < attrs.length ; i++) {
Pair<ResourceType, String> info = mProjectCallback.resolveResourceId(attrs[i]);
if (info != null) {
attributes.put(i, info.getSecond());
} else {
// FIXME Not sure what we should be doing here...
attributes.put(i, null);
}
}
if (outFrameworkFlag != null) {
outFrameworkFlag.set(false);
}
if (outAttrName != null) {
outAttrName.set(arrayName);
}
return attributes;
}
return null;
return results;
}
/**
* Searches for the attribute referenced by its internal id.
*
* @param attr An attribute reference given to obtainStyledAttributes such as defStyle.
* @return The unique name of the attribute, if found, e.g. "buttonStyle". Returns null
* @return A (name, isFramework) pair describing the attribute if found. Returns null
* if nothing is found.
*/
public String searchAttr(int attr) {
public Pair<String, Boolean> searchAttr(int attr) {
Pair<ResourceType, String> info = Bridge.resolveResourceId(attr);
if (info != null) {
return info.getSecond();
return Pair.of(info.getSecond(), Boolean.TRUE);
}
info = mProjectCallback.resolveResourceId(attr);
if (info != null) {
return info.getSecond();
return Pair.of(info.getSecond(), Boolean.FALSE);
}
return null;
@@ -876,149 +855,149 @@ public final class BridgeContext extends Context {
@Override
public boolean bindService(Intent arg0, ServiceConnection arg1, int arg2) {
// TODO Auto-generated method stub
// pass
return false;
}
@Override
public int checkCallingOrSelfPermission(String arg0) {
// TODO Auto-generated method stub
// pass
return 0;
}
@Override
public int checkCallingOrSelfUriPermission(Uri arg0, int arg1) {
// TODO Auto-generated method stub
// pass
return 0;
}
@Override
public int checkCallingPermission(String arg0) {
// TODO Auto-generated method stub
// pass
return 0;
}
@Override
public int checkCallingUriPermission(Uri arg0, int arg1) {
// TODO Auto-generated method stub
// pass
return 0;
}
@Override
public int checkPermission(String arg0, int arg1, int arg2) {
// TODO Auto-generated method stub
// pass
return 0;
}
@Override
public int checkUriPermission(Uri arg0, int arg1, int arg2, int arg3) {
// TODO Auto-generated method stub
// pass
return 0;
}
@Override
public int checkUriPermission(Uri arg0, String arg1, String arg2, int arg3,
int arg4, int arg5) {
// TODO Auto-generated method stub
// pass
return 0;
}
@Override
public void clearWallpaper() {
// TODO Auto-generated method stub
// pass
}
@Override
public Context createPackageContext(String arg0, int arg1) {
// TODO Auto-generated method stub
// pass
return null;
}
@Override
public String[] databaseList() {
// TODO Auto-generated method stub
// pass
return null;
}
@Override
public boolean deleteDatabase(String arg0) {
// TODO Auto-generated method stub
// pass
return false;
}
@Override
public boolean deleteFile(String arg0) {
// TODO Auto-generated method stub
// pass
return false;
}
@Override
public void enforceCallingOrSelfPermission(String arg0, String arg1) {
// TODO Auto-generated method stub
// pass
}
@Override
public void enforceCallingOrSelfUriPermission(Uri arg0, int arg1,
String arg2) {
// TODO Auto-generated method stub
// pass
}
@Override
public void enforceCallingPermission(String arg0, String arg1) {
// TODO Auto-generated method stub
// pass
}
@Override
public void enforceCallingUriPermission(Uri arg0, int arg1, String arg2) {
// TODO Auto-generated method stub
// pass
}
@Override
public void enforcePermission(String arg0, int arg1, int arg2, String arg3) {
// TODO Auto-generated method stub
// pass
}
@Override
public void enforceUriPermission(Uri arg0, int arg1, int arg2, int arg3,
String arg4) {
// TODO Auto-generated method stub
// pass
}
@Override
public void enforceUriPermission(Uri arg0, String arg1, String arg2,
int arg3, int arg4, int arg5, String arg6) {
// TODO Auto-generated method stub
// pass
}
@Override
public String[] fileList() {
// TODO Auto-generated method stub
// pass
return null;
}
@Override
public AssetManager getAssets() {
// TODO Auto-generated method stub
// pass
return null;
}
@Override
public File getCacheDir() {
// TODO Auto-generated method stub
// pass
return null;
}
@Override
public File getExternalCacheDir() {
// TODO Auto-generated method stub
// pass
return null;
}
@@ -1032,49 +1011,49 @@ public final class BridgeContext extends Context {
@Override
public File getDatabasePath(String arg0) {
// TODO Auto-generated method stub
// pass
return null;
}
@Override
public File getDir(String arg0, int arg1) {
// TODO Auto-generated method stub
// pass
return null;
}
@Override
public File getFileStreamPath(String arg0) {
// TODO Auto-generated method stub
// pass
return null;
}
@Override
public File getFilesDir() {
// TODO Auto-generated method stub
// pass
return null;
}
@Override
public File getExternalFilesDir(String type) {
// TODO Auto-generated method stub
// pass
return null;
}
@Override
public String getPackageCodePath() {
// TODO Auto-generated method stub
// pass
return null;
}
@Override
public PackageManager getPackageManager() {
// TODO Auto-generated method stub
// pass
return null;
}
@Override
public String getPackageName() {
// TODO Auto-generated method stub
// pass
return null;
}
@@ -1085,25 +1064,25 @@ public final class BridgeContext extends Context {
@Override
public String getPackageResourcePath() {
// TODO Auto-generated method stub
// pass
return null;
}
@Override
public File getSharedPrefsFile(String name) {
// TODO Auto-generated method stub
// pass
return null;
}
@Override
public SharedPreferences getSharedPreferences(String arg0, int arg1) {
// TODO Auto-generated method stub
// pass
return null;
}
@Override
public Drawable getWallpaper() {
// TODO Auto-generated method stub
// pass
return null;
}
@@ -1119,81 +1098,81 @@ public final class BridgeContext extends Context {
@Override
public void grantUriPermission(String arg0, Uri arg1, int arg2) {
// TODO Auto-generated method stub
// pass
}
@Override
public FileInputStream openFileInput(String arg0) throws FileNotFoundException {
// TODO Auto-generated method stub
// pass
return null;
}
@Override
public FileOutputStream openFileOutput(String arg0, int arg1) throws FileNotFoundException {
// TODO Auto-generated method stub
// pass
return null;
}
@Override
public SQLiteDatabase openOrCreateDatabase(String arg0, int arg1, CursorFactory arg2) {
// TODO Auto-generated method stub
// pass
return null;
}
@Override
public SQLiteDatabase openOrCreateDatabase(String arg0, int arg1,
CursorFactory arg2, DatabaseErrorHandler arg3) {
// TODO Auto-generated method stub
// pass
return null;
}
@Override
public Drawable peekWallpaper() {
// TODO Auto-generated method stub
// pass
return null;
}
@Override
public Intent registerReceiver(BroadcastReceiver arg0, IntentFilter arg1) {
// TODO Auto-generated method stub
// pass
return null;
}
@Override
public Intent registerReceiver(BroadcastReceiver arg0, IntentFilter arg1,
String arg2, Handler arg3) {
// TODO Auto-generated method stub
// pass
return null;
}
@Override
public void removeStickyBroadcast(Intent arg0) {
// TODO Auto-generated method stub
// pass
}
@Override
public void revokeUriPermission(Uri arg0, int arg1) {
// TODO Auto-generated method stub
// pass
}
@Override
public void sendBroadcast(Intent arg0) {
// TODO Auto-generated method stub
// pass
}
@Override
public void sendBroadcast(Intent arg0, String arg1) {
// TODO Auto-generated method stub
// pass
}
@Override
public void sendOrderedBroadcast(Intent arg0, String arg1) {
// TODO Auto-generated method stub
// pass
}
@@ -1201,13 +1180,13 @@ public final class BridgeContext extends Context {
public void sendOrderedBroadcast(Intent arg0, String arg1,
BroadcastReceiver arg2, Handler arg3, int arg4, String arg5,
Bundle arg6) {
// TODO Auto-generated method stub
// pass
}
@Override
public void sendStickyBroadcast(Intent arg0) {
// TODO Auto-generated method stub
// pass
}
@@ -1215,79 +1194,79 @@ public final class BridgeContext extends Context {
public void sendStickyOrderedBroadcast(Intent intent,
BroadcastReceiver resultReceiver, Handler scheduler, int initialCode, String initialData,
Bundle initialExtras) {
// TODO Auto-generated method stub
// pass
}
@Override
public void setTheme(int arg0) {
// TODO Auto-generated method stub
// pass
}
@Override
public void setWallpaper(Bitmap arg0) throws IOException {
// TODO Auto-generated method stub
// pass
}
@Override
public void setWallpaper(InputStream arg0) throws IOException {
// TODO Auto-generated method stub
// pass
}
@Override
public void startActivity(Intent arg0) {
// TODO Auto-generated method stub
// pass
}
@Override
public void startActivity(Intent arg0, Bundle arg1) {
// TODO Auto-generated method stub
// pass
}
@Override
public void startIntentSender(IntentSender intent,
Intent fillInIntent, int flagsMask, int flagsValues, int extraFlags)
throws IntentSender.SendIntentException {
// TODO Auto-generated method stub
// pass
}
@Override
public void startIntentSender(IntentSender intent,
Intent fillInIntent, int flagsMask, int flagsValues, int extraFlags,
Bundle options) throws IntentSender.SendIntentException {
// TODO Auto-generated method stub
// pass
}
@Override
public boolean startInstrumentation(ComponentName arg0, String arg1,
Bundle arg2) {
// TODO Auto-generated method stub
// pass
return false;
}
@Override
public ComponentName startService(Intent arg0) {
// TODO Auto-generated method stub
// pass
return null;
}
@Override
public boolean stopService(Intent arg0) {
// TODO Auto-generated method stub
// pass
return false;
}
@Override
public void unbindService(ServiceConnection arg0) {
// TODO Auto-generated method stub
// pass
}
@Override
public void unregisterReceiver(BroadcastReceiver arg0) {
// TODO Auto-generated method stub
// pass
}
@@ -1298,13 +1277,13 @@ public final class BridgeContext extends Context {
@Override
public void startActivities(Intent[] arg0) {
// TODO Auto-generated method stub
// pass
}
@Override
public void startActivities(Intent[] arg0, Bundle arg1) {
// TODO Auto-generated method stub
// pass
}