diff options
author | daniel oeh <daniel.oeh@gmail.com> | 2014-05-17 17:24:52 +0200 |
---|---|---|
committer | daniel oeh <daniel.oeh@gmail.com> | 2014-05-17 17:24:52 +0200 |
commit | c1c3dc593e928d70ede348c4d097272c4df4947d (patch) | |
tree | dca2b97e77c94d81d5f7b0d03dda61838c9dfd95 /src/de | |
parent | 4ef7fccf75aa5ccac88c4735f830b4fa167b8777 (diff) | |
download | AntennaPod-c1c3dc593e928d70ede348c4d097272c4df4947d.zip |
Treat feeds with same title and different download URLs as different feeds. fixes #101
Diffstat (limited to 'src/de')
4 files changed, 16 insertions, 9 deletions
diff --git a/src/de/danoeh/antennapod/feed/Feed.java b/src/de/danoeh/antennapod/feed/Feed.java index 9e423ff8b..f9da65e03 100644 --- a/src/de/danoeh/antennapod/feed/Feed.java +++ b/src/de/danoeh/antennapod/feed/Feed.java @@ -223,6 +223,8 @@ public class Feed extends FeedFile implements FlattrThing { public String getIdentifyingValue() { if (feedIdentifier != null && !feedIdentifier.isEmpty()) { return feedIdentifier; + } else if (download_url != null && !download_url.isEmpty()) { + return download_url; } else if (title != null && !title.isEmpty()) { return title; } else { diff --git a/src/de/danoeh/antennapod/service/download/DownloadService.java b/src/de/danoeh/antennapod/service/download/DownloadService.java index 2d82d8631..d06bc6760 100644 --- a/src/de/danoeh/antennapod/service/download/DownloadService.java +++ b/src/de/danoeh/antennapod/service/download/DownloadService.java @@ -648,6 +648,7 @@ public class DownloadService extends Service { Feed feed = new Feed(request.getSource(), new Date()); feed.setFile_url(request.getDestination()); + feed.setId(request.getFeedfileId()); feed.setDownloaded(true); feed.setPreferences(new FeedPreferences(0, true, request.getUsername(), request.getPassword())); diff --git a/src/de/danoeh/antennapod/storage/DBTasks.java b/src/de/danoeh/antennapod/storage/DBTasks.java index 92efeea62..49644af01 100644 --- a/src/de/danoeh/antennapod/storage/DBTasks.java +++ b/src/de/danoeh/antennapod/storage/DBTasks.java @@ -595,12 +595,16 @@ public final class DBTasks { return QueueAccess.IDListAccess(queue).contains(feedItemId); } - private static Feed searchFeedByIdentifyingValue(Context context, - String identifier) { - List<Feed> feeds = DBReader.getFeedList(context); - for (Feed feed : feeds) { - if (feed.getIdentifyingValue().equals(identifier)) { - return feed; + private static Feed searchFeedByIdentifyingValueOrID(Context context, + Feed feed) { + if (feed.getId() != 0) { + return DBReader.getFeed(context, feed.getId()); + } else { + List<Feed> feeds = DBReader.getFeedList(context); + for (Feed f : feeds) { + if (f.getIdentifyingValue().equals(feed.getIdentifyingValue())) { + return f; + } } } return null; @@ -632,8 +636,8 @@ public final class DBTasks { public static synchronized Feed updateFeed(final Context context, final Feed newFeed) { // Look up feed in the feedslist - final Feed savedFeed = searchFeedByIdentifyingValue(context, - newFeed.getIdentifyingValue()); + final Feed savedFeed = searchFeedByIdentifyingValueOrID(context, + newFeed); if (savedFeed == null) { if (BuildConfig.DEBUG) Log.d(TAG, diff --git a/src/de/danoeh/antennapod/storage/DownloadRequester.java b/src/de/danoeh/antennapod/storage/DownloadRequester.java index 714ad952f..7bf21352a 100644 --- a/src/de/danoeh/antennapod/storage/DownloadRequester.java +++ b/src/de/danoeh/antennapod/storage/DownloadRequester.java @@ -114,7 +114,7 @@ public class DownloadRequester { item.setDownload_url(URLChecker.prepareURL(item.getDownload_url())); DownloadRequest request = new DownloadRequest(dest.toString(), - item.getDownload_url(), item.getHumanReadableIdentifier(), + URLChecker.prepareURL(item.getDownload_url()), item.getHumanReadableIdentifier(), item.getId(), item.getTypeAsInt(), username, password, deleteOnFailure); download(context, request); |