diff options
-rw-r--r-- | app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java | 14 | ||||
-rw-r--r-- | app/src/main/res/menu/queue.xml | 37 | ||||
-rw-r--r-- | core/src/main/java/de/danoeh/antennapod/core/util/QueueSorter.java | 18 | ||||
-rw-r--r-- | core/src/main/res/values/strings.xml | 3 |
4 files changed, 50 insertions, 22 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java index 08e681c99..ee9390929 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java @@ -304,11 +304,11 @@ public class QueueFragment extends Fragment { }; conDialog.createNewDialog().show(); return true; - case R.id.queue_sort_alpha_asc: - QueueSorter.sort(getActivity(), QueueSorter.Rule.ALPHA_ASC, true); + case R.id.queue_sort_episode_title_asc: + QueueSorter.sort(getActivity(), QueueSorter.Rule.EPISODE_TITLE_ASC, true); return true; - case R.id.queue_sort_alpha_desc: - QueueSorter.sort(getActivity(), QueueSorter.Rule.ALPHA_DESC, true); + case R.id.queue_sort_episode_title_desc: + QueueSorter.sort(getActivity(), QueueSorter.Rule.EPISODE_TITLE_DESC, true); return true; case R.id.queue_sort_date_asc: QueueSorter.sort(getActivity(), QueueSorter.Rule.DATE_ASC, true); @@ -322,6 +322,12 @@ public class QueueFragment extends Fragment { case R.id.queue_sort_duration_desc: QueueSorter.sort(getActivity(), QueueSorter.Rule.DURATION_DESC, true); return true; + case R.id.queue_sort_feed_title_asc: + QueueSorter.sort(getActivity(), QueueSorter.Rule.FEED_TITLE_ASC, true); + return true; + case R.id.queue_sort_feed_title_desc: + QueueSorter.sort(getActivity(), QueueSorter.Rule.FEED_TITLE_DESC, true); + return true; default: return false; } diff --git a/app/src/main/res/menu/queue.xml b/app/src/main/res/menu/queue.xml index 01a11b10e..a5fe85865 100644 --- a/app/src/main/res/menu/queue.xml +++ b/app/src/main/res/menu/queue.xml @@ -36,47 +36,60 @@ <menu> <item - android:id="@+id/queue_sort_alpha" - android:title="@string/alpha"> + android:id="@+id/queue_sort_date" + android:title="@string/date"> <menu> <item - android:id="@+id/queue_sort_alpha_asc" + android:id="@+id/queue_sort_date_asc" android:title="@string/ascending"/> <item - android:id="@+id/queue_sort_alpha_desc" + android:id="@+id/queue_sort_date_desc" android:title="@string/descending"/> </menu> </item> <item - android:id="@+id/queue_sort_date" - android:title="@string/date"> + android:id="@+id/queue_sort_duration" + android:title="@string/duration"> <menu> <item - android:id="@+id/queue_sort_date_asc" + android:id="@+id/queue_sort_duration_asc" android:title="@string/ascending"/> <item - android:id="@+id/queue_sort_date_desc" + android:id="@+id/queue_sort_duration_desc" android:title="@string/descending"/> </menu> </item> <item - android:id="@+id/queue_sort_duration" - android:title="@string/duration"> + android:id="@+id/queue_sort_episode_title" + android:title="@string/episode_title"> <menu> <item - android:id="@+id/queue_sort_duration_asc" + android:id="@+id/queue_sort_episode_title_asc" android:title="@string/ascending"/> <item - android:id="@+id/queue_sort_duration_desc" + android:id="@+id/queue_sort_episode_title_desc" android:title="@string/descending"/> </menu> </item> + <item + android:id="@+id/queue_sort_feed_title" + android:title="@string/feed_title"> + + <menu> + <item + android:id="@+id/queue_sort_feed_title_asc" + android:title="@string/ascending"/> + <item + android:id="@+id/queue_sort_feed_title_desc" + android:title="@string/descending"/> + </menu> + </item> </menu> </item> diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/QueueSorter.java b/core/src/main/java/de/danoeh/antennapod/core/util/QueueSorter.java index a17ecb124..c3b4c0e15 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/util/QueueSorter.java +++ b/core/src/main/java/de/danoeh/antennapod/core/util/QueueSorter.java @@ -13,22 +13,24 @@ import de.danoeh.antennapod.core.storage.DBWriter; */ public class QueueSorter { public enum Rule { - ALPHA_ASC, - ALPHA_DESC, + EPISODE_TITLE_ASC, + EPISODE_TITLE_DESC, DATE_ASC, DATE_DESC, DURATION_ASC, - DURATION_DESC + DURATION_DESC, + FEED_TITLE_ASC, + FEED_TITLE_DESC } public static void sort(final Context context, final Rule rule, final boolean broadcastUpdate) { Comparator<FeedItem> comparator = null; switch (rule) { - case ALPHA_ASC: + case EPISODE_TITLE_ASC: comparator = (f1, f2) -> f1.getTitle().compareTo(f2.getTitle()); break; - case ALPHA_DESC: + case EPISODE_TITLE_DESC: comparator = (f1, f2) -> f2.getTitle().compareTo(f1.getTitle()); break; case DATE_ASC: @@ -60,6 +62,12 @@ public class QueueSorter { return -1 * (duration1 - duration2); }; break; + case FEED_TITLE_ASC: + comparator = (f1, f2) -> f1.getFeed().getTitle().compareTo(f2.getFeed().getTitle()); + break; + case FEED_TITLE_DESC: + comparator = (f1, f2) -> f2.getFeed().getTitle().compareTo(f1.getFeed().getTitle()); + break; default: } diff --git a/core/src/main/res/values/strings.xml b/core/src/main/res/values/strings.xml index 64beedee7..60e2daa7d 100644 --- a/core/src/main/res/values/strings.xml +++ b/core/src/main/res/values/strings.xml @@ -231,9 +231,10 @@ <string name="move_to_top_label">Move to top</string> <string name="move_to_bottom_label">Move to bottom</string> <string name="sort">Sort</string> - <string name="alpha">Alphabetically</string> <string name="date">Date</string> <string name="duration">Duration</string> + <string name="episode_title">Episode title</string> + <string name="feed_title">Feed title</string> <string name="ascending">Ascending</string> <string name="descending">Descending</string> <string name="clear_queue_confirmation_msg">Please confirm that you want to clear the queue of ALL of the episodes in it</string> |