diff options
author | Raphael Moll <ralf@android.com> | 2012-04-19 16:27:03 -0700 |
---|---|---|
committer | Raphael Moll <ralf@android.com> | 2012-04-30 11:21:07 -0700 |
commit | 0c6def5d3f0d611bca7dbb7c2b773cd1664ec390 (patch) | |
tree | 742e2ce1c1f4d56fd3ed34ba6d139fb47a6f73eb /sdkmanager/libs/sdkuilib | |
parent | a47d76dafda4877fec75bd78998474b8b4c63310 (diff) | |
download | sdk-0c6def5d3f0d611bca7dbb7c2b773cd1664ec390.zip sdk-0c6def5d3f0d611bca7dbb7c2b773cd1664ec390.tar.gz sdk-0c6def5d3f0d611bca7dbb7c2b773cd1664ec390.tar.bz2 |
SDK Tools pkg support for major.minor.micro revisions.
For tools and platform-tools, we'll support a revision
in the form "major.minor.micro rc#". The fourth one
is a preview/release candidate number.
This allows us to have revisions 18, 18.1, 18.0.1 and
18 rc1, etc.
Change-Id: I8a41491d4cd8798f1b71ed7f3484d9293fee81bc
Diffstat (limited to 'sdkmanager/libs/sdkuilib')
6 files changed, 47 insertions, 38 deletions
diff --git a/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/SdkUpdaterChooserDialog.java b/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/SdkUpdaterChooserDialog.java index b5ab90b..55e7db2 100755 --- a/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/SdkUpdaterChooserDialog.java +++ b/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/SdkUpdaterChooserDialog.java @@ -19,7 +19,7 @@ package com.android.sdkuilib.internal.repository; import com.android.sdklib.AndroidVersion;
import com.android.sdklib.SdkConstants;
import com.android.sdklib.internal.repository.archives.Archive;
-import com.android.sdklib.internal.repository.packages.IPackageVersion;
+import com.android.sdklib.internal.repository.packages.IAndroidVersionProvider;
import com.android.sdklib.internal.repository.packages.Package;
import com.android.sdklib.internal.repository.sources.SdkSource;
import com.android.sdkuilib.internal.repository.icons.ImageFactory;
@@ -428,9 +428,10 @@ final class SdkUpdaterChooserDialog extends GridDialog { boolean showRev = true;
- if (pNew instanceof IPackageVersion && pOld instanceof IPackageVersion) {
- AndroidVersion vOld = ((IPackageVersion) pOld).getVersion();
- AndroidVersion vNew = ((IPackageVersion) pNew).getVersion();
+ if (pNew instanceof IAndroidVersionProvider &&
+ pOld instanceof IAndroidVersionProvider) {
+ AndroidVersion vOld = ((IAndroidVersionProvider) pOld).getAndroidVersion();
+ AndroidVersion vNew = ((IAndroidVersionProvider) pNew).getAndroidVersion();
if (!vOld.equals(vNew)) {
// Versions are different, so indicate more than just the revision.
diff --git a/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/SdkUpdaterLogic.java b/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/SdkUpdaterLogic.java index 0b9f396..97de564 100755 --- a/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/SdkUpdaterLogic.java +++ b/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/SdkUpdaterLogic.java @@ -27,16 +27,16 @@ import com.android.sdklib.internal.repository.packages.IExactApiLevelDependency; import com.android.sdklib.internal.repository.packages.IMinApiLevelDependency;
import com.android.sdklib.internal.repository.packages.IMinPlatformToolsDependency;
import com.android.sdklib.internal.repository.packages.IMinToolsDependency;
-import com.android.sdklib.internal.repository.packages.IPackageVersion;
import com.android.sdklib.internal.repository.packages.IPlatformDependency;
+import com.android.sdklib.internal.repository.packages.IAndroidVersionProvider;
import com.android.sdklib.internal.repository.packages.MinToolsPackage;
import com.android.sdklib.internal.repository.packages.Package;
+import com.android.sdklib.internal.repository.packages.Package.UpdateInfo;
import com.android.sdklib.internal.repository.packages.PlatformPackage;
import com.android.sdklib.internal.repository.packages.PlatformToolPackage;
import com.android.sdklib.internal.repository.packages.SamplePackage;
import com.android.sdklib.internal.repository.packages.SystemImagePackage;
import com.android.sdklib.internal.repository.packages.ToolPackage;
-import com.android.sdklib.internal.repository.packages.Package.UpdateInfo;
import com.android.sdklib.internal.repository.sources.SdkSource;
import com.android.sdklib.internal.repository.sources.SdkSources;
@@ -223,8 +223,8 @@ class SdkUpdaterLogic { int rev = p.getRevision();
int api = 0;
boolean isPreview = false;
- if (p instanceof IPackageVersion) {
- AndroidVersion vers = ((IPackageVersion) p).getVersion();
+ if (p instanceof IAndroidVersionProvider) {
+ AndroidVersion vers = ((IAndroidVersionProvider) p).getAndroidVersion();
api = vers.getApiLevel();
isPreview = vers.isPreview();
}
@@ -264,8 +264,8 @@ class SdkUpdaterLogic { int rev = p.getRevision();
int api = 0;
boolean isPreview = false;
- if (p instanceof IPackageVersion) {
- AndroidVersion vers = ((IPackageVersion) p).getVersion();
+ if (p instanceof IAndroidVersionProvider) {
+ AndroidVersion vers = ((IAndroidVersionProvider) p).getAndroidVersion();
api = vers.getApiLevel();
isPreview = vers.isPreview();
}
@@ -318,7 +318,7 @@ class SdkUpdaterLogic { continue;
}
SystemImagePackage sip = (SystemImagePackage) p2;
- if (sip.getVersion().equals(pp.getVersion())) {
+ if (sip.getAndroidVersion().equals(pp.getAndroidVersion())) {
for (Archive a : sip.getArchives()) {
if (a.isCompatible()) {
insertArchive(a,
@@ -912,7 +912,7 @@ class SdkUpdaterLogic { SdkSource[] remoteSources,
ArchiveInfo[] localArchives) {
// This is the requirement to match.
- AndroidVersion v = pkg.getVersion();
+ AndroidVersion v = pkg.getAndroidVersion();
// Find a platform that would satisfy the requirement.
@@ -922,7 +922,7 @@ class SdkUpdaterLogic { if (a != null) {
Package p = a.getParentPackage();
if (p instanceof PlatformPackage) {
- if (v.equals(((PlatformPackage) p).getVersion())) {
+ if (v.equals(((PlatformPackage) p).getAndroidVersion())) {
// We found one already installed.
return null;
}
@@ -936,7 +936,7 @@ class SdkUpdaterLogic { if (a != null) {
Package p = a.getParentPackage();
if (p instanceof PlatformPackage) {
- if (v.equals(((PlatformPackage) p).getVersion())) {
+ if (v.equals(((PlatformPackage) p).getAndroidVersion())) {
// The dependency is already scheduled for install, nothing else to do.
return ai;
}
@@ -949,7 +949,7 @@ class SdkUpdaterLogic { for (Archive a : selectedArchives) {
Package p = a.getParentPackage();
if (p instanceof PlatformPackage) {
- if (v.equals(((PlatformPackage) p).getVersion())) {
+ if (v.equals(((PlatformPackage) p).getAndroidVersion())) {
// It's not already in the list of things to install, so add it now
return insertArchive(a,
outArchives,
@@ -967,7 +967,7 @@ class SdkUpdaterLogic { fetchRemotePackages(remotePkgs, remoteSources);
for (Package p : remotePkgs) {
if (p instanceof PlatformPackage) {
- if (v.equals(((PlatformPackage) p).getVersion())) {
+ if (v.equals(((PlatformPackage) p).getAndroidVersion())) {
// It's not already in the list of things to install, so add the
// first compatible archive we can find.
for (Archive a : p.getArchives()) {
@@ -988,7 +988,7 @@ class SdkUpdaterLogic { // We end up here if nothing matches. We don't have a good platform to match.
// We need to indicate this addon depends on a missing platform archive
// so that it can be impossible to install later on.
- return new MissingPlatformArchiveInfo(pkg.getVersion());
+ return new MissingPlatformArchiveInfo(pkg.getAndroidVersion());
}
/**
@@ -1025,7 +1025,7 @@ class SdkUpdaterLogic { if (a != null) {
Package p = a.getParentPackage();
if (p instanceof PlatformPackage) {
- if (((PlatformPackage) p).getVersion().isGreaterOrEqualThan(api)) {
+ if (((PlatformPackage) p).getAndroidVersion().isGreaterOrEqualThan(api)) {
// We found one already installed.
return null;
}
@@ -1042,7 +1042,7 @@ class SdkUpdaterLogic { if (a != null) {
Package p = a.getParentPackage();
if (p instanceof PlatformPackage) {
- if (((PlatformPackage) p).getVersion().isGreaterOrEqualThan(api)) {
+ if (((PlatformPackage) p).getAndroidVersion().isGreaterOrEqualThan(api)) {
if (api > foundApi) {
foundApi = api;
foundAi = ai;
@@ -1065,7 +1065,7 @@ class SdkUpdaterLogic { for (Archive a : selectedArchives) {
Package p = a.getParentPackage();
if (p instanceof PlatformPackage) {
- if (((PlatformPackage) p).getVersion().isGreaterOrEqualThan(api)) {
+ if (((PlatformPackage) p).getAndroidVersion().isGreaterOrEqualThan(api)) {
if (api > foundApi) {
foundApi = api;
foundArchive = a;
@@ -1079,7 +1079,7 @@ class SdkUpdaterLogic { fetchRemotePackages(remotePkgs, remoteSources);
for (Package p : remotePkgs) {
if (p instanceof PlatformPackage) {
- if (((PlatformPackage) p).getVersion().isGreaterOrEqualThan(api)) {
+ if (((PlatformPackage) p).getAndroidVersion().isGreaterOrEqualThan(api)) {
if (api > foundApi) {
// It's not already in the list of things to install, so add the
// first compatible archive we can find.
@@ -1140,7 +1140,7 @@ class SdkUpdaterLogic { if (a != null) {
Package p = a.getParentPackage();
if (p instanceof PlatformPackage) {
- if (((PlatformPackage) p).getVersion().equals(api)) {
+ if (((PlatformPackage) p).getAndroidVersion().equals(api)) {
// We found one already installed.
return null;
}
@@ -1155,7 +1155,7 @@ class SdkUpdaterLogic { if (a != null) {
Package p = a.getParentPackage();
if (p instanceof PlatformPackage) {
- if (((PlatformPackage) p).getVersion().equals(api)) {
+ if (((PlatformPackage) p).getAndroidVersion().equals(api)) {
return ai;
}
}
@@ -1167,7 +1167,7 @@ class SdkUpdaterLogic { for (Archive a : selectedArchives) {
Package p = a.getParentPackage();
if (p instanceof PlatformPackage) {
- if (((PlatformPackage) p).getVersion().equals(api)) {
+ if (((PlatformPackage) p).getAndroidVersion().equals(api)) {
// It's not already in the list of things to install, so add it now
return insertArchive(a,
outArchives,
@@ -1185,7 +1185,7 @@ class SdkUpdaterLogic { fetchRemotePackages(remotePkgs, remoteSources);
for (Package p : remotePkgs) {
if (p instanceof PlatformPackage) {
- if (((PlatformPackage) p).getVersion().equals(api)) {
+ if (((PlatformPackage) p).getAndroidVersion().equals(api)) {
// It's not already in the list of things to install, so add the
// first compatible archive we can find.
for (Archive a : p.getArchives()) {
diff --git a/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/sdkman2/AdtUpdateDialog.java b/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/sdkman2/AdtUpdateDialog.java index d619ea0..f481b0a 100755 --- a/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/sdkman2/AdtUpdateDialog.java +++ b/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/sdkman2/AdtUpdateDialog.java @@ -346,7 +346,7 @@ public class AdtUpdateDialog extends SwtBaseDialog { boolean accept(Package pkg) {
if (pkg instanceof PlatformPackage) {
PlatformPackage pp = (PlatformPackage) pkg;
- AndroidVersion v = pp.getVersion();
+ AndroidVersion v = pp.getAndroidVersion();
return !v.isPreview() && v.getApiLevel() == mApiLevel;
}
return false;
@@ -359,7 +359,7 @@ public class AdtUpdateDialog extends SwtBaseDialog { pkg instanceof PlatformPackage &&
!pkg.isLocal()) {
PlatformPackage pp = (PlatformPackage) pkg;
- AndroidVersion v = pp.getVersion();
+ AndroidVersion v = pp.getAndroidVersion();
if (!v.isPreview()) {
int api = v.getApiLevel();
if (api > mApiLevel) {
@@ -388,7 +388,7 @@ public class AdtUpdateDialog extends SwtBaseDialog { if (!pkg.isLocal()) {
if (pkg instanceof PlatformPackage) {
PlatformPackage pp = (PlatformPackage) pkg;
- AndroidVersion v = pp.getVersion();
+ AndroidVersion v = pp.getAndroidVersion();
if (!v.isPreview()) {
int level = v.getApiLevel();
if ((mFindMaxApi && level == mMaxApiLevel) ||
@@ -418,7 +418,7 @@ public class AdtUpdateDialog extends SwtBaseDialog { pkg instanceof PlatformPackage &&
!pkg.isLocal()) {
PlatformPackage pp = (PlatformPackage) pkg;
- AndroidVersion v = pp.getVersion();
+ AndroidVersion v = pp.getAndroidVersion();
if (!v.isPreview()) {
int api = v.getApiLevel();
if (api > mMaxApiLevel) {
diff --git a/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/sdkman2/PackagesDiffLogic.java b/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/sdkman2/PackagesDiffLogic.java index 46b5697..687238b 100755 --- a/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/sdkman2/PackagesDiffLogic.java +++ b/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/sdkman2/PackagesDiffLogic.java @@ -20,7 +20,7 @@ import com.android.sdklib.AndroidVersion; import com.android.sdklib.IAndroidTarget; import com.android.sdklib.SdkConstants; import com.android.sdklib.internal.repository.packages.ExtraPackage; -import com.android.sdklib.internal.repository.packages.IPackageVersion; +import com.android.sdklib.internal.repository.packages.IAndroidVersionProvider; import com.android.sdklib.internal.repository.packages.Package; import com.android.sdklib.internal.repository.packages.PlatformPackage; import com.android.sdklib.internal.repository.packages.PlatformToolPackage; @@ -107,8 +107,8 @@ class PackagesDiffLogic { // since by definition they should target the same API level. int api = 0; Package p = item.getMainPackage(); - if (p instanceof IPackageVersion) { - api = ((IPackageVersion) p).getVersion().getApiLevel(); + if (p instanceof IAndroidVersionProvider) { + api = ((IAndroidVersionProvider) p).getAndroidVersion().getApiLevel(); } if (selectTop && api > 0) { @@ -607,8 +607,8 @@ class PackagesDiffLogic { public Object getCategoryKey(Package pkg) { // Sort by API - if (pkg instanceof IPackageVersion) { - return ((IPackageVersion) pkg).getVersion(); + if (pkg instanceof IAndroidVersionProvider) { + return ((IAndroidVersionProvider) pkg).getAndroidVersion(); } else if (pkg instanceof ToolPackage || pkg instanceof PlatformToolPackage) { return PkgCategoryApi.KEY_TOOLS; diff --git a/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/sdkman2/PackagesPage.java b/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/sdkman2/PackagesPage.java index 4ef7d6b..ea02e3a 100755 --- a/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/sdkman2/PackagesPage.java +++ b/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/sdkman2/PackagesPage.java @@ -1313,7 +1313,7 @@ public class PackagesPage extends UpdaterPage implements ISdkChangeListener { } else if (mColumn == mColumnRevision) { if (element instanceof PkgItem) { PkgItem pkg = (PkgItem) element; - return Integer.toString(pkg.getRevision()); + return pkg.getRevisionStr(); } } else if (mColumn == mColumnStatus) { diff --git a/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/sdkman2/PkgItem.java b/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/sdkman2/PkgItem.java index 5b90375..ae20deb 100755 --- a/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/sdkman2/PkgItem.java +++ b/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/sdkman2/PkgItem.java @@ -17,7 +17,8 @@ package com.android.sdkuilib.internal.repository.sdkman2; import com.android.sdklib.internal.repository.archives.Archive; -import com.android.sdklib.internal.repository.packages.IPackageVersion; +import com.android.sdklib.internal.repository.packages.IAndroidVersionProvider; +import com.android.sdklib.internal.repository.packages.IPreviewVersionProvider; import com.android.sdklib.internal.repository.packages.Package; import com.android.sdklib.internal.repository.packages.Package.UpdateInfo; import com.android.sdklib.internal.repository.sources.SdkSource; @@ -93,6 +94,13 @@ public class PkgItem implements Comparable<PkgItem> { return mMainPkg.getRevision(); } + public String getRevisionStr() { + if (mMainPkg instanceof IPreviewVersionProvider) { + return ((IPreviewVersionProvider) mMainPkg).getPreviewVersion().toShortString(); + } + return Integer.toString(mMainPkg.getRevision()); + } + public String getDescription() { return mMainPkg.getDescription(); } @@ -110,8 +118,8 @@ public class PkgItem implements Comparable<PkgItem> { } public int getApi() { - return mMainPkg instanceof IPackageVersion ? - ((IPackageVersion) mMainPkg).getVersion().getApiLevel() : + return mMainPkg instanceof IAndroidVersionProvider ? + ((IAndroidVersionProvider) mMainPkg).getAndroidVersion().getApiLevel() : -1; } |