summaryrefslogtreecommitdiff
path: root/src/de
diff options
context:
space:
mode:
authordaniel oeh <daniel.oeh@gmail.com>2014-05-17 17:24:52 +0200
committerdaniel oeh <daniel.oeh@gmail.com>2014-05-17 17:24:52 +0200
commitc1c3dc593e928d70ede348c4d097272c4df4947d (patch)
treedca2b97e77c94d81d5f7b0d03dda61838c9dfd95 /src/de
parent4ef7fccf75aa5ccac88c4735f830b4fa167b8777 (diff)
downloadAntennaPod-c1c3dc593e928d70ede348c4d097272c4df4947d.zip
Treat feeds with same title and different download URLs as different feeds. fixes #101
Diffstat (limited to 'src/de')
-rw-r--r--src/de/danoeh/antennapod/feed/Feed.java2
-rw-r--r--src/de/danoeh/antennapod/service/download/DownloadService.java1
-rw-r--r--src/de/danoeh/antennapod/storage/DBTasks.java20
-rw-r--r--src/de/danoeh/antennapod/storage/DownloadRequester.java2
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);