summaryrefslogtreecommitdiff
path: root/core/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/main')
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/service/download/DownloadService.java3
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/service/download/handler/FeedParserTask.java4
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/service/download/handler/FeedSyncTask.java11
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/service/download/handler/MediaDownloadedHandler.java5
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/storage/DBReader.java5
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/sync/SyncService.java4
6 files changed, 20 insertions, 12 deletions
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 917c45c14..42340e704 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
@@ -546,7 +546,7 @@ public class DownloadService extends Service {
*
* @param status the download that is going to be saved
*/
- private void saveDownloadStatus(DownloadStatus status) {
+ private void saveDownloadStatus(@NonNull DownloadStatus status) {
reportQueue.add(status);
DBWriter.addDownloadStatus(status);
}
@@ -656,7 +656,6 @@ public class DownloadService extends Service {
if (notificationUpdater != null) {
notificationUpdater.run();
}
- downloadEnqueueExecutor.shutdown(); // Do not accept new downloads
cancelNotificationUpdater();
ServiceCompat.stopForeground(this, ServiceCompat.STOP_FOREGROUND_REMOVE);
stopSelf();
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 21d3452d6..125804669 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
@@ -1,6 +1,7 @@
package de.danoeh.antennapod.core.service.download.handler;
import android.util.Log;
+import androidx.annotation.NonNull;
import de.danoeh.antennapod.model.feed.Feed;
import de.danoeh.antennapod.model.feed.FeedItem;
import de.danoeh.antennapod.model.feed.FeedPreferences;
@@ -27,6 +28,8 @@ public class FeedParserTask implements Callable<FeedHandlerResult> {
public FeedParserTask(DownloadRequest request) {
this.request = request;
+ downloadStatus = new DownloadStatus(request, DownloadError.ERROR_REQUEST_ERROR,
+ false, false, "Unknown error: Status not set");
}
@Override
@@ -108,6 +111,7 @@ public class FeedParserTask implements Callable<FeedHandlerResult> {
}
}
+ @NonNull
public DownloadStatus getDownloadStatus() {
return downloadStatus;
}
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
index 9760c57b1..57bcecf2e 100644
--- 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
@@ -2,6 +2,7 @@ package de.danoeh.antennapod.core.service.download.handler;
import android.content.Context;
+import androidx.annotation.NonNull;
import de.danoeh.antennapod.model.feed.Feed;
import de.danoeh.antennapod.core.service.download.DownloadRequest;
import de.danoeh.antennapod.core.service.download.DownloadStatus;
@@ -9,22 +10,19 @@ import de.danoeh.antennapod.core.storage.DBTasks;
import de.danoeh.antennapod.parser.feed.FeedHandlerResult;
public class FeedSyncTask {
- private static final String TAG = "FeedParserTask";
private final DownloadRequest request;
private final Context context;
- private DownloadStatus downloadStatus;
private Feed savedFeed;
+ private final FeedParserTask task;
public FeedSyncTask(Context context, DownloadRequest request) {
this.request = request;
this.context = context;
+ this.task = new FeedParserTask(request);
}
public boolean run() {
- FeedParserTask task = new FeedParserTask(request);
FeedHandlerResult result = task.call();
- downloadStatus = task.getDownloadStatus();
-
if (!task.isSuccessful()) {
return false;
}
@@ -40,8 +38,9 @@ public class FeedSyncTask {
return true;
}
+ @NonNull
public DownloadStatus getDownloadStatus() {
- return downloadStatus;
+ return task.getDownloadStatus();
}
public Feed getSavedFeed() {
diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/download/handler/MediaDownloadedHandler.java b/core/src/main/java/de/danoeh/antennapod/core/service/download/handler/MediaDownloadedHandler.java
index 541e17cf6..f4f6c5a08 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/service/download/handler/MediaDownloadedHandler.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/service/download/handler/MediaDownloadedHandler.java
@@ -29,20 +29,18 @@ import de.danoeh.antennapod.net.sync.model.EpisodeAction;
public class MediaDownloadedHandler implements Runnable {
private static final String TAG = "MediaDownloadedHandler";
private final DownloadRequest request;
- private final DownloadStatus status;
private final Context context;
private DownloadStatus updatedStatus;
public MediaDownloadedHandler(@NonNull Context context, @NonNull DownloadStatus status,
@NonNull DownloadRequest request) {
- this.status = status;
this.request = request;
this.context = context;
+ this.updatedStatus = status;
}
@Override
public void run() {
- updatedStatus = status;
FeedMedia media = DBReader.getFeedMedia(request.getFeedfileId());
if (media == null) {
Log.e(TAG, "Could not find downloaded media object in database");
@@ -108,6 +106,7 @@ public class MediaDownloadedHandler implements Runnable {
}
}
+ @NonNull
public DownloadStatus getUpdatedStatus() {
return updatedStatus;
}
diff --git a/core/src/main/java/de/danoeh/antennapod/core/storage/DBReader.java b/core/src/main/java/de/danoeh/antennapod/core/storage/DBReader.java
index da6987910..81f3af7df 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/storage/DBReader.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/storage/DBReader.java
@@ -101,7 +101,10 @@ public final class DBReader {
try (Cursor cursor = adapter.getFeedCursorDownloadUrls()) {
List<String> result = new ArrayList<>(cursor.getCount());
while (cursor.moveToNext()) {
- result.add(cursor.getString(1));
+ String url = cursor.getString(1);
+ if (url != null && !url.startsWith(Feed.PREFIX_LOCAL_FOLDER)) {
+ result.add(url);
+ }
}
return result;
} finally {
diff --git a/core/src/main/java/de/danoeh/antennapod/core/sync/SyncService.java b/core/src/main/java/de/danoeh/antennapod/core/sync/SyncService.java
index 6d6d7bb41..0640f7577 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/sync/SyncService.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/sync/SyncService.java
@@ -145,6 +145,10 @@ public class SyncService extends Worker {
Log.d(TAG, "Downloaded subscription changes: " + subscriptionChanges);
for (String downloadUrl : subscriptionChanges.getAdded()) {
+ if (!downloadUrl.startsWith("http")) { // Also matches https
+ Log.d(TAG, "Skipping url: " + downloadUrl);
+ continue;
+ }
if (!URLChecker.containsUrl(localSubscriptions, downloadUrl) && !queuedRemovedFeeds.contains(downloadUrl)) {
Feed feed = new Feed(downloadUrl, null);
DownloadRequest.Builder builder = DownloadRequestCreator.create(feed);