aboutsummaryrefslogtreecommitdiffstats
path: root/sdkmanager/libs/sdkuilib
diff options
context:
space:
mode:
authorRaphael Moll <ralf@android.com>2012-04-19 16:27:03 -0700
committerRaphael Moll <ralf@android.com>2012-04-30 11:21:07 -0700
commit0c6def5d3f0d611bca7dbb7c2b773cd1664ec390 (patch)
tree742e2ce1c1f4d56fd3ed34ba6d139fb47a6f73eb /sdkmanager/libs/sdkuilib
parenta47d76dafda4877fec75bd78998474b8b4c63310 (diff)
downloadsdk-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')
-rwxr-xr-xsdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/SdkUpdaterChooserDialog.java9
-rwxr-xr-xsdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/SdkUpdaterLogic.java42
-rwxr-xr-xsdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/sdkman2/AdtUpdateDialog.java8
-rwxr-xr-xsdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/sdkman2/PackagesDiffLogic.java10
-rwxr-xr-xsdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/sdkman2/PackagesPage.java2
-rwxr-xr-xsdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/sdkman2/PkgItem.java14
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;
}