diff options
author | The Android Open Source Project <initial-contribution@android.com> | 2009-02-20 07:38:28 -0800 |
---|---|---|
committer | The Android Open Source Project <initial-contribution@android.com> | 2009-02-20 07:38:28 -0800 |
commit | 76bc028c745906e691284c685e34e72b5ccf06b5 (patch) | |
tree | c6a908295dcbece6bb31f644b3d4698f04abee20 /eclipse/plugins | |
parent | 4fd2474506c1ea3cb96e128d72db2a18ec1e258d (diff) | |
download | sdk-76bc028c745906e691284c685e34e72b5ccf06b5.zip sdk-76bc028c745906e691284c685e34e72b5ccf06b5.tar.gz sdk-76bc028c745906e691284c685e34e72b5ccf06b5.tar.bz2 |
auto import from //branches/cupcake/...@132569
Diffstat (limited to 'eclipse/plugins')
3 files changed, 16 insertions, 58 deletions
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/plugin.xml b/eclipse/plugins/com.android.ide.eclipse.adt/plugin.xml index ade4646..f7c366d 100644 --- a/eclipse/plugins/com.android.ide.eclipse.adt/plugin.xml +++ b/eclipse/plugins/com.android.ide.eclipse.adt/plugin.xml @@ -290,7 +290,7 @@ <perspectiveExtension targetID="org.eclipse.jdt.ui.JavaPerspective"> <newWizardShortcut id="com.android.ide.eclipse.adt.project.NewProjectWizard" /> <newWizardShortcut - id="com.android.ide.eclipse.adt.wizards.NewXmlFileWizard"> + id="com.android.ide.eclipse.editors.wizards.NewXmlFileWizard"> </newWizardShortcut> </perspectiveExtension> <perspectiveExtension targetID="org.eclipse.debug.ui.DebugPerspective"> diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/build/ApkBuilder.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/build/ApkBuilder.java index c359905..96068c2 100644 --- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/build/ApkBuilder.java +++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/build/ApkBuilder.java @@ -284,7 +284,7 @@ public class ApkBuilder extends BaseBuilder { // get the extra configs for the project. This will give us a list of custom apk // to build based on a restricted set of resources. - Map<String, String> configs = Sdk.getCurrent().getProjectConfigs(project); + Map<String, String> configs = Sdk.getCurrent().getProjectApkConfigs(project); // also check the final file(s)! String finalPackageName = getFileName(project, null /*config*/); diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/sdk/Sdk.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/sdk/Sdk.java index 5bfa8a2..c7773cc 100644 --- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/sdk/Sdk.java +++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/sdk/Sdk.java @@ -26,6 +26,7 @@ import com.android.sdklib.ISdkLog; import com.android.sdklib.SdkConstants; import com.android.sdklib.SdkManager; import com.android.sdklib.avd.AvdManager; +import com.android.sdklib.project.ApkConfigurationHelper; import com.android.sdklib.project.ProjectProperties; import com.android.sdklib.project.ProjectProperties.PropertyType; @@ -43,8 +44,6 @@ import java.net.URL; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; -import java.util.Set; -import java.util.Map.Entry; /** * Central point to load, manipulate and deal with the Android SDK. Only one SDK can be used @@ -65,7 +64,7 @@ public class Sdk implements IProjectListener { new HashMap<IProject, IAndroidTarget>(); private final HashMap<IAndroidTarget, AndroidTargetData> mTargetDataMap = new HashMap<IAndroidTarget, AndroidTargetData>(); - private final HashMap<IProject, Map<String, String>> mProjectConfigMap = + private final HashMap<IProject, Map<String, String>> mProjectApkConfigMap = new HashMap<IProject, Map<String, String>>(); private final String mDocBaseUrl; @@ -214,10 +213,10 @@ public class Sdk implements IProjectListener { * the root folder of the project. * <p/>The returned string is equivalent to the return of {@link IAndroidTarget#hashString()}. * @param project The project for which to return the target hash string. - * @param storeConfigs Whether the read configuration should be stored in the map. + * @param sdkStorage The sdk in which to store the Apk Configs. Can be null. * @return the hash string or null if the project does not have a target set. */ - private static String loadProjectProperties(IProject project, Sdk storeConfigs) { + private static String loadProjectProperties(IProject project, Sdk sdkStorage) { // load the default.properties from the project folder. ProjectProperties properties = ProjectProperties.load(project.getLocation().toOSString(), PropertyType.DEFAULT); @@ -227,25 +226,11 @@ public class Sdk implements IProjectListener { return null; } - if (storeConfigs != null) { - // get the list of configs. - String configList = properties.getProperty(ProjectProperties.PROPERTY_CONFIGS); - - // this is a comma separated list - String[] configs = configList.split(","); //$NON-NLS-1$ - - // read the value of each config and store it in a map - HashMap<String, String> configMap = new HashMap<String, String>(); - - for (String config : configs) { - String configValue = properties.getProperty(config); - if (configValue != null) { - configMap.put(config, configValue); - } - } + if (sdkStorage != null) { + Map<String, String> configMap = ApkConfigurationHelper.getConfigs(properties); if (configMap.size() > 0) { - storeConfigs.mProjectConfigMap.put(project, configMap); + sdkStorage.mProjectApkConfigMap.put(project, configMap); } } @@ -307,14 +292,14 @@ public class Sdk implements IProjectListener { * <p/>The Map key are name to be used in the apk filename, while the values are comma separated * config values. The config value can be passed directly to aapt through the -c option. */ - public Map<String, String> getProjectConfigs(IProject project) { - return mProjectConfigMap.get(project); + public Map<String, String> getProjectApkConfigs(IProject project) { + return mProjectApkConfigMap.get(project); } - public void setProjectConfigs(IProject project, Map<String, String> configMap) + public void setProjectApkConfigs(IProject project, Map<String, String> configMap) throws CoreException { // first set the new map - mProjectConfigMap.put(project, configMap); + mProjectApkConfigMap.put(project, configMap); // Now we write this in default.properties. // Because we don't want to erase other properties from default.properties, we first load @@ -327,35 +312,8 @@ public class Sdk implements IProjectListener { PropertyType.DEFAULT); } - // load the current configs, in order to remove the value properties for each of them - // in case a config was removed. - - // get the list of configs. - String configList = properties.getProperty(ProjectProperties.PROPERTY_CONFIGS); - - // this is a comma separated list - String[] configs = configList.split(","); //$NON-NLS-1$ - - boolean hasRemovedConfig = false; - - for (String config : configs) { - if (configMap.containsKey(config) == false) { - hasRemovedConfig = true; - properties.removeProperty(config); - } - } - - // now add the properties. - Set<Entry<String, String>> entrySet = configMap.entrySet(); - StringBuilder sb = new StringBuilder(); - for (Entry<String, String> entry : entrySet) { - if (sb.length() > 0) { - sb.append(","); - } - sb.append(entry.getKey()); - properties.setProperty(entry.getKey(), entry.getValue()); - } - properties.setProperty(ProjectProperties.PROPERTY_CONFIGS, sb.toString()); + // sets the configs in the property file. + boolean hasRemovedConfig = ApkConfigurationHelper.setConfigs(properties, configMap); // and rewrite the file. try { @@ -445,7 +403,7 @@ public class Sdk implements IProjectListener { public void projectClosed(IProject project) { mProjectTargetMap.remove(project); - mProjectConfigMap.remove(project); + mProjectApkConfigMap.remove(project); } public void projectDeleted(IProject project) { |