summaryrefslogtreecommitdiff
path: root/app/src/main/java/de/danoeh/antennapod/fragment/preferences
diff options
context:
space:
mode:
authorseeto <65185819+peakvalleytech@users.noreply.github.com>2021-08-23 14:46:38 -0700
committerGitHub <noreply@github.com>2021-08-23 23:46:38 +0200
commiteacc90af299220c60fd504ef7970775aa344b44c (patch)
tree371df8b11c5c1e14515e662963ce3f61438a8bac /app/src/main/java/de/danoeh/antennapod/fragment/preferences
parent91967409cb9399637f7a7b6eef52c039c1145ef3 (diff)
downloadAntennaPod-eacc90af299220c60fd504ef7970775aa344b44c.zip
Feed multi select (#5261)
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod/fragment/preferences')
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/preferences/dialog/PreferenceListDialog.java49
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/preferences/dialog/PreferenceSwitchDialog.java57
2 files changed, 106 insertions, 0 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/preferences/dialog/PreferenceListDialog.java b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/dialog/PreferenceListDialog.java
new file mode 100644
index 000000000..d5c487d1d
--- /dev/null
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/dialog/PreferenceListDialog.java
@@ -0,0 +1,49 @@
+package de.danoeh.antennapod.fragment.preferences.dialog;
+
+import android.content.Context;
+
+import androidx.appcompat.app.AlertDialog;
+
+import de.danoeh.antennapod.R;
+
+public class PreferenceListDialog {
+ protected Context context;
+ private String title;
+ private OnPreferenceChangedListener onPreferenceChangedListener;
+ private int selectedPos = 0;
+
+ public PreferenceListDialog(Context context, String title) {
+ this.context = context;
+ this.title = title;
+ }
+
+ public interface OnPreferenceChangedListener {
+ /**
+ * Notified when user confirms preference
+ *
+ * @param pos The index of the item that was selected
+ */
+
+ void preferenceChanged(int pos);
+ }
+
+ public void openDialog(String[] items) {
+
+ AlertDialog.Builder builder = new AlertDialog.Builder(context);
+ builder.setTitle(title);
+ builder.setSingleChoiceItems(items, selectedPos, (dialog, which) -> {
+ selectedPos = which;
+ });
+ builder.setPositiveButton(R.string.confirm_label, (dialog, which) -> {
+ if (onPreferenceChangedListener != null && selectedPos >= 0) {
+ onPreferenceChangedListener.preferenceChanged(selectedPos);
+ }
+ });
+ builder.setNegativeButton(R.string.cancel_label, null);
+ builder.create().show();
+ }
+
+ public void setOnPreferenceChangedListener(OnPreferenceChangedListener onPreferenceChangedListener) {
+ this.onPreferenceChangedListener = onPreferenceChangedListener;
+ }
+}
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/preferences/dialog/PreferenceSwitchDialog.java b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/dialog/PreferenceSwitchDialog.java
new file mode 100644
index 000000000..cc7c92194
--- /dev/null
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/dialog/PreferenceSwitchDialog.java
@@ -0,0 +1,57 @@
+package de.danoeh.antennapod.fragment.preferences.dialog;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+
+import androidx.appcompat.app.AlertDialog;
+import androidx.appcompat.widget.SwitchCompat;
+
+import de.danoeh.antennapod.R;
+
+public class PreferenceSwitchDialog {
+ protected Context context;
+ private String title;
+ private String text;
+ private OnPreferenceChangedListener onPreferenceChangedListener;
+
+ public PreferenceSwitchDialog(Context context, String title, String text) {
+ this.context = context;
+ this.title = title;
+ this.text = text;
+ }
+
+ public interface OnPreferenceChangedListener {
+ /**
+ * Notified when user confirms preference
+ *
+ * @param enabled The preference
+ */
+
+ void preferenceChanged(boolean enabled);
+ }
+
+ public void openDialog() {
+
+ AlertDialog.Builder builder = new AlertDialog.Builder(context);
+ builder.setTitle(title);
+
+ LayoutInflater inflater = LayoutInflater.from(this.context);
+ View layout = inflater.inflate(R.layout.dialog_switch_preference, null, false);
+ SwitchCompat switchButton = layout.findViewById(R.id.dialogSwitch);
+ switchButton.setText(text);
+ builder.setView(layout);
+
+ builder.setPositiveButton(R.string.confirm_label, (dialog, which) -> {
+ if (onPreferenceChangedListener != null) {
+ onPreferenceChangedListener.preferenceChanged(switchButton.isChecked());
+ }
+ });
+ builder.setNegativeButton(R.string.cancel_label, null);
+ builder.create().show();
+ }
+
+ public void setOnPreferenceChangedListener(OnPreferenceChangedListener onPreferenceChangedListener) {
+ this.onPreferenceChangedListener = onPreferenceChangedListener;
+ }
+}