diff options
author | Xavier Ducrohet <xav@android.com> | 2010-02-18 16:30:41 -0800 |
---|---|---|
committer | Xavier Ducrohet <xav@android.com> | 2010-02-18 17:36:51 -0800 |
commit | e87bc60813f90110c1156b086138e5e856c93809 (patch) | |
tree | 96d6b8cf99219a19877052679eea8bb640628315 /sdkmanager/libs/sdklib/src | |
parent | 15f6b7be14c56571f8296c360d0f2fdfc41553c3 (diff) | |
download | sdk-e87bc60813f90110c1156b086138e5e856c93809.zip sdk-e87bc60813f90110c1156b086138e5e856c93809.tar.gz sdk-e87bc60813f90110c1156b086138e5e856c93809.tar.bz2 |
Clean up for how the ADT plug-in keeps track of project and their targets.
For some the (IProject, IAndroidTarget) map was only filled when a project
was created or had its target changed. Other projects that were just opened
in the workspace wouldn't be put in the map, making each call to Sdk.getTarget()
read the default.properties.
This commit adds a new class ProjectState to centralize the state of a project
including target info, apk settings and soon libraries.
The project state are stored statically in Sdk so that they survive Sdk reload.
I'm cleaning up the API of Sdk also to make it let complex and weird.
Change-Id: I1324c622a646486a474ce26b2172385f00091b3f
Diffstat (limited to 'sdkmanager/libs/sdklib/src')
3 files changed, 16 insertions, 12 deletions
diff --git a/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/project/ApkSettings.java b/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/project/ApkSettings.java index c96e223..ff9028a 100644 --- a/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/project/ApkSettings.java +++ b/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/project/ApkSettings.java @@ -55,4 +55,18 @@ public class ApkSettings { public void setSplitByDensity(boolean split) { mSplitByDpi = split; } + + @Override + public boolean equals(Object obj) { + if (obj instanceof ApkSettings) { + return mSplitByDpi == ((ApkSettings) obj).mSplitByDpi; + } + + return false; + } + + @Override + public int hashCode() { + return Boolean.valueOf(mSplitByDpi).hashCode(); + } } diff --git a/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/project/ProjectCreator.java b/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/project/ProjectCreator.java index 97f84bb..9fe5bba 100644 --- a/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/project/ProjectCreator.java +++ b/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/project/ProjectCreator.java @@ -214,7 +214,7 @@ public class ProjectCreator { // target goes in default properties ProjectProperties defaultProperties = ProjectProperties.create(folderPath, PropertyType.DEFAULT); - defaultProperties.setAndroidTarget(target); + defaultProperties.setProperty(ProjectProperties.PROPERTY_TARGET, target.hashString()); if (library) { defaultProperties.setProperty(ProjectProperties.PROPERTY_LIBRARY, "true"); } @@ -453,7 +453,7 @@ public class ProjectCreator { } // set or replace the target - props.setAndroidTarget(target); + props.setProperty(ProjectProperties.PROPERTY_TARGET, target.hashString()); saveDefaultProps = true; } diff --git a/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/project/ProjectProperties.java b/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/project/ProjectProperties.java index e61a607..f6abdd7 100644 --- a/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/project/ProjectProperties.java +++ b/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/project/ProjectProperties.java @@ -16,7 +16,6 @@ package com.android.sdklib.internal.project; -import com.android.sdklib.IAndroidTarget; import com.android.sdklib.SdkConstants; import com.android.sdklib.SdkManager; @@ -211,15 +210,6 @@ public final class ProjectProperties { } /** - * Sets the target property to the given {@link IAndroidTarget} object. - * @param target the Android target. - */ - public void setAndroidTarget(IAndroidTarget target) { - assert mType == PropertyType.DEFAULT; - mProperties.put(PROPERTY_TARGET, target.hashString()); - } - - /** * Returns the value of a property. * @param name the name of the property. * @return the property value or null if the property is not set. |