Merge branch 'master' into 'master'
Save updated repo data at the end of the update This fixes #84. See merge request !34
This commit is contained in:
commit
69fd955360
@ -327,6 +327,7 @@ public class UpdateService extends IntentService implements ProgressListener {
|
||||
List<Repo> unchangedRepos = new ArrayList<Repo>();
|
||||
List<Repo> updatedRepos = new ArrayList<Repo>();
|
||||
List<Repo> disabledRepos = new ArrayList<Repo>();
|
||||
List<RepoUpdater.RepoUpdateRememberer> repoUpdateRememberers = new ArrayList<RepoUpdater.RepoUpdateRememberer>();
|
||||
boolean changes = false;
|
||||
for (Repo repo : repos) {
|
||||
|
||||
@ -350,6 +351,7 @@ public class UpdateService extends IntentService implements ProgressListener {
|
||||
apksToUpdate.addAll(updater.getApks());
|
||||
updatedRepos.add(repo);
|
||||
changes = true;
|
||||
repoUpdateRememberers.add(updater.getRememberer());
|
||||
} else {
|
||||
unchangedRepos.add(repo);
|
||||
}
|
||||
@ -389,6 +391,11 @@ public class UpdateService extends IntentService implements ProgressListener {
|
||||
|
||||
notifyContentProviders();
|
||||
|
||||
//we only remember the update if everything has gone well
|
||||
for (RepoUpdater.RepoUpdateRememberer rememberer : repoUpdateRememberers) {
|
||||
rememberer.rememberUpdate();
|
||||
}
|
||||
|
||||
if (prefs.getBoolean(Preferences.PREF_UPD_NOTIFY, true)) {
|
||||
performUpdateNotification(appsToUpdate.values());
|
||||
}
|
||||
|
@ -49,6 +49,7 @@ abstract public class RepoUpdater {
|
||||
protected final Repo repo;
|
||||
private List<App> apps = new ArrayList<App>();
|
||||
private List<Apk> apks = new ArrayList<Apk>();
|
||||
private RepoUpdateRememberer rememberer = null;
|
||||
protected boolean usePubkeyInJar = false;
|
||||
protected boolean hasChanged = false;
|
||||
protected ProgressListener progressListener;
|
||||
@ -170,7 +171,11 @@ abstract public class RepoUpdater {
|
||||
reader.parse(is);
|
||||
apps = handler.getApps();
|
||||
apks = handler.getApks();
|
||||
updateRepo(handler, downloader.getCacheTag());
|
||||
|
||||
rememberer = new RepoUpdateRememberer();
|
||||
rememberer.context = context;
|
||||
rememberer.repo = repo;
|
||||
rememberer.values = prepareRepoDetailsForSaving(handler, downloader.getCacheTag());
|
||||
}
|
||||
} catch (SAXException e) {
|
||||
throw new UpdateException(
|
||||
@ -196,7 +201,7 @@ abstract public class RepoUpdater {
|
||||
}
|
||||
}
|
||||
|
||||
private void updateRepo(RepoXMLHandler handler, String etag) {
|
||||
private ContentValues prepareRepoDetailsForSaving (RepoXMLHandler handler, String etag) {
|
||||
|
||||
ContentValues values = new ContentValues();
|
||||
|
||||
@ -244,7 +249,23 @@ abstract public class RepoUpdater {
|
||||
values.put(RepoProvider.DataColumns.NAME, handler.getName());
|
||||
}
|
||||
|
||||
RepoProvider.Helper.update(context, repo, values);
|
||||
return values;
|
||||
}
|
||||
|
||||
public RepoUpdateRememberer getRememberer() {
|
||||
return rememberer;
|
||||
}
|
||||
|
||||
public static class RepoUpdateRememberer {
|
||||
|
||||
private Context context;
|
||||
private Repo repo;
|
||||
private ContentValues values;
|
||||
|
||||
public void rememberUpdate() {
|
||||
RepoProvider.Helper.update(context, repo, values);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static class UpdateException extends Exception {
|
||||
|
Loading…
x
Reference in New Issue
Block a user