summaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
Diffstat (limited to 'core')
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/storage/DBTasks.java7
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/storage/FeedItemDuplicateGuesser.java2
2 files changed, 8 insertions, 1 deletions
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 1fb0991dd..883aefee8 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
@@ -171,6 +171,13 @@ public final class DBTasks {
* This is to work around podcasters breaking their GUIDs.
*/
private static FeedItem searchFeedItemGuessDuplicate(List<FeedItem> items, FeedItem searchItem) {
+ // First, see if it is a well-behaving feed that contains an item with the same identifier
+ for (FeedItem item : items) {
+ if (FeedItemDuplicateGuesser.sameAndNotEmpty(item.getItemIdentifier(), searchItem.getItemIdentifier())) {
+ return item;
+ }
+ }
+ // Not found yet, start more expensive guessing
for (FeedItem item : items) {
if (FeedItemDuplicateGuesser.seemDuplicates(item, searchItem)) {
return item;
diff --git a/core/src/main/java/de/danoeh/antennapod/core/storage/FeedItemDuplicateGuesser.java b/core/src/main/java/de/danoeh/antennapod/core/storage/FeedItemDuplicateGuesser.java
index 88f896187..1eb8b0577 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/storage/FeedItemDuplicateGuesser.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/storage/FeedItemDuplicateGuesser.java
@@ -31,7 +31,7 @@ public class FeedItemDuplicateGuesser {
&& mimeTypeLooksSimilar(media1, media2);
}
- private static boolean sameAndNotEmpty(String string1, String string2) {
+ public static boolean sameAndNotEmpty(String string1, String string2) {
if (TextUtils.isEmpty(string1) || TextUtils.isEmpty(string2)) {
return false;
}