summaryrefslogtreecommitdiff
path: root/app/src/main/java/de/danoeh/antennapod/dialog
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod/dialog')
-rw-r--r--app/src/main/java/de/danoeh/antennapod/dialog/EpisodesApplyActionFragment.java4
-rw-r--r--app/src/main/java/de/danoeh/antennapod/dialog/SkipPreferenceDialog.java58
2 files changed, 60 insertions, 2 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/dialog/EpisodesApplyActionFragment.java b/app/src/main/java/de/danoeh/antennapod/dialog/EpisodesApplyActionFragment.java
index 9514ea5eb..40b8d5b84 100644
--- a/app/src/main/java/de/danoeh/antennapod/dialog/EpisodesApplyActionFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/dialog/EpisodesApplyActionFragment.java
@@ -313,7 +313,7 @@ public class EpisodesApplyActionFragment extends Fragment {
}
}
if (resId != 0) {
- Snackbar.make(getActivity().findViewById(R.id.content), resId, Snackbar.LENGTH_SHORT)
+ Snackbar.make(getActivity().findViewById(android.R.id.content), resId, Snackbar.LENGTH_SHORT)
.show();
return true;
} else {
@@ -469,7 +469,7 @@ public class EpisodesApplyActionFragment extends Fragment {
private void close(@PluralsRes int msgId, int numItems) {
if (numItems > 0) {
- Snackbar.make(getActivity().findViewById(R.id.content),
+ Snackbar.make(getActivity().findViewById(android.R.id.content),
getResources().getQuantityString(msgId, numItems, numItems),
Snackbar.LENGTH_LONG
)
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
+ }
+}