From 6498eed95ca6136a9924f5fe7c3db012b5bc7ac3 Mon Sep 17 00:00:00 2001 From: Martin Fietz Date: Sun, 17 Apr 2016 11:58:38 +0200 Subject: Only sync episode state after feeds have been persisted --- .../de/danoeh/antennapod/core/service/GpodnetSyncService.java | 7 ++++++- .../danoeh/antennapod/core/service/download/DownloadService.java | 9 +++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) (limited to 'core/src/main/java') diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/GpodnetSyncService.java b/core/src/main/java/de/danoeh/antennapod/core/service/GpodnetSyncService.java index d939c1007..9704d2111 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/service/GpodnetSyncService.java +++ b/core/src/main/java/de/danoeh/antennapod/core/service/GpodnetSyncService.java @@ -111,12 +111,17 @@ public class GpodnetSyncService extends Service { stopSelf(); return; } + boolean initialSync = GpodnetPreferences.getLastSubscriptionSyncTimestamp() == 0 && + GpodnetPreferences.getLastEpisodeActionsSyncTimestamp() == 0; if(syncSubscriptions) { syncSubscriptionChanges(); syncSubscriptions = false; } if(syncActions) { - syncEpisodeActions(); + // we only sync episode actions after the subscriptions have been added to the database + if(!initialSync) { + syncEpisodeActions(); + } syncActions = false; } stopSelf(); diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/download/DownloadService.java b/core/src/main/java/de/danoeh/antennapod/core/service/download/DownloadService.java index 2117d8824..00b0e6db3 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/service/download/DownloadService.java +++ b/core/src/main/java/de/danoeh/antennapod/core/service/download/DownloadService.java @@ -61,6 +61,7 @@ import de.danoeh.antennapod.core.gpoddernet.model.GpodnetEpisodeAction; import de.danoeh.antennapod.core.gpoddernet.model.GpodnetEpisodeAction.Action; import de.danoeh.antennapod.core.preferences.GpodnetPreferences; import de.danoeh.antennapod.core.preferences.UserPreferences; +import de.danoeh.antennapod.core.service.GpodnetSyncService; import de.danoeh.antennapod.core.storage.DBReader; import de.danoeh.antennapod.core.storage.DBTasks; import de.danoeh.antennapod.core.storage.DBWriter; @@ -318,6 +319,14 @@ public class DownloadService extends Service { cancelNotificationUpdater(); unregisterReceiver(cancelDownloadReceiver); + // if this was the initial gpodder sync, i.e. we just synced the feeds successfully, + // it is now time to sync the episode actions + if(GpodnetPreferences.loggedIn() && + GpodnetPreferences.getLastSubscriptionSyncTimestamp() > 0 && + GpodnetPreferences.getLastEpisodeActionsSyncTimestamp() == 0) { + GpodnetSyncService.sendSyncActionsIntent(this); + } + // start auto download in case anything new has shown up DBTasks.autodownloadUndownloadedItems(getApplicationContext()); } -- cgit v1.2.3