summaryrefslogtreecommitdiff
path: root/core/src/main/java/de/danoeh
diff options
context:
space:
mode:
authorMartin Fietz <Martin.Fietz@gmail.com>2015-10-03 18:20:59 +0200
committerMartin Fietz <Martin.Fietz@gmail.com>2015-10-03 18:39:41 +0200
commit844b54f26d6d9dbe33791957acc7f827a3644e4c (patch)
treed84d226a76700c8766670485e608ceae562827ff /core/src/main/java/de/danoeh
parent18e409523ba479a3db98eb1fddc50b69e3cbb30e (diff)
downloadAntennaPod-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.java1
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/storage/DBReader.java17
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);