diff options
author | Martin Fietz <Martin.Fietz@gmail.com> | 2015-10-03 18:20:59 +0200 |
---|---|---|
committer | Martin Fietz <Martin.Fietz@gmail.com> | 2015-10-03 18:39:41 +0200 |
commit | 844b54f26d6d9dbe33791957acc7f827a3644e4c (patch) | |
tree | d84d226a76700c8766670485e608ceae562827ff /core/src/main/java/de/danoeh | |
parent | 18e409523ba479a3db98eb1fddc50b69e3cbb30e (diff) | |
download | AntennaPod-844b54f26d6d9dbe33791957acc7f827a3644e4c.zip |
Drawer: Sort feeds by most recent publication date
Diffstat (limited to 'core/src/main/java/de/danoeh')
-rw-r--r-- | core/src/main/java/de/danoeh/antennapod/core/preferences/UserPreferences.java | 1 | ||||
-rw-r--r-- | core/src/main/java/de/danoeh/antennapod/core/storage/DBReader.java | 17 |
2 files changed, 17 insertions, 1 deletions
diff --git a/core/src/main/java/de/danoeh/antennapod/core/preferences/UserPreferences.java b/core/src/main/java/de/danoeh/antennapod/core/preferences/UserPreferences.java index c0e53842f..59f8e29e1 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/preferences/UserPreferences.java +++ b/core/src/main/java/de/danoeh/antennapod/core/preferences/UserPreferences.java @@ -98,6 +98,7 @@ public class UserPreferences { private static int EPISODE_CACHE_SIZE_UNLIMITED = -1; public static int FEED_ORDER_COUNTER = 0; public static int FEED_ORDER_ALPHABETICAL = 1; + public static int FEED_ORDER_LAST_UPDATE = 2; public static int FEED_COUNTER_SHOW_NEW_UNPLAYED_SUM = 0; public static int FEED_COUNTER_SHOW_NEW = 1; public static int FEED_COUNTER_SHOW_UNPLAYED = 2; diff --git a/core/src/main/java/de/danoeh/antennapod/core/storage/DBReader.java b/core/src/main/java/de/danoeh/antennapod/core/storage/DBReader.java index d95e4ff02..061ce0634 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/storage/DBReader.java +++ b/core/src/main/java/de/danoeh/antennapod/core/storage/DBReader.java @@ -8,6 +8,7 @@ import org.apache.commons.lang3.StringUtils; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; +import java.util.Date; import java.util.List; import de.danoeh.antennapod.core.feed.Chapter; @@ -947,13 +948,27 @@ public final class DBReader { return 1; } }; - } else { + } else if(feedOrder == UserPreferences.FEED_ORDER_ALPHABETICAL) { comparator = (lhs, rhs) -> { if(lhs.getTitle() == null) { return 1; } return lhs.getTitle().compareTo(rhs.getTitle()); }; + } else { + comparator = (lhs, rhs) -> { + if(lhs.getItems() == null || lhs.getItems().size() == 0) { + List<FeedItem> items = DBReader.getFeedItemList(lhs); + lhs.setItems(items); + } + if(rhs.getItems() == null || rhs.getItems().size() == 0) { + List<FeedItem> items = DBReader.getFeedItemList(rhs); + rhs.setItems(items); + } + Date d1 = lhs.getMostRecentItem().getPubDate(); + Date d2 = rhs.getMostRecentItem().getPubDate(); + return d2.compareTo(d1); + }; } Collections.sort(feeds, comparator); |