diff options
author | Shom Bandopadhaya <shom@bandopadhaya.com> | 2022-01-04 10:26:59 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-01-04 11:26:59 +0100 |
commit | 8568226468e7377e273410847a97ebf8a1d7e5e7 (patch) | |
tree | 487879cce40c1dba0180d4041430bdde9f0cf26f /app/src/main/java | |
parent | 4f031c4e45cc2e83059da8bed55f23bca345320d (diff) | |
download | AntennaPod-8568226468e7377e273410847a97ebf8a1d7e5e7.zip |
Local feeds: add sort option for file name (#5629)
Co-authored-by: widlok <widlok@users.noreply.github.com>
Diffstat (limited to 'app/src/main/java')
-rw-r--r-- | app/src/main/java/de/danoeh/antennapod/dialog/IntraFeedSortDialog.java | 59 | ||||
-rw-r--r-- | app/src/main/java/de/danoeh/antennapod/menuhandler/FeedMenuHandler.java | 2 |
2 files changed, 39 insertions, 22 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/dialog/IntraFeedSortDialog.java b/app/src/main/java/de/danoeh/antennapod/dialog/IntraFeedSortDialog.java index 58f070046..40afddb6c 100644 --- a/app/src/main/java/de/danoeh/antennapod/dialog/IntraFeedSortDialog.java +++ b/app/src/main/java/de/danoeh/antennapod/dialog/IntraFeedSortDialog.java @@ -16,35 +16,52 @@ public abstract class IntraFeedSortDialog { @NonNull protected Context context; - public IntraFeedSortDialog(@NonNull Context context, @Nullable SortOrder sortOrder) { + private final String[] sortItems; + private final SortOrder[] sortValues; + + public IntraFeedSortDialog(@NonNull Context context, @Nullable SortOrder sortOrder, @NonNull boolean isLocalFeed) { this.context = context; this.currentSortOrder = sortOrder; + + if (isLocalFeed) { + sortItems = context.getResources().getStringArray(R.array.local_feed_episodes_sort_options); + final String[] localSortStringValues = + context.getResources().getStringArray(R.array.local_feed_episodes_sort_values); + sortValues = SortOrder.valuesOf(localSortStringValues); + } else { + sortItems = context.getResources().getStringArray(R.array.feed_episodes_sort_options); + final String[] commonSortStringValues = + context.getResources().getStringArray(R.array.feed_episodes_sort_values); + sortValues = SortOrder.valuesOf(commonSortStringValues); + } } public void openDialog() { - final String[] items = context.getResources().getStringArray(R.array.feed_episodes_sort_options); - final String[] valueStrs = context.getResources().getStringArray(R.array.feed_episodes_sort_values); - final SortOrder[] values = new SortOrder[valueStrs.length]; - for (int i = 0; i < valueStrs.length; i++) { - values[i] = SortOrder.valueOf(valueStrs[i]); - } + int idxCurrentSort = getCurrentSortOrderIndex(); - int idxCurrentSort = 0; - for (int i = 0; i < values.length; i++) { - if (currentSortOrder == values[i]) { - idxCurrentSort = i; - break; + AlertDialog.Builder builder = + new AlertDialog.Builder(context) + .setTitle(R.string.sort) + .setSingleChoiceItems(sortItems, idxCurrentSort, (dialog, idxNewSort) -> { + updateSort(sortValues[idxNewSort]); + dialog.dismiss(); + }) + .setNegativeButton(R.string.cancel_label, null); + builder.create().show(); + } + + /** + * Retrieves index of currentSortOrder index in values array. + * @return if currentSortOrder is found in array - returns index of that element, + * otherwise returns 0, the default sort option; + */ + private int getCurrentSortOrderIndex() { + for (int i = 0; i < sortValues.length; i++) { + if (currentSortOrder == sortValues[i]) { + return i; } } - - AlertDialog.Builder builder = new AlertDialog.Builder(context); - builder.setTitle(R.string.sort); - builder.setSingleChoiceItems(items, idxCurrentSort, (dialog, idxNewSort) -> { - updateSort(values[idxNewSort]); - dialog.dismiss(); - }); - builder.setNegativeButton(R.string.cancel_label, null); - builder.create().show(); + return 0; } protected abstract void updateSort(@NonNull SortOrder sortOrder); diff --git a/app/src/main/java/de/danoeh/antennapod/menuhandler/FeedMenuHandler.java b/app/src/main/java/de/danoeh/antennapod/menuhandler/FeedMenuHandler.java index fded5fb34..d4c7a838c 100644 --- a/app/src/main/java/de/danoeh/antennapod/menuhandler/FeedMenuHandler.java +++ b/app/src/main/java/de/danoeh/antennapod/menuhandler/FeedMenuHandler.java @@ -108,7 +108,7 @@ public class FeedMenuHandler { private static void showSortDialog(Context context, Feed selectedFeed) { - IntraFeedSortDialog sortDialog = new IntraFeedSortDialog(context, selectedFeed.getSortOrder()) { + IntraFeedSortDialog sortDialog = new IntraFeedSortDialog(context, selectedFeed.getSortOrder(), selectedFeed.isLocalFeed()) { @Override protected void updateSort(@NonNull SortOrder sortOrder) { selectedFeed.setSortOrder(sortOrder); |