No need to re-check compatibility if ALL repos were unchanged (by etag)

This commit is contained in:
Ciaran Gultnieks 2013-04-16 20:31:51 +01:00
parent 78f6027176
commit 49706c12d1

View File

@ -147,6 +147,7 @@ public class UpdateService extends IntentService implements ProgressListener {
List<DB.App> apps = new ArrayList<DB.App>(); List<DB.App> apps = new ArrayList<DB.App>();
List<Integer> keeprepos = new ArrayList<Integer>(); List<Integer> keeprepos = new ArrayList<Integer>();
boolean success = true; boolean success = true;
boolean changes = false;
for (DB.Repo repo : repos) { for (DB.Repo repo : repos) {
if (repo.inuse) { if (repo.inuse) {
@ -156,7 +157,11 @@ public class UpdateService extends IntentService implements ProgressListener {
String err = RepoXMLHandler.doUpdate(getBaseContext(), String err = RepoXMLHandler.doUpdate(getBaseContext(),
repo, apps, newetag, keeprepos, this); repo, apps, newetag, keeprepos, this);
if (err == null) { if (err == null) {
repo.lastetag = newetag.toString(); String nt = newetag.toString();
if(!nt.equals(repo.lastetag)) {
repo.lastetag = newetag.toString();
changes = true;
}
} else { } else {
success = false; success = false;
err = "Update failed for " + repo.address + " - " + err; err = "Update failed for " + repo.address + " - " + err;
@ -169,7 +174,7 @@ public class UpdateService extends IntentService implements ProgressListener {
} }
} }
if (success) { if (changes && success) {
sendStatus(STATUS_INFO, getString(R.string.status_checking_compatibility)); sendStatus(STATUS_INFO, getString(R.string.status_checking_compatibility));
List<DB.App> acceptedapps = new ArrayList<DB.App>(); List<DB.App> acceptedapps = new ArrayList<DB.App>();
List<DB.App> prevapps = ((FDroidApp) getApplication()).getApps(); List<DB.App> prevapps = ((FDroidApp) getApplication()).getApps();
@ -239,7 +244,7 @@ public class UpdateService extends IntentService implements ProgressListener {
} }
if (success && notify) { if (success && changes && notify) {
Log.d("FDroid", "Updates before:" + prevUpdates + ", after: " Log.d("FDroid", "Updates before:" + prevUpdates + ", after: "
+ newUpdates); + newUpdates);
if (newUpdates > prevUpdates) { if (newUpdates > prevUpdates) {