diff options
author | Raphael Moll <ralf@android.com> | 2010-04-23 11:06:37 -0700 |
---|---|---|
committer | Android Code Review <code-review@android.com> | 2010-04-23 11:06:37 -0700 |
commit | c14eb61f1da87b631d24a89b3493955e875e7139 (patch) | |
tree | 87900e1e0a14914940b61dd54dd99de7ab8c21c3 | |
parent | 2661b50f66a9b86a2950279736e0b968c3b7252f (diff) | |
parent | eb3dcf334a72a750c11dea7ce6141dd0f6a5ecf3 (diff) | |
download | sdk-c14eb61f1da87b631d24a89b3493955e875e7139.zip sdk-c14eb61f1da87b631d24a89b3493955e875e7139.tar.gz sdk-c14eb61f1da87b631d24a89b3493955e875e7139.tar.bz2 |
Merge "Reorder packages in SDK Updater"
-rwxr-xr-x | sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/Package.java | 32 |
1 files changed, 19 insertions, 13 deletions
diff --git a/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/Package.java b/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/Package.java index d03c9a9..1608887 100755 --- a/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/Package.java +++ b/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/Package.java @@ -486,10 +486,11 @@ public abstract class Package implements IDescription, Comparable<Package> { * - Tools.
* - Docs.
* - Platform n preview
- * - Add-on based on n preview
* - Platform n
- * - Add-on based on n
* - Platform n-1
+ * - Samples packages.
+ * - Add-on based on n preview
+ * - Add-on based on n
* - Add-on based on n-1
* - Extra packages.
*/
@@ -503,26 +504,31 @@ public abstract class Package implements IDescription, Comparable<Package> { * Computes the score for each package used by {@link #compareTo(Package)}.
*/
private int sortingScore() {
- int type = 0;
- int rev = getRevision();
- int offset = 0;
+ // up to 31 bits (for signed stuff)
+ int type = 0; // max type=5 => 3 bits
+ int rev = getRevision(); // 12 bits... 4095
+ int offset = 0; // 16 bits...
if (this instanceof ToolPackage) {
- type = 3;
+ type = 5;
} else if (this instanceof DocPackage) {
+ type = 4;
+ } else if (this instanceof PlatformPackage) {
+ type = 3;
+ } else if (this instanceof SamplePackage) {
type = 2;
- } else if (this instanceof PlatformPackage || this instanceof AddonPackage ||
- this instanceof SamplePackage) {
+ } else if (this instanceof AddonPackage) {
type = 1;
- AndroidVersion v = ((IPackageVersion) this).getVersion();
- offset = v.getApiLevel();
- offset = offset * 2 + (v.isPreview() ? 1 : 0);
- offset = offset * 2 + ((this instanceof AddonPackage) ? 0 :
- ((this instanceof SamplePackage) ? 1 : 2));
} else {
// extras and everything else
type = 0;
}
+ if (this instanceof IPackageVersion) {
+ AndroidVersion v = ((IPackageVersion) this).getVersion();
+ offset = v.getApiLevel();
+ offset = offset * 2 + (v.isPreview() ? 1 : 0);
+ }
+
int n = (type << 28) + (offset << 12) + rev;
return 0 - n;
}
|