summaryrefslogtreecommitdiff
path: root/core/src/main
diff options
context:
space:
mode:
authororionlee <orionlee@yahoo.com>2019-10-17 11:44:00 -0700
committerorionlee <orionlee@yahoo.com>2019-10-20 15:21:46 -0700
commit1620d2954982195d2033444e227214dbcd90a245 (patch)
treec1762708e3a3e518afb17c52e6092ecdba995f92 /core/src/main
parentf1f91478b6057dbaaaa5255d14dfe254bdc10f1d (diff)
downloadAntennaPod-1620d2954982195d2033444e227214dbcd90a245.zip
Sort in Podcast screen - UI
Diffstat (limited to 'core/src/main')
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/feed/Feed.java14
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/feed/IntraFeedSortOrder.java31
-rw-r--r--core/src/main/res/values/arrays.xml19
3 files changed, 63 insertions, 1 deletions
diff --git a/core/src/main/java/de/danoeh/antennapod/core/feed/Feed.java b/core/src/main/java/de/danoeh/antennapod/core/feed/Feed.java
index 6a7c97b7b..8f3e3d1c3 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/feed/Feed.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/feed/Feed.java
@@ -1,9 +1,10 @@
package de.danoeh.antennapod.core.feed;
import android.database.Cursor;
-import androidx.annotation.Nullable;
import android.text.TextUtils;
+import androidx.annotation.Nullable;
+
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -87,6 +88,8 @@ public class Feed extends FeedFile implements ImageResource {
* Contains property strings. If such a property applies to a feed item, it is not shown in the feed list
*/
private FeedItemFilter itemfilter;
+ @Nullable
+ private IntraFeedSortOrder sortOrder;
/**
* This constructor is used for restoring a feed from the database.
@@ -523,6 +526,15 @@ public class Feed extends FeedFile implements ImageResource {
}
}
+ @Nullable
+ public IntraFeedSortOrder getSortOrder() {
+ return sortOrder;
+ }
+
+ public void setSortOrder(@Nullable IntraFeedSortOrder sortOrder) {
+ this.sortOrder = sortOrder;
+ }
+
public boolean hasLastUpdateFailed() {
return this.lastUpdateFailed;
}
diff --git a/core/src/main/java/de/danoeh/antennapod/core/feed/IntraFeedSortOrder.java b/core/src/main/java/de/danoeh/antennapod/core/feed/IntraFeedSortOrder.java
new file mode 100644
index 000000000..03a1b0e0c
--- /dev/null
+++ b/core/src/main/java/de/danoeh/antennapod/core/feed/IntraFeedSortOrder.java
@@ -0,0 +1,31 @@
+package de.danoeh.antennapod.core.feed;
+
+/**
+ * Provides sort orders to sort a list of episodes within a feed.
+ */
+public enum IntraFeedSortOrder {
+ DATE_OLD_NEW(1),
+ DATE_NEW_OLD(2),
+ EPISODE_TITLE_A_Z(3),
+ EPISODE_TITLE_Z_A(4),
+ DURATION_SHORT_LONG(5),
+ DURATION_LONG_SHORT(6);
+
+ public final int code;
+
+ IntraFeedSortOrder(int code) {
+ this.code = code;
+ }
+
+ /**
+ * Converts the string representation to its enum value. If the string value is unknown,
+ * the given default value is returned.
+ */
+ public static IntraFeedSortOrder parseWithDefault(String value, IntraFeedSortOrder defaultValue) {
+ try {
+ return valueOf(value);
+ } catch (IllegalArgumentException e) {
+ return defaultValue;
+ }
+ }
+}
diff --git a/core/src/main/res/values/arrays.xml b/core/src/main/res/values/arrays.xml
index 5e7eab1ea..2dd985d6a 100644
--- a/core/src/main/res/values/arrays.xml
+++ b/core/src/main/res/values/arrays.xml
@@ -254,6 +254,25 @@
<item>is_favorite</item>
</string-array>
+ <!-- sort for podcast screen, not for queue -->
+ <string-array name="feed_episodes_sort_options">
+ <item>@string/sort_date_new_old</item>
+ <item>@string/sort_date_old_new</item>
+ <item>@string/sort_title_a_z</item>
+ <item>@string/sort_title_z_a</item>
+ <item>@string/sort_duration_short_long</item>
+ <item>@string/sort_duration_long_short</item>
+ </string-array>
+
+ <string-array name="feed_episodes_sort_values">
+ <item>DATE_NEW_OLD</item>
+ <item>DATE_OLD_NEW</item>
+ <item>EPISODE_TITLE_A_Z</item>
+ <item>EPISODE_TITLE_Z_A</item>
+ <item>DURATION_SHORT_LONG</item>
+ <item>DURATION_LONG_SHORT</item>
+ </string-array>
+
<string-array name="image_cache_size_options">
<item>20 MiB</item>
<item>50 MiB</item>