diff options
author | H. Lehmann <ByteHamster@users.noreply.github.com> | 2019-10-25 11:40:18 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-10-25 11:40:18 +0200 |
commit | 57818ade3828e08ce24a1527b11d2bce5b2cf967 (patch) | |
tree | 4a353504378295357ba23962d04be770a0216a75 /app/src/main/java/de/danoeh/antennapod/dialog/IntraFeedSortDialog.java | |
parent | 2326f712621064d881c1ba9d13cdccda6e5043ea (diff) | |
parent | a047e34f8eab6cb4ae86907212429e6c2df9a196 (diff) | |
download | AntennaPod-57818ade3828e08ce24a1527b11d2bce5b2cf967.zip |
Merge branch 'develop' into more-eventbus-migration
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod/dialog/IntraFeedSortDialog.java')
-rw-r--r-- | app/src/main/java/de/danoeh/antennapod/dialog/IntraFeedSortDialog.java | 51 |
1 files changed, 51 insertions, 0 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 new file mode 100644 index 000000000..2ee716c7c --- /dev/null +++ b/app/src/main/java/de/danoeh/antennapod/dialog/IntraFeedSortDialog.java @@ -0,0 +1,51 @@ +package de.danoeh.antennapod.dialog; + +import android.content.Context; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.appcompat.app.AlertDialog; + +import de.danoeh.antennapod.R; +import de.danoeh.antennapod.core.util.SortOrder; + +public abstract class IntraFeedSortDialog { + + @Nullable + protected SortOrder currentSortOrder; + @NonNull + protected Context context; + + public IntraFeedSortDialog(@NonNull Context context, @Nullable SortOrder sortOrder) { + this.context = context; + this.currentSortOrder = sortOrder; + } + + 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 = -1; + for (int i = 0; i < values.length; i++) { + if (currentSortOrder == values[i]) { + idxCurrentSort = i; + break; + } + } + + 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(); + } + + protected abstract void updateSort(@NonNull SortOrder sortOrder); +} |