summaryrefslogtreecommitdiff
path: root/app/src/main/java/de/danoeh/antennapod/dialog/SkipPreferenceDialog.java
diff options
context:
space:
mode:
authorByteHamster <info@bytehamster.com>2020-03-23 00:21:41 +0100
committerByteHamster <info@bytehamster.com>2020-03-23 00:21:41 +0100
commit8cd29de2f4583e6343879012ea8ba63f865adeec (patch)
tree6f031982ef8d39c5ebeb7a056f3e0f97ae41a9a6 /app/src/main/java/de/danoeh/antennapod/dialog/SkipPreferenceDialog.java
parent64f1af0d6b01d85d9d4cf14ff21227714a478737 (diff)
downloadAntennaPod-8cd29de2f4583e6343879012ea8ba63f865adeec.zip
Extracted skip preference dialog
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod/dialog/SkipPreferenceDialog.java')
-rw-r--r--app/src/main/java/de/danoeh/antennapod/dialog/SkipPreferenceDialog.java58
1 files changed, 58 insertions, 0 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/dialog/SkipPreferenceDialog.java b/app/src/main/java/de/danoeh/antennapod/dialog/SkipPreferenceDialog.java
new file mode 100644
index 000000000..7bb8f5ad6
--- /dev/null
+++ b/app/src/main/java/de/danoeh/antennapod/dialog/SkipPreferenceDialog.java
@@ -0,0 +1,58 @@
+package de.danoeh.antennapod.dialog;
+
+import android.content.Context;
+import android.widget.TextView;
+import androidx.appcompat.app.AlertDialog;
+import de.danoeh.antennapod.R;
+import de.danoeh.antennapod.core.preferences.UserPreferences;
+
+/**
+ * Shows the dialog that allows setting the skip time.
+ */
+public class SkipPreferenceDialog {
+ public static void showSkipPreference(Context context, SkipDirection direction, TextView textView) {
+ int checked = 0;
+
+ int skipSecs;
+ if (direction == SkipDirection.SKIP_FORWARD) {
+ skipSecs = UserPreferences.getFastForwardSecs();
+ } else {
+ skipSecs = UserPreferences.getRewindSecs();
+ }
+
+ final int[] values = context.getResources().getIntArray(R.array.seek_delta_values);
+ final String[] choices = new String[values.length];
+ for (int i = 0; i < values.length; i++) {
+ if (skipSecs == values[i]) {
+ checked = i;
+ }
+ choices[i] = values[i] + " " + context.getString(R.string.time_seconds);
+ }
+
+ AlertDialog.Builder builder = new AlertDialog.Builder(context);
+ builder.setTitle(direction == SkipDirection.SKIP_FORWARD ? R.string.pref_fast_forward : R.string.pref_rewind);
+ builder.setSingleChoiceItems(choices, checked, null);
+ builder.setNegativeButton(R.string.cancel_label, null);
+ builder.setPositiveButton(R.string.confirm_label, (dialog, which) -> {
+ int choice = ((AlertDialog) dialog).getListView().getCheckedItemPosition();
+ if (choice < 0 || choice >= values.length) {
+ System.err.printf("Choice in showSkipPreference is out of bounds %d", choice);
+ } else {
+ int seconds = values[choice];
+ if (direction == SkipDirection.SKIP_FORWARD) {
+ UserPreferences.setFastForwardSecs(seconds);
+ } else {
+ UserPreferences.setRewindSecs(seconds);
+ }
+ if (textView != null) {
+ textView.setText(String.valueOf(seconds));
+ }
+ }
+ });
+ builder.create().show();
+ }
+
+ public enum SkipDirection {
+ SKIP_FORWARD, SKIP_REWIND
+ }
+}