summaryrefslogtreecommitdiff
path: root/core/src
diff options
context:
space:
mode:
Diffstat (limited to 'core/src')
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/service/FeedUpdateWorker.java26
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/service/download/handler/FeedParserTask.java1
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/service/download/handler/FeedSyncTask.java44
-rw-r--r--core/src/test/java/de/danoeh/antennapod/core/feed/FeedMother.java2
-rw-r--r--core/src/test/java/de/danoeh/antennapod/core/storage/DbReaderTest.java9
-rw-r--r--core/src/test/java/de/danoeh/antennapod/core/storage/DbTestUtils.java2
-rw-r--r--core/src/test/java/de/danoeh/antennapod/core/storage/mapper/FeedCursorMapperTest.java4
7 files changed, 23 insertions, 65 deletions
diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/FeedUpdateWorker.java b/core/src/main/java/de/danoeh/antennapod/core/service/FeedUpdateWorker.java
index 5e864c5c0..3eb69228e 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/service/FeedUpdateWorker.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/service/FeedUpdateWorker.java
@@ -23,7 +23,7 @@ import de.danoeh.antennapod.core.service.download.DefaultDownloaderFactory;
import de.danoeh.antennapod.core.service.download.DownloadRequestCreator;
import de.danoeh.antennapod.core.service.download.Downloader;
import de.danoeh.antennapod.core.service.download.NewEpisodesNotification;
-import de.danoeh.antennapod.core.service.download.handler.FeedSyncTask;
+import de.danoeh.antennapod.core.service.download.handler.FeedParserTask;
import de.danoeh.antennapod.core.storage.DBReader;
import de.danoeh.antennapod.core.storage.DBTasks;
import de.danoeh.antennapod.core.storage.DBWriter;
@@ -35,6 +35,7 @@ import de.danoeh.antennapod.model.feed.Feed;
import de.danoeh.antennapod.model.download.DownloadRequest;
import de.danoeh.antennapod.net.download.serviceinterface.DownloadRequestBuilder;
+import de.danoeh.antennapod.parser.feed.FeedHandlerResult;
import de.danoeh.antennapod.ui.notifications.NotificationUtils;
import java.util.ArrayList;
import java.util.Collections;
@@ -190,29 +191,30 @@ public class FeedUpdateWorker extends Worker {
return;
}
- FeedSyncTask feedSyncTask = new FeedSyncTask(getApplicationContext(), request);
- boolean success = feedSyncTask.run();
-
- if (!success) {
+ FeedParserTask parserTask = new FeedParserTask(request);
+ FeedHandlerResult feedHandlerResult = parserTask.call();
+ if (!parserTask.isSuccessful()) {
DBWriter.setFeedLastUpdateFailed(request.getFeedfileId(), true);
- DBWriter.addDownloadStatus(feedSyncTask.getDownloadStatus());
+ DBWriter.addDownloadStatus(parserTask.getDownloadStatus());
return;
}
+ feedHandlerResult.feed.setLastRefreshAttempt(System.currentTimeMillis());
+ Feed savedFeed = DBTasks.updateFeed(getApplicationContext(), feedHandlerResult.feed, false);
if (request.getFeedfileId() == 0) {
return; // No download logs for new subscriptions
}
// we create a 'successful' download log if the feed's last refresh failed
List<DownloadResult> log = DBReader.getFeedDownloadLog(request.getFeedfileId());
- if (log.size() > 0 && !log.get(0).isSuccessful()) {
- DBWriter.addDownloadStatus(feedSyncTask.getDownloadStatus());
+ if (!log.isEmpty() && !log.get(0).isSuccessful()) {
+ DBWriter.addDownloadStatus(parserTask.getDownloadStatus());
}
- newEpisodesNotification.showIfNeeded(getApplicationContext(), feedSyncTask.getSavedFeed());
+ newEpisodesNotification.showIfNeeded(getApplicationContext(), savedFeed);
if (downloader.permanentRedirectUrl != null) {
DBWriter.updateFeedDownloadURL(request.getSource(), downloader.permanentRedirectUrl);
- } else if (feedSyncTask.getRedirectUrl() != null
- && !feedSyncTask.getRedirectUrl().equals(request.getSource())) {
- DBWriter.updateFeedDownloadURL(request.getSource(), feedSyncTask.getRedirectUrl());
+ } else if (feedHandlerResult.redirectUrl != null
+ && !feedHandlerResult.redirectUrl.equals(request.getSource())) {
+ DBWriter.updateFeedDownloadURL(request.getSource(), feedHandlerResult.redirectUrl);
}
}
}
diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/download/handler/FeedParserTask.java b/core/src/main/java/de/danoeh/antennapod/core/service/download/handler/FeedParserTask.java
index b96b2723c..37775ab94 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/service/download/handler/FeedParserTask.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/service/download/handler/FeedParserTask.java
@@ -41,7 +41,6 @@ public class FeedParserTask implements Callable<FeedHandlerResult> {
Feed feed = new Feed(request.getSource(), request.getLastModified());
feed.setLocalFileUrl(request.getDestination());
feed.setId(request.getFeedfileId());
- feed.setDownloaded(true);
feed.setPreferences(new FeedPreferences(0, true, FeedPreferences.AutoDeleteAction.GLOBAL,
VolumeAdaptionSetting.OFF, FeedPreferences.NewEpisodesAction.GLOBAL, request.getUsername(),
request.getPassword()));
diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/download/handler/FeedSyncTask.java b/core/src/main/java/de/danoeh/antennapod/core/service/download/handler/FeedSyncTask.java
deleted file mode 100644
index 03d7ab6ec..000000000
--- a/core/src/main/java/de/danoeh/antennapod/core/service/download/handler/FeedSyncTask.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package de.danoeh.antennapod.core.service.download.handler;
-
-import android.content.Context;
-import androidx.annotation.NonNull;
-import de.danoeh.antennapod.core.storage.DBTasks;
-import de.danoeh.antennapod.model.download.DownloadResult;
-import de.danoeh.antennapod.model.feed.Feed;
-import de.danoeh.antennapod.model.download.DownloadRequest;
-import de.danoeh.antennapod.parser.feed.FeedHandlerResult;
-
-public class FeedSyncTask {
- private final Context context;
- private Feed savedFeed;
- private final FeedParserTask task;
- private FeedHandlerResult feedHandlerResult;
-
- public FeedSyncTask(Context context, DownloadRequest request) {
- this.context = context;
- this.task = new FeedParserTask(request);
- }
-
- public boolean run() {
- feedHandlerResult = task.call();
- if (!task.isSuccessful()) {
- return false;
- }
-
- savedFeed = DBTasks.updateFeed(context, feedHandlerResult.feed, false);
- return true;
- }
-
- @NonNull
- public DownloadResult getDownloadStatus() {
- return task.getDownloadStatus();
- }
-
- public Feed getSavedFeed() {
- return savedFeed;
- }
-
- public String getRedirectUrl() {
- return feedHandlerResult.redirectUrl;
- }
-}
diff --git a/core/src/test/java/de/danoeh/antennapod/core/feed/FeedMother.java b/core/src/test/java/de/danoeh/antennapod/core/feed/FeedMother.java
index b1f3fca27..7616f8f91 100644
--- a/core/src/test/java/de/danoeh/antennapod/core/feed/FeedMother.java
+++ b/core/src/test/java/de/danoeh/antennapod/core/feed/FeedMother.java
@@ -8,7 +8,7 @@ public class FeedMother {
public static Feed anyFeed() {
return new Feed(0, null, "title", "http://example.com", "This is the description",
"http://example.com/payment", "Daniel", "en", null, "http://example.com/feed", IMAGE_URL,
- null, "http://example.com/feed", true);
+ null, "http://example.com/feed", System.currentTimeMillis());
}
}
diff --git a/core/src/test/java/de/danoeh/antennapod/core/storage/DbReaderTest.java b/core/src/test/java/de/danoeh/antennapod/core/storage/DbReaderTest.java
index 6195ef714..54b4e507c 100644
--- a/core/src/test/java/de/danoeh/antennapod/core/storage/DbReaderTest.java
+++ b/core/src/test/java/de/danoeh/antennapod/core/storage/DbReaderTest.java
@@ -80,10 +80,11 @@ public class DbReaderTest {
PodDBAdapter adapter = PodDBAdapter.getInstance();
adapter.open();
- Feed feed1 = new Feed(0, null, "A", "link", "d", null, null, null, "rss", "A", null, "", "", true);
- Feed feed2 = new Feed(0, null, "b", "link", "d", null, null, null, "rss", "b", null, "", "", true);
- Feed feed3 = new Feed(0, null, "C", "link", "d", null, null, null, "rss", "C", null, "", "", true);
- Feed feed4 = new Feed(0, null, "d", "link", "d", null, null, null, "rss", "d", null, "", "", true);
+ final long lastRefreshed = System.currentTimeMillis();
+ Feed feed1 = new Feed(0, null, "A", "link", "d", null, null, null, "rss", "A", null, "", "", lastRefreshed);
+ Feed feed2 = new Feed(0, null, "b", "link", "d", null, null, null, "rss", "b", null, "", "", lastRefreshed);
+ Feed feed3 = new Feed(0, null, "C", "link", "d", null, null, null, "rss", "C", null, "", "", lastRefreshed);
+ Feed feed4 = new Feed(0, null, "d", "link", "d", null, null, null, "rss", "d", null, "", "", lastRefreshed);
adapter.setCompleteFeed(feed1);
adapter.setCompleteFeed(feed2);
adapter.setCompleteFeed(feed3);
diff --git a/core/src/test/java/de/danoeh/antennapod/core/storage/DbTestUtils.java b/core/src/test/java/de/danoeh/antennapod/core/storage/DbTestUtils.java
index 3a3213a37..84a6efb6a 100644
--- a/core/src/test/java/de/danoeh/antennapod/core/storage/DbTestUtils.java
+++ b/core/src/test/java/de/danoeh/antennapod/core/storage/DbTestUtils.java
@@ -43,7 +43,7 @@ abstract class DbTestUtils {
adapter.open();
for (int i = 0; i < numFeeds; i++) {
Feed f = new Feed(0, null, "feed " + i, "link" + i, "descr", null, null,
- null, null, "id" + i, null, null, "url" + i, false);
+ null, null, "id" + i, null, null, "url" + i, System.currentTimeMillis());
f.setItems(new ArrayList<>());
for (int j = 0; j < numItems; j++) {
FeedItem item = new FeedItem(0, "item " + j, "id" + j, "link" + j, new Date(),
diff --git a/core/src/test/java/de/danoeh/antennapod/core/storage/mapper/FeedCursorMapperTest.java b/core/src/test/java/de/danoeh/antennapod/core/storage/mapper/FeedCursorMapperTest.java
index 24f65744e..87ade0c6f 100644
--- a/core/src/test/java/de/danoeh/antennapod/core/storage/mapper/FeedCursorMapperTest.java
+++ b/core/src/test/java/de/danoeh/antennapod/core/storage/mapper/FeedCursorMapperTest.java
@@ -55,7 +55,7 @@ public class FeedCursorMapperTest {
assertEquals("feed image url", feed.getImageUrl());
assertEquals("feed file url", feed.getLocalFileUrl());
assertEquals("feed download url", feed.getDownloadUrl());
- assertTrue(feed.isDownloaded());
+ assertEquals(42, feed.getLastRefreshAttempt());
assertEquals("feed last update", feed.getLastModified());
assertEquals("feed type", feed.getType());
assertEquals("feed identifier", feed.getFeedIdentifier());
@@ -85,7 +85,7 @@ public class FeedCursorMapperTest {
values.put(PodDBAdapter.KEY_FILE_URL, "feed file url");
values.put(PodDBAdapter.KEY_DOWNLOAD_URL, "feed download url");
- values.put(PodDBAdapter.KEY_DOWNLOADED, true);
+ values.put(PodDBAdapter.KEY_LAST_REFRESH_ATTEMPT, 42);
values.put(PodDBAdapter.KEY_LASTUPDATE, "feed last update");
values.put(PodDBAdapter.KEY_TYPE, "feed type");
values.put(PodDBAdapter.KEY_FEED_IDENTIFIER, "feed identifier");