Add support for preview versions of platforms.

ro.build.version.codename is a new property indicating whether a platform
is in its release form (value = REL) or in development (value = dev branch
name such as Donut). When the codename indicates a development/preview version
then the API level must be ignored and this codename is used as a unique
identifier of the platform.

IAndroidTarget has been changed to return an instance of a new class
AndroidVersion instead of the api level directly. This class helps deals with
the logic of comparing version from targets or devices.

This change impacts all of the sdk manager to deal with targets identified by
codename instead of api level. This in turn impacts everything that relies
on the sdkmanager: ADT (build, launch, project creation), the AVD manager,
the SDK updater.
This commit is contained in:
Xavier Ducrohet
2009-07-20 14:43:50 -07:00
parent 89f0e50a4c
commit f2869cf9a9
28 changed files with 826 additions and 530 deletions

View File

@@ -273,14 +273,14 @@ final class AvdCreationDialog extends Dialog {
for (IAndroidTarget target : sdkManager.getTargets()) {
String name;
if (target.isPlatform()) {
name = String.format("%s - API Level %d",
name = String.format("%s - API Level %s",
target.getName(),
target.getApiVersionNumber());
target.getVersion().getApiString());
} else {
name = String.format("%s (%s) - API Level %d",
name = String.format("%s (%s) - API Level %s",
target.getName(),
target.getVendor(),
target.getApiVersionNumber());
target.getVersion().getApiString());
}
mCurrentTargets.put(name, target);
mTargetCombo.add(name);

View File

@@ -16,6 +16,7 @@
package com.android.sdkuilib.internal.widgets;
import com.android.sdklib.AndroidVersion;
import com.android.sdklib.IAndroidTarget;
import com.android.sdklib.internal.avd.AvdManager;
import com.android.sdklib.internal.avd.AvdManager.AvdInfo;
@@ -106,8 +107,9 @@ final class AvdDetailsDialog extends Dialog {
displayValue(c, "Error:", mAvdInfo.getErrorMessage());
} else {
IAndroidTarget target = mAvdInfo.getTarget();
displayValue(c, "Target:", String.format("%s (API level %d)",
target.getName(), target.getApiVersionNumber()));
AndroidVersion version = target.getVersion();
displayValue(c, "Target:", String.format("%s (API level %s)",
target.getName(), version.getApiString()));
// display some extra values.
Map<String, String> properties = mAvdInfo.getProperties();

View File

@@ -723,8 +723,8 @@ public final class AvdSelector {
IAndroidTarget target = avd.getTarget();
if (target != null) {
item.setText(1, target.getFullName());
item.setText(2, target.getApiVersionName());
item.setText(3, Integer.toString(target.getApiVersionNumber()));
item.setText(2, target.getVersionName());
item.setText(3, target.getVersion().getApiString());
} else {
item.setText(1, "?");
item.setText(2, "?");

View File

@@ -323,8 +323,8 @@ public class SdkTargetSelector {
item.setData(target);
item.setText(0, target.getName());
item.setText(1, target.getVendor());
item.setText(2, target.getApiVersionName());
item.setText(3, Integer.toString(target.getApiVersionNumber()));
item.setText(2, target.getVersionName());
item.setText(3, target.getVersion().getApiString());
}
} else {
table.setEnabled(false);