From 2f6bd734c081c5ae96c724877ee86bfacc77a025 Mon Sep 17 00:00:00 2001 From: Xavier Ducrohet Date: Wed, 5 Aug 2009 19:25:35 -0700 Subject: [PATCH] Fix comparison of 2 doc packages that have the same codename/revision. This made the Donut_r1 doc show up as upgrade to the donut_r1 doc. BUG: 2037448 --- .../internal/repository/DocPackage.java | 27 ++++++++++--------- 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/tools/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/DocPackage.java b/tools/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/DocPackage.java index abd42fb9c..3bd731b0a 100755 --- a/tools/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/DocPackage.java +++ b/tools/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/DocPackage.java @@ -166,22 +166,25 @@ public class DocPackage extends Package { AndroidVersion replacementVersion = replacementDoc.getVersion(); - // the new doc is an update if the api level is higher + // the new doc is an update if the api level is higher (no matter the codename on either) if (replacementVersion.getApiLevel() > mVersion.getApiLevel()) { return UpdateInfo.UPDATE; } - // if it's the exactly same (including codename), we check the revision - if (replacementVersion.equals(mVersion) && - replacementPackage.getRevision() > this.getRevision()) { - return UpdateInfo.UPDATE; - } - - // else we check if they have the same api level and the new one is a preview, in which - // case it's also an update (since preview have the api level of the _previous_ version. - if (replacementVersion.getApiLevel() == mVersion.getApiLevel() && - replacementVersion.isPreview()) { - return UpdateInfo.UPDATE; + // Check if they're the same exact (api and codename) + if (replacementVersion.equals(mVersion)) { + // exact same version, so check the revision level + if (replacementPackage.getRevision() > this.getRevision()) { + return UpdateInfo.UPDATE; + } + } else { + // not the same version? we check if they have the same api level and the new one + // is a preview, in which case it's also an update (since preview have the api level + // of the _previous_ version.) + if (replacementVersion.getApiLevel() == mVersion.getApiLevel() && + replacementVersion.isPreview()) { + return UpdateInfo.UPDATE; + } } // not an upgrade but not incompatible either.