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> unchangedRepos = new ArrayList<Repo>();
|
||||||
List<Repo> updatedRepos = new ArrayList<Repo>();
|
List<Repo> updatedRepos = new ArrayList<Repo>();
|
||||||
List<Repo> disabledRepos = new ArrayList<Repo>();
|
List<Repo> disabledRepos = new ArrayList<Repo>();
|
||||||
|
List<RepoUpdater.RepoUpdateRememberer> repoUpdateRememberers = new ArrayList<RepoUpdater.RepoUpdateRememberer>();
|
||||||
boolean changes = false;
|
boolean changes = false;
|
||||||
for (Repo repo : repos) {
|
for (Repo repo : repos) {
|
||||||
|
|
||||||
@ -350,6 +351,7 @@ public class UpdateService extends IntentService implements ProgressListener {
|
|||||||
apksToUpdate.addAll(updater.getApks());
|
apksToUpdate.addAll(updater.getApks());
|
||||||
updatedRepos.add(repo);
|
updatedRepos.add(repo);
|
||||||
changes = true;
|
changes = true;
|
||||||
|
repoUpdateRememberers.add(updater.getRememberer());
|
||||||
} else {
|
} else {
|
||||||
unchangedRepos.add(repo);
|
unchangedRepos.add(repo);
|
||||||
}
|
}
|
||||||
@ -389,6 +391,11 @@ public class UpdateService extends IntentService implements ProgressListener {
|
|||||||
|
|
||||||
notifyContentProviders();
|
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)) {
|
if (prefs.getBoolean(Preferences.PREF_UPD_NOTIFY, true)) {
|
||||||
performUpdateNotification(appsToUpdate.values());
|
performUpdateNotification(appsToUpdate.values());
|
||||||
}
|
}
|
||||||
|
@ -49,6 +49,7 @@ abstract public class RepoUpdater {
|
|||||||
protected final Repo repo;
|
protected final Repo repo;
|
||||||
private List<App> apps = new ArrayList<App>();
|
private List<App> apps = new ArrayList<App>();
|
||||||
private List<Apk> apks = new ArrayList<Apk>();
|
private List<Apk> apks = new ArrayList<Apk>();
|
||||||
|
private RepoUpdateRememberer rememberer = null;
|
||||||
protected boolean usePubkeyInJar = false;
|
protected boolean usePubkeyInJar = false;
|
||||||
protected boolean hasChanged = false;
|
protected boolean hasChanged = false;
|
||||||
protected ProgressListener progressListener;
|
protected ProgressListener progressListener;
|
||||||
@ -170,7 +171,11 @@ abstract public class RepoUpdater {
|
|||||||
reader.parse(is);
|
reader.parse(is);
|
||||||
apps = handler.getApps();
|
apps = handler.getApps();
|
||||||
apks = handler.getApks();
|
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) {
|
} catch (SAXException e) {
|
||||||
throw new UpdateException(
|
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();
|
ContentValues values = new ContentValues();
|
||||||
|
|
||||||
@ -244,7 +249,23 @@ abstract public class RepoUpdater {
|
|||||||
values.put(RepoProvider.DataColumns.NAME, handler.getName());
|
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 {
|
public static class UpdateException extends Exception {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user