diff options
author | H. Lehmann <ByteHamster@users.noreply.github.com> | 2020-03-26 17:17:52 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-03-26 17:17:52 +0100 |
commit | 11ef58f5920cadadeb8e3f34fce14ce8ff005dc8 (patch) | |
tree | 940b22047564d71f76e8a2340b1c2d0821ae2a15 /app/src/main/java/de/danoeh/antennapod/dialog/SkipPreferenceDialog.java | |
parent | 9637734000d399ffaa8739f5a3f1c1624b2a6a37 (diff) | |
parent | b4b2b45247a92e7f7e43ab224598ef646608c7be (diff) | |
download | AntennaPod-11ef58f5920cadadeb8e3f34fce14ce8ff005dc8.zip |
Merge branch 'develop' into NotificationForAutoDownloads
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.java | 58 |
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 + } +} |