ADT #1825491: Provide default choices for <uses-library>

We currently hardcode a list in the PlatformTarget and propagate
it to the UI via the AndroidTargetParser. This way we can later
decide to actually get the info from some kind of manifest.
This commit is contained in:
Raphael
2009-05-04 15:37:40 -07:00
parent 70c31eae8c
commit 816ba073c6
6 changed files with 60 additions and 22 deletions

View File

@@ -29,6 +29,7 @@ import com.android.layoutlib.api.ILayoutBridge;
import com.android.sdklib.IAndroidTarget;
import com.android.sdklib.IAndroidTarget.IOptionalLibrary;
import java.util.ArrayList;
import java.util.Hashtable;
import java.util.Map;
@@ -97,6 +98,7 @@ public class AndroidTargetData {
/**
* Creates an AndroidTargetData object.
* @param platformLibraries
* @param optionalLibraries
*/
void setExtraData(IResourceRepository systemResourceRepository,
@@ -110,6 +112,7 @@ public class AndroidTargetData {
String[] broadcastIntentActionValues,
String[] serviceIntentActionValues,
String[] intentCategoryValues,
String[] platformLibraries,
IOptionalLibrary[] optionalLibraries,
ProjectResources resources,
LayoutBridge layoutBridge) {
@@ -126,7 +129,7 @@ public class AndroidTargetData {
setPermissions(permissionValues);
setIntentFilterActionsAndCategories(activityIntentActionValues, broadcastIntentActionValues,
serviceIntentActionValues, intentCategoryValues);
setOptionalLibraries(optionalLibraries);
setOptionalLibraries(platformLibraries, optionalLibraries);
}
public DexWrapper getDexWrapper() {
@@ -276,35 +279,40 @@ public class AndroidTargetData {
* @param permissionValues the list of permissions
*/
private void setPermissions(String[] permissionValues) {
setValues("(uses-permission,android:name)", permissionValues); //$NON-NLS-1$
setValues("(uses-permission,android:name)", permissionValues); //$NON-NLS-1$
setValues("(application,android:permission)", permissionValues); //$NON-NLS-1$
setValues("(activity,android:permission)", permissionValues); //$NON-NLS-1$
setValues("(receiver,android:permission)", permissionValues); //$NON-NLS-1$
setValues("(service,android:permission)", permissionValues); //$NON-NLS-1$
setValues("(provider,android:permission)", permissionValues); //$NON-NLS-1$
setValues("(activity,android:permission)", permissionValues); //$NON-NLS-1$
setValues("(receiver,android:permission)", permissionValues); //$NON-NLS-1$
setValues("(service,android:permission)", permissionValues); //$NON-NLS-1$
setValues("(provider,android:permission)", permissionValues); //$NON-NLS-1$
}
private void setIntentFilterActionsAndCategories(String[] activityIntentActions,
String[] broadcastIntentActions, String[] serviceIntentActions,
String[] intentCategoryValues) {
setValues("(activity,action,android:name)", activityIntentActions); //$NON-NLS-1$
setValues("(activity,action,android:name)", activityIntentActions); //$NON-NLS-1$
setValues("(receiver,action,android:name)", broadcastIntentActions); //$NON-NLS-1$
setValues("(service,action,android:name)", serviceIntentActions); //$NON-NLS-1$
setValues("(category,android:name)", intentCategoryValues); //$NON-NLS-1$
setValues("(service,action,android:name)", serviceIntentActions); //$NON-NLS-1$
setValues("(category,android:name)", intentCategoryValues); //$NON-NLS-1$
}
private void setOptionalLibraries(IOptionalLibrary[] optionalLibraries) {
String[] values;
private void setOptionalLibraries(String[] platformLibraries,
IOptionalLibrary[] optionalLibraries) {
if (optionalLibraries == null) {
values = new String[0];
} else {
values = new String[optionalLibraries.length];
for (int i = 0; i < optionalLibraries.length; i++) {
values[i] = optionalLibraries[i].getName();
ArrayList<String> libs = new ArrayList<String>();
if (platformLibraries != null) {
for (String name : platformLibraries) {
libs.add(name);
}
}
setValues("(uses-library,android:name)", values);
if (optionalLibraries != null) {
for (int i = 0; i < optionalLibraries.length; i++) {
libs.add(optionalLibraries[i].getName());
}
}
setValues("(uses-library,android:name)", libs.toArray(new String[libs.size()]));
}
/**

View File

@@ -267,6 +267,7 @@ public final class AndroidTargetParser {
broadcast_actions.toArray(new String[broadcast_actions.size()]),
service_actions.toArray(new String[service_actions.size()]),
categories.toArray(new String[categories.size()]),
mAndroidTarget.getPlatformLibraries(),
mAndroidTarget.getOptionalLibraries(),
resources,
layoutBridge);