Add SdkManager#reloadSdk().
This commit is contained in:
@@ -101,8 +101,8 @@ public final class SdkManager {
|
|||||||
try {
|
try {
|
||||||
SdkManager manager = new SdkManager(sdkLocation);
|
SdkManager manager = new SdkManager(sdkLocation);
|
||||||
ArrayList<IAndroidTarget> list = new ArrayList<IAndroidTarget>();
|
ArrayList<IAndroidTarget> list = new ArrayList<IAndroidTarget>();
|
||||||
manager.loadPlatforms(list, log);
|
loadPlatforms(sdkLocation, list, log);
|
||||||
manager.loadAddOns(list, log);
|
loadAddOns(sdkLocation, list, log);
|
||||||
|
|
||||||
// sort the targets/add-ons
|
// sort the targets/add-ons
|
||||||
Collections.sort(list);
|
Collections.sort(list);
|
||||||
@@ -184,6 +184,25 @@ public final class SdkManager {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reloads the content of the SDK.
|
||||||
|
* @param log the ISdkLog object receiving warning/error from the parsing.
|
||||||
|
*/
|
||||||
|
public void reloadSdk(ISdkLog log) {
|
||||||
|
// get the current target list.
|
||||||
|
ArrayList<IAndroidTarget> list = new ArrayList<IAndroidTarget>();
|
||||||
|
loadPlatforms(mSdkLocation, list, log);
|
||||||
|
loadAddOns(mSdkLocation, list, log);
|
||||||
|
|
||||||
|
// For now replace the old list with the new one.
|
||||||
|
// In the future we may want to keep the current objects, so that ADT doesn't have to deal
|
||||||
|
// with new IAndroidTarget objects when a target didn't actually change.
|
||||||
|
|
||||||
|
// sort the targets/add-ons
|
||||||
|
Collections.sort(list);
|
||||||
|
setTargets(list.toArray(new IAndroidTarget[list.size()]));
|
||||||
|
}
|
||||||
|
|
||||||
private SdkManager(String sdkLocation) {
|
private SdkManager(String sdkLocation) {
|
||||||
mSdkLocation = sdkLocation;
|
mSdkLocation = sdkLocation;
|
||||||
}
|
}
|
||||||
@@ -194,11 +213,13 @@ public final class SdkManager {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Loads the Platforms from the SDK.
|
* Loads the Platforms from the SDK.
|
||||||
|
* @param location Location of the SDK
|
||||||
* @param list the list to fill with the platforms.
|
* @param list the list to fill with the platforms.
|
||||||
* @param log the ISdkLog object receiving warning/error from the parsing.
|
* @param log the ISdkLog object receiving warning/error from the parsing.
|
||||||
*/
|
*/
|
||||||
private void loadPlatforms(ArrayList<IAndroidTarget> list, ISdkLog log) {
|
private static void loadPlatforms(String location, ArrayList<IAndroidTarget> list,
|
||||||
File platformFolder = new File(mSdkLocation, SdkConstants.FD_PLATFORMS);
|
ISdkLog log) {
|
||||||
|
File platformFolder = new File(location, SdkConstants.FD_PLATFORMS);
|
||||||
if (platformFolder.isDirectory()) {
|
if (platformFolder.isDirectory()) {
|
||||||
File[] platforms = platformFolder.listFiles();
|
File[] platforms = platformFolder.listFiles();
|
||||||
|
|
||||||
@@ -232,7 +253,7 @@ public final class SdkManager {
|
|||||||
* @param platform the location of the platform.
|
* @param platform the location of the platform.
|
||||||
* @param log the ISdkLog object receiving warning/error from the parsing.
|
* @param log the ISdkLog object receiving warning/error from the parsing.
|
||||||
*/
|
*/
|
||||||
private PlatformTarget loadPlatform(File platform, ISdkLog log) {
|
private static PlatformTarget loadPlatform(File platform, ISdkLog log) {
|
||||||
File buildProp = new File(platform, SdkConstants.FN_BUILD_PROP);
|
File buildProp = new File(platform, SdkConstants.FN_BUILD_PROP);
|
||||||
|
|
||||||
if (buildProp.isFile()) {
|
if (buildProp.isFile()) {
|
||||||
@@ -342,11 +363,12 @@ public final class SdkManager {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Loads the Add-on from the SDK.
|
* Loads the Add-on from the SDK.
|
||||||
|
* @param location Location of the SDK
|
||||||
* @param list the list to fill with the add-ons.
|
* @param list the list to fill with the add-ons.
|
||||||
* @param log the ISdkLog object receiving warning/error from the parsing.
|
* @param log the ISdkLog object receiving warning/error from the parsing.
|
||||||
*/
|
*/
|
||||||
private void loadAddOns(ArrayList<IAndroidTarget> list, ISdkLog log) {
|
private static void loadAddOns(String location, ArrayList<IAndroidTarget> list, ISdkLog log) {
|
||||||
File addonFolder = new File(mSdkLocation, SdkConstants.FD_ADDONS);
|
File addonFolder = new File(location, SdkConstants.FD_ADDONS);
|
||||||
if (addonFolder.isDirectory()) {
|
if (addonFolder.isDirectory()) {
|
||||||
File[] addons = addonFolder.listFiles();
|
File[] addons = addonFolder.listFiles();
|
||||||
|
|
||||||
@@ -380,7 +402,8 @@ public final class SdkManager {
|
|||||||
* @param targetList The list of Android target that were already loaded from the SDK.
|
* @param targetList The list of Android target that were already loaded from the SDK.
|
||||||
* @param log the ISdkLog object receiving warning/error from the parsing.
|
* @param log the ISdkLog object receiving warning/error from the parsing.
|
||||||
*/
|
*/
|
||||||
private AddOnTarget loadAddon(File addon, ArrayList<IAndroidTarget> targetList, ISdkLog log) {
|
private static AddOnTarget loadAddon(File addon, ArrayList<IAndroidTarget> targetList,
|
||||||
|
ISdkLog log) {
|
||||||
File addOnManifest = new File(addon, SdkConstants.FN_MANIFEST_INI);
|
File addOnManifest = new File(addon, SdkConstants.FN_MANIFEST_INI);
|
||||||
|
|
||||||
if (addOnManifest.isFile()) {
|
if (addOnManifest.isFile()) {
|
||||||
@@ -539,7 +562,7 @@ public final class SdkManager {
|
|||||||
* @param value the string to convert.
|
* @param value the string to convert.
|
||||||
* @return the int value, or {@link IAndroidTarget#NO_USB_ID} if the convertion failed.
|
* @return the int value, or {@link IAndroidTarget#NO_USB_ID} if the convertion failed.
|
||||||
*/
|
*/
|
||||||
private int convertId(String value) {
|
private static int convertId(String value) {
|
||||||
if (value != null && value.length() > 0) {
|
if (value != null && value.length() > 0) {
|
||||||
if (PATTERN_USB_IDS.matcher(value).matches()) {
|
if (PATTERN_USB_IDS.matcher(value).matches()) {
|
||||||
String v = value.substring(2);
|
String v = value.substring(2);
|
||||||
@@ -555,7 +578,7 @@ public final class SdkManager {
|
|||||||
return IAndroidTarget.NO_USB_ID;
|
return IAndroidTarget.NO_USB_ID;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void displayAddonManifestError(ISdkLog log, String addonName, String valueName) {
|
private static void displayAddonManifestError(ISdkLog log, String addonName, String valueName) {
|
||||||
if (log != null) {
|
if (log != null) {
|
||||||
log.error(null, "Ignoring add-on '%1$s': '%2$s' is missing from %3$s.",
|
log.error(null, "Ignoring add-on '%1$s': '%2$s' is missing from %3$s.",
|
||||||
addonName, valueName, SdkConstants.FN_MANIFEST_INI);
|
addonName, valueName, SdkConstants.FN_MANIFEST_INI);
|
||||||
@@ -568,7 +591,7 @@ public final class SdkManager {
|
|||||||
* <p/>This checks the presence of the following files: android.jar, framework.aidl, aapt(.exe),
|
* <p/>This checks the presence of the following files: android.jar, framework.aidl, aapt(.exe),
|
||||||
* aidl(.exe), dx(.bat), and dx.jar
|
* aidl(.exe), dx(.bat), and dx.jar
|
||||||
*/
|
*/
|
||||||
private boolean checkPlatformContent(File platform, ISdkLog log) {
|
private static boolean checkPlatformContent(File platform, ISdkLog log) {
|
||||||
for (String relativePath : sPlatformContentList) {
|
for (String relativePath : sPlatformContentList) {
|
||||||
File f = new File(platform, relativePath);
|
File f = new File(platform, relativePath);
|
||||||
if (f.exists() == false) {
|
if (f.exists() == false) {
|
||||||
@@ -645,7 +668,7 @@ public final class SdkManager {
|
|||||||
* Parses the skin folder and builds the skin list.
|
* Parses the skin folder and builds the skin list.
|
||||||
* @param osPath The path of the skin root folder.
|
* @param osPath The path of the skin root folder.
|
||||||
*/
|
*/
|
||||||
private String[] parseSkinFolder(String osPath) {
|
private static String[] parseSkinFolder(String osPath) {
|
||||||
File skinRootFolder = new File(osPath);
|
File skinRootFolder = new File(osPath);
|
||||||
|
|
||||||
if (skinRootFolder.isDirectory()) {
|
if (skinRootFolder.isDirectory()) {
|
||||||
|
|||||||
Reference in New Issue
Block a user