summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/service/GpodnetSyncService.java7
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/service/download/DownloadService.java9
2 files changed, 15 insertions, 1 deletions
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());
}