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
This commit is contained in:
Xavier Ducrohet
2009-08-05 19:25:35 -07:00
parent 8639e8e60b
commit 2f6bd734c0

View File

@@ -166,23 +166,26 @@ 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()) {
// 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 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.
} 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.
return UpdateInfo.NOT_UPDATE;