Don't show an older installed version as an update
This commit is contained in:
parent
234bdd16fb
commit
08e4ebaa29
@ -76,6 +76,7 @@ public class DB {
|
|||||||
public String trackerURL;
|
public String trackerURL;
|
||||||
public String sourceURL;
|
public String sourceURL;
|
||||||
public String installedVersion;
|
public String installedVersion;
|
||||||
|
public int installedVerCode;
|
||||||
public String marketVersion;
|
public String marketVersion;
|
||||||
public int marketVercode;
|
public int marketVercode;
|
||||||
|
|
||||||
@ -193,7 +194,10 @@ public class DB {
|
|||||||
"alter table " + TABLE_APP + " add marketVercode integer" },
|
"alter table " + TABLE_APP + " add marketVercode integer" },
|
||||||
|
|
||||||
// Version 3...
|
// 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.sourceURL = c.getString(c.getColumnIndex("sourceURL"));
|
||||||
app.installedVersion = c.getString(c
|
app.installedVersion = c.getString(c
|
||||||
.getColumnIndex("installedVersion"));
|
.getColumnIndex("installedVersion"));
|
||||||
|
app.installedVerCode = c.getInt(c
|
||||||
|
.getColumnIndex("installedVerCode"));
|
||||||
app.marketVersion = c.getString(c
|
app.marketVersion = c.getString(c
|
||||||
.getColumnIndex("marketVersion"));
|
.getColumnIndex("marketVersion"));
|
||||||
app.marketVercode = c.getInt(c.getColumnIndex("marketVercode"));
|
app.marketVercode = c.getInt(c.getColumnIndex("marketVercode"));
|
||||||
@ -336,12 +342,14 @@ public class DB {
|
|||||||
getUpdates(result);
|
getUpdates(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
// We'll say an application has updates if it's installed and the
|
// We'll say an application has updates if it's installed AND the
|
||||||
// installed version is not the 'current' one.
|
// installed version is not the 'current' one AND the installed
|
||||||
|
// version is older than the current one.
|
||||||
for (App app : result) {
|
for (App app : result) {
|
||||||
|
Apk curver = app.getCurrentVersion();
|
||||||
if (app.installedVersion != null
|
if (app.installedVersion != null
|
||||||
&& !app.installedVersion
|
&& !app.installedVersion.equals(curver.version)) {
|
||||||
.equals(app.getCurrentVersion().version)) {
|
if(app.installedVerCode < curver.vercode)
|
||||||
app.hasUpdates = true;
|
app.hasUpdates = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -361,15 +369,17 @@ public class DB {
|
|||||||
|
|
||||||
for (DB.App app : apps) {
|
for (DB.App app : apps) {
|
||||||
if (systemApks.containsKey(app.id)) {
|
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
|
if (app.installedVersion == null
|
||||||
|| !app.installedVersion.equals(version)) {
|
|| !app.installedVersion.equals(version)) {
|
||||||
setInstalledVersion(app.id, version);
|
setInstalledVersion(app.id, version, vercode);
|
||||||
app.installedVersion = version;
|
app.installedVersion = version;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (app.installedVersion != null) {
|
if (app.installedVersion != null) {
|
||||||
setInstalledVersion(app.id, null);
|
setInstalledVersion(app.id, null, 0);
|
||||||
app.installedVersion = null;
|
app.installedVersion = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -507,6 +517,7 @@ public class DB {
|
|||||||
values.put("trackerURL", upapp.trackerURL);
|
values.put("trackerURL", upapp.trackerURL);
|
||||||
values.put("sourceURL", upapp.sourceURL);
|
values.put("sourceURL", upapp.sourceURL);
|
||||||
values.put("installedVersion", upapp.installedVersion);
|
values.put("installedVersion", upapp.installedVersion);
|
||||||
|
values.put("installedVerCode", upapp.installedVerCode);
|
||||||
values.put("marketVersion", upapp.marketVersion);
|
values.put("marketVersion", upapp.marketVersion);
|
||||||
values.put("marketVercode", upapp.marketVercode);
|
values.put("marketVercode", upapp.marketVercode);
|
||||||
values.put("hasUpdates", upapp.hasUpdates ? 1 : 0);
|
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();
|
ContentValues values = new ContentValues();
|
||||||
values.put("installedVersion", version);
|
values.put("installedVersion", version);
|
||||||
|
values.put("installedVerCode", vercode);
|
||||||
db.update(TABLE_APP, values, "id = ?", new String[] { id });
|
db.update(TABLE_APP, values, "id = ?", new String[] { id });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user