Fix remaining issues with notifications

This commit is contained in:
Daniel Martí 2013-09-28 21:13:32 +02:00
parent fa1b53a81c
commit 082802cbba
2 changed files with 18 additions and 17 deletions

View File

@ -607,17 +607,6 @@ public class DB {
}
}
// Get the number of apps that have updates available. This can be a
// time consuming operation.
public int getNumUpdates(List<DB.App> apps) {
int count = 0;
for (App app : apps) {
if (!app.ignoreUpdates && app.hasUpdates)
count++;
}
return count;
}
public List<String> getCategories() {
List<String> result = new ArrayList<String>();
Cursor c = null;

View File

@ -100,6 +100,16 @@ public class UpdateService extends IntentService implements ProgressListener {
return receiver == null;
}
// Get the number of apps that have updates available.
public int getNumUpdates(List<DB.App> apps) {
int count = 0;
for (DB.App app : apps) {
if (!app.ignoreUpdates && app.hasUpdates)
count++;
}
return count;
}
protected void onHandleIntent(Intent intent) {
receiver = intent.getParcelableExtra("receiver");
@ -144,6 +154,7 @@ public class UpdateService extends IntentService implements ProgressListener {
}
// Process each repo...
List<DB.App> apps;
List<DB.App> updatingApps = new ArrayList<DB.App>();
List<Integer> keeprepos = new ArrayList<Integer>();
boolean success = true;
@ -184,7 +195,7 @@ public class UpdateService extends IntentService implements ProgressListener {
sendStatus(STATUS_INFO,
getString(R.string.status_checking_compatibility));
List<DB.App> apps = ((FDroidApp) getApplication()).getApps();
apps = ((FDroidApp) getApplication()).getApps();
DB db = DB.getDB();
try {
@ -227,10 +238,6 @@ public class UpdateService extends IntentService implements ProgressListener {
db.updateApplication(app);
}
db.endUpdate();
if (notify) {
apps = ((FDroidApp) getApplication()).getApps();
updates = db.getNumUpdates(apps);
}
for (DB.Repo repo : repos)
db.writeLastEtag(repo);
} catch (Exception ex) {
@ -245,8 +252,13 @@ public class UpdateService extends IntentService implements ProgressListener {
}
if (success && changes)
if (success && changes) {
((FDroidApp) getApplication()).invalidateAllApps();
if (notify) {
apps = ((FDroidApp) getApplication()).getApps();
updates = getNumUpdates(apps);
}
}
if (success && changes && notify && updates > 0) {
Log.d("FDroid", "Notifying "+updates+" updates.");