diff options
author | Tom Hennen <tom.hennen@gmail.com> | 2015-10-02 09:38:11 -0400 |
---|---|---|
committer | Tom Hennen <tom.hennen@gmail.com> | 2015-10-02 09:38:11 -0400 |
commit | c9c38a0f5af87b2e6776bd8e61f3f0530f9fbb6c (patch) | |
tree | 8ad6482965923a3a6e3e194164bda1e05462a1ea /core/src/main/java/de | |
parent | e61c7efde4c622a3ebc94fc655ab539265a77385 (diff) | |
download | AntennaPod-c9c38a0f5af87b2e6776bd8e61f3f0530f9fbb6c.zip |
Implemented tests for the various cleanup algorithms.
We also don't delete items that are in Favorites.
Diffstat (limited to 'core/src/main/java/de')
3 files changed, 24 insertions, 5 deletions
diff --git a/core/src/main/java/de/danoeh/antennapod/core/storage/APCleanupAlgorithm.java b/core/src/main/java/de/danoeh/antennapod/core/storage/APCleanupAlgorithm.java index b4fbdaea1..2b6a1ac65 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/storage/APCleanupAlgorithm.java +++ b/core/src/main/java/de/danoeh/antennapod/core/storage/APCleanupAlgorithm.java @@ -32,14 +32,16 @@ public class APCleanupAlgorithm extends EpisodeCleanupAlgorithm { public int performCleanup(Context context, int numberOfEpisodesToDelete) { List<FeedItem> candidates = new ArrayList<>(); List<FeedItem> downloadedItems = DBReader.getDownloadedItems(); - LongList queue = DBReader.getQueueIDList(); List<FeedItem> delete; Calendar cal = Calendar.getInstance(); cal.add(Calendar.DAY_OF_MONTH, -1 * numberOfDaysAfterPlayback); Date mostRecentDateForDeletion = cal.getTime(); for (FeedItem item : downloadedItems) { - if (item.hasMedia() && item.getMedia().isDownloaded() - && !queue.contains(item.getId()) && item.isPlayed()) { + if (item.hasMedia() + && item.getMedia().isDownloaded() + && !item.isTagged(FeedItem.TAG_QUEUE) + && item.isPlayed() + && !item.isTagged(FeedItem.TAG_FAVORITE)) { FeedMedia media = item.getMedia(); // make sure this candidate was played at least the proper amount of days prior // to now diff --git a/core/src/main/java/de/danoeh/antennapod/core/storage/APQueueCleanupAlgorithm.java b/core/src/main/java/de/danoeh/antennapod/core/storage/APQueueCleanupAlgorithm.java index 549b4e02c..234d6162c 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/storage/APQueueCleanupAlgorithm.java +++ b/core/src/main/java/de/danoeh/antennapod/core/storage/APQueueCleanupAlgorithm.java @@ -26,10 +26,12 @@ public class APQueueCleanupAlgorithm extends EpisodeCleanupAlgorithm { public int performCleanup(Context context, int numberOfEpisodesToDelete) { List<FeedItem> candidates = new ArrayList<>(); List<FeedItem> downloadedItems = DBReader.getDownloadedItems(); - LongList queue = DBReader.getQueueIDList(); List<FeedItem> delete; for (FeedItem item : downloadedItems) { - if (!queue.contains(item.getId())) { + if (item.hasMedia() + && item.getMedia().isDownloaded() + && !item.isTagged(FeedItem.TAG_QUEUE) + && !item.isTagged(FeedItem.TAG_FAVORITE)) { candidates.add(item); } } 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 9e20693a3..d55d4c231 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 @@ -790,6 +790,21 @@ public class PodDBAdapter { db.execSQL(sql); } + public void setFavorites(List<FeedItem> favorites) { + ContentValues values = new ContentValues(); + db.beginTransaction(); + db.delete(TABLE_NAME_FAVORITES, null, null); + for (int i = 0; i < favorites.size(); i++) { + FeedItem item = favorites.get(i); + values.put(KEY_ID, i); + values.put(KEY_FEEDITEM, item.getId()); + values.put(KEY_FEED, item.getFeed().getId()); + db.insertWithOnConflict(TABLE_NAME_FAVORITES, null, values, SQLiteDatabase.CONFLICT_REPLACE); + } + db.setTransactionSuccessful(); + db.endTransaction(); + } + /** * Adds the item to favorites */ |