summaryrefslogtreecommitdiff
path: root/core/src/main/java
diff options
context:
space:
mode:
authorByteHamster <info@bytehamster.com>2021-11-28 22:20:57 +0100
committerByteHamster <info@bytehamster.com>2021-11-28 22:20:57 +0100
commit561141cfffaacc159660578a46cb393d7be5bc68 (patch)
tree8f26e238e7ebfe3e927f2449a724eff90025836b /core/src/main/java
parentf0100e61ac633516082ea112363132c99f7c0b7a (diff)
parent19dfa08905e33943995edb1703b8ddc3bb9fc0ea (diff)
downloadAntennaPod-561141cfffaacc159660578a46cb393d7be5bc68.zip
Merge branch 'master' into develop
Diffstat (limited to 'core/src/main/java')
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java2
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/storage/DBTasks.java14
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/storage/DownloadRequester.java6
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/util/URLChecker.java4
4 files changed, 18 insertions, 8 deletions
diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java b/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java
index 949c0ff9d..d5e0140d0 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java
@@ -1791,7 +1791,7 @@ public class PlaybackService extends MediaBrowserServiceCompat {
private void addPlayableToQueue(Playable playable) {
if (playable instanceof FeedMedia) {
long itemId = ((FeedMedia) playable).getItem().getId();
- DBWriter.addQueueItem(this, false, false, itemId);
+ DBWriter.addQueueItem(this, false, true, itemId);
}
}
diff --git a/core/src/main/java/de/danoeh/antennapod/core/storage/DBTasks.java b/core/src/main/java/de/danoeh/antennapod/core/storage/DBTasks.java
index 04722b916..2cb99559a 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/storage/DBTasks.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/storage/DBTasks.java
@@ -457,24 +457,30 @@ public final class DBTasks {
for (int idx = 0; idx < newFeed.getItems().size(); idx++) {
final FeedItem item = newFeed.getItems().get(idx);
- if (item != searchFeedItemGuessDuplicate(newFeed.getItems(), item)) {
+ FeedItem possibleDuplicate = searchFeedItemGuessDuplicate(newFeed.getItems(), item);
+ if (!newFeed.isLocalFeed() && possibleDuplicate != null && item != possibleDuplicate) {
// Canonical episode is the first one returned (usually oldest)
DBWriter.addDownloadStatus(new DownloadStatus(savedFeed,
item.getTitle(), DownloadError.ERROR_PARSER_EXCEPTION_DUPLICATE, false,
"The podcast host appears to have added the same episode twice. "
- + "AntennaPod attempted to repair it.", false));
+ + "AntennaPod still refreshed the feed and attempted to repair it."
+ + "{" + possibleDuplicate.getTitle() + "} with ID "
+ + possibleDuplicate.getItemIdentifier()
+ + " seems to be the same as {" + item.getTitle() + "} with ID "
+ + item.getItemIdentifier(), false));
continue;
}
FeedItem oldItem = searchFeedItemByIdentifyingValue(savedFeed.getItems(), item);
- if (oldItem == null) {
+ if (!newFeed.isLocalFeed() && oldItem == null) {
oldItem = searchFeedItemGuessDuplicate(savedFeed.getItems(), item);
if (oldItem != null) {
Log.d(TAG, "Repaired duplicate: " + oldItem + ", " + item);
DBWriter.addDownloadStatus(new DownloadStatus(savedFeed,
item.getTitle(), DownloadError.ERROR_PARSER_EXCEPTION_DUPLICATE, false,
"The podcast host changed the ID of an existing episode instead of just "
- + "updating the episode itself. AntennaPod attempted to repair it.\n\n"
+ + "updating the episode itself. AntennaPod still refreshed the feed and "
+ + "attempted to repair it.\n\n"
+ "{" + oldItem.getTitle() + "} with ID " + oldItem.getItemIdentifier()
+ " seems to be the same as {" + item.getTitle() + "} with ID "
+ item.getItemIdentifier(), false));
diff --git a/core/src/main/java/de/danoeh/antennapod/core/storage/DownloadRequester.java b/core/src/main/java/de/danoeh/antennapod/core/storage/DownloadRequester.java
index f45cb2b66..6192edf7c 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/storage/DownloadRequester.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/storage/DownloadRequester.java
@@ -218,7 +218,7 @@ public class DownloadRequester implements DownloadStateProvider {
args.putInt(REQUEST_ARG_PAGE_NR, feed.getPageNr());
args.putBoolean(REQUEST_ARG_LOAD_ALL_PAGES, loadAllPages);
- DownloadRequest request = createRequest(feed, null, new File(getFeedfilePath(), getFeedfileName(feed)),
+ DownloadRequest request = createRequest(feed, null, getDownloadPathForFeed(feed),
true, username, password, lastModified, true, args, initiatedByUser
);
if (request != null) {
@@ -230,6 +230,10 @@ public class DownloadRequester implements DownloadStateProvider {
}
}
+ public File getDownloadPathForFeed(Feed feed) throws DownloadRequestException {
+ return new File(getFeedfilePath(), getFeedfileName(feed));
+ }
+
public synchronized void downloadFeed(Context context, Feed feed) throws DownloadRequestException {
downloadFeed(context, feed, false, false, true);
}
diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/URLChecker.java b/core/src/main/java/de/danoeh/antennapod/core/util/URLChecker.java
index 1ac068307..a72d2034b 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/util/URLChecker.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/util/URLChecker.java
@@ -29,7 +29,7 @@ public final class URLChecker {
private static final String TAG = "URLChecker";
private static final String AP_SUBSCRIBE = "antennapod-subscribe://";
- private static final String AP_SUBSCRIBE_DEEPLINK = "antennapod.org/deeplink/subscribe?url=";
+ private static final String AP_SUBSCRIBE_DEEPLINK = "antennapod.org/deeplink/subscribe";
/**
* Checks if URL is valid and modifies it if necessary.
@@ -57,7 +57,7 @@ public final class URLChecker {
return prepareURL(url.substring(AP_SUBSCRIBE.length()));
} else if (lowerCaseUrl.contains(AP_SUBSCRIBE_DEEPLINK)) {
Log.d(TAG, "Removing " + AP_SUBSCRIBE_DEEPLINK);
- String removedWebsite = url.substring(url.indexOf(AP_SUBSCRIBE_DEEPLINK) + AP_SUBSCRIBE_DEEPLINK.length());
+ String removedWebsite = url.substring(url.indexOf("?url=") + "?url=".length());
try {
return prepareURL(URLDecoder.decode(removedWebsite, "UTF-8"));
} catch (UnsupportedEncodingException e) {