diff options
author | Tom Hennen <TomHennen@users.noreply.github.com> | 2015-08-05 18:44:47 -0400 |
---|---|---|
committer | Tom Hennen <TomHennen@users.noreply.github.com> | 2015-08-05 18:44:47 -0400 |
commit | f13615d46ab45d82b9c1de28648934c9995fbb6a (patch) | |
tree | 371e5954cff0a04fdb08d11af96e8958a3ba3c09 /core/src | |
parent | c7d2975039d209556c5dc37a424549a4e9bba25c (diff) | |
parent | 224832300f4a8d0b42e257a23f0ae69957518a01 (diff) | |
download | AntennaPod-f13615d46ab45d82b9c1de28648934c9995fbb6a.zip |
Merge pull request #1062 from TomHennen/autodl_updates
Only autodownload queued and new items
Diffstat (limited to 'core/src')
3 files changed, 14 insertions, 9 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 19a710d24..4fdaf6843 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 @@ -325,6 +325,11 @@ public class DownloadService extends Service { cancelNotificationUpdater(); unregisterReceiver(cancelDownloadReceiver); + // TODO: I'm not sure this is actually needed. + // We could just invoke the autodownloadUndownloadeditems method + // and it would get everything it's supposed to. By sending it the + // items in newMediaFiles we're overriding the download algorithm, + // which is not something we should probably do. if (!newMediaFiles.isEmpty()) { Log.d(TAG, "newMediaFiles exist, autodownload them"); DBTasks.autodownloadUndownloadedItems(getApplicationContext(), @@ -783,7 +788,7 @@ public class DownloadService extends Service { if(item.getPubDate() == null) { Log.d(TAG, item.toString()); } - if (!item.isPlayed() && item.hasMedia() && !item.getMedia().isDownloaded()) { + if (item.isNew() && item.hasMedia() && !item.getMedia().isDownloaded()) { newMediaFiles.add(item.getMedia().getId()); } } diff --git a/core/src/main/java/de/danoeh/antennapod/core/storage/APDownloadAlgorithm.java b/core/src/main/java/de/danoeh/antennapod/core/storage/APDownloadAlgorithm.java index 0e6b23696..c2e971dce 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/storage/APDownloadAlgorithm.java +++ b/core/src/main/java/de/danoeh/antennapod/core/storage/APDownloadAlgorithm.java @@ -22,7 +22,7 @@ public class APDownloadAlgorithm implements AutomaticDownloadAlgorithm { private final APCleanupAlgorithm cleanupAlgorithm = new APCleanupAlgorithm(); /** - * Looks for undownloaded episodes in the queue or list of unread items and request a download if + * Looks for undownloaded episodes in the queue or list of new items and request a download if * 1. Network is available * 2. The device is charging or the user allows auto download on battery * 3. There is free space in the episode cache @@ -57,12 +57,12 @@ public class APDownloadAlgorithm implements AutomaticDownloadAlgorithm { candidates = DBReader.getFeedItems(context, mediaIds); } else { final List<FeedItem> queue = DBReader.getQueue(context); - final List<FeedItem> unreadItems = DBReader.getUnreadItemsList(context); - candidates = new ArrayList<FeedItem>(queue.size() + unreadItems.size()); + final List<FeedItem> newItems = DBReader.getNewItemsList(context); + candidates = new ArrayList<FeedItem>(queue.size() + newItems.size()); candidates.addAll(queue); - for(FeedItem unreadItem : unreadItems) { - if(candidates.contains(unreadItem) == false) { - candidates.add(unreadItem); + for(FeedItem newItem : newItems) { + if(candidates.contains(newItem) == false) { + candidates.add(newItem); } } } diff --git a/core/src/main/java/de/danoeh/antennapod/core/storage/PodDBAdapter.java b/core/src/main/java/de/danoeh/antennapod/core/storage/PodDBAdapter.java index f9ac39349..edb7598ab 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/storage/PodDBAdapter.java +++ b/core/src/main/java/de/danoeh/antennapod/core/storage/PodDBAdapter.java @@ -1709,9 +1709,9 @@ public class PodDBAdapter { db.execSQL("ALTER TABLE " + PodDBAdapter.TABLE_NAME_FEEDS + " ADD COLUMN " + PodDBAdapter.KEY_AUTO_DELETE_ACTION + " INTEGER DEFAULT 0"); } - if(oldVersion < 1030002) { + if(oldVersion < 1030005) { db.execSQL("UPDATE FeedItems SET auto_download=0 WHERE " + - "(read=1 OR id IN (SELECT id FROM FeedMedia WHERE position>0 OR downloaded=1)) " + + "(read=1 OR id IN (SELECT feeditem FROM FeedMedia WHERE position>0 OR downloaded=1)) " + "AND id NOT IN (SELECT feeditem FROM Queue)"); } EventBus.getDefault().post(ProgressEvent.end()); |