Don't show an older installed version as an update

This commit is contained in:
Ciaran Gultnieks 2010-12-08 15:29:30 +00:00
parent 234bdd16fb
commit 08e4ebaa29

View File

@ -76,6 +76,7 @@ public class DB {
public String trackerURL;
public String sourceURL;
public String installedVersion;
public int installedVerCode;
public String marketVersion;
public int marketVercode;
@ -193,7 +194,10 @@ public class DB {
"alter table " + TABLE_APP + " add marketVercode integer" },
// Version 3...
{ "alter table " + TABLE_APK + " add apkSource text" }
{ "alter table " + TABLE_APK + " add apkSource text" },
// Version 4...
{ "alter table " + TABLE_APP + " add installedVerCode integer" }
};
@ -291,6 +295,8 @@ public class DB {
app.sourceURL = c.getString(c.getColumnIndex("sourceURL"));
app.installedVersion = c.getString(c
.getColumnIndex("installedVersion"));
app.installedVerCode = c.getInt(c
.getColumnIndex("installedVerCode"));
app.marketVersion = c.getString(c
.getColumnIndex("marketVersion"));
app.marketVercode = c.getInt(c.getColumnIndex("marketVercode"));
@ -336,12 +342,14 @@ public class DB {
getUpdates(result);
}
// We'll say an application has updates if it's installed and the
// installed version is not the 'current' one.
// We'll say an application has updates if it's installed AND the
// installed version is not the 'current' one AND the installed
// version is older than the current one.
for (App app : result) {
Apk curver = app.getCurrentVersion();
if (app.installedVersion != null
&& !app.installedVersion
.equals(app.getCurrentVersion().version)) {
&& !app.installedVersion.equals(curver.version)) {
if(app.installedVerCode < curver.vercode)
app.hasUpdates = true;
}
}
@ -361,15 +369,17 @@ public class DB {
for (DB.App app : apps) {
if (systemApks.containsKey(app.id)) {
String version = systemApks.get(app.id).versionName;
PackageInfo sysapk = systemApks.get(app.id);
String version = sysapk.versionName;
int vercode = sysapk.versionCode;
if (app.installedVersion == null
|| !app.installedVersion.equals(version)) {
setInstalledVersion(app.id, version);
setInstalledVersion(app.id, version, vercode);
app.installedVersion = version;
}
} else {
if (app.installedVersion != null) {
setInstalledVersion(app.id, null);
setInstalledVersion(app.id, null, 0);
app.installedVersion = null;
}
}
@ -507,6 +517,7 @@ public class DB {
values.put("trackerURL", upapp.trackerURL);
values.put("sourceURL", upapp.sourceURL);
values.put("installedVersion", upapp.installedVersion);
values.put("installedVerCode", upapp.installedVerCode);
values.put("marketVersion", upapp.marketVersion);
values.put("marketVercode", upapp.marketVercode);
values.put("hasUpdates", upapp.hasUpdates ? 1 : 0);
@ -541,9 +552,10 @@ public class DB {
}
}
public void setInstalledVersion(String id, String version) {
public void setInstalledVersion(String id, String version, int vercode) {
ContentValues values = new ContentValues();
values.put("installedVersion", version);
values.put("installedVerCode", vercode);
db.update(TABLE_APP, values, "id = ?", new String[] { id });
}