diff options
author | seeto <65185819+peakvalleytech@users.noreply.github.com> | 2021-08-23 14:46:38 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-08-23 23:46:38 +0200 |
commit | eacc90af299220c60fd504ef7970775aa344b44c (patch) | |
tree | 371df8b11c5c1e14515e662963ce3f61438a8bac /app/src/main/java/de/danoeh/antennapod/fragment/preferences | |
parent | 91967409cb9399637f7a7b6eef52c039c1145ef3 (diff) | |
download | AntennaPod-eacc90af299220c60fd504ef7970775aa344b44c.zip |
Feed multi select (#5261)
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod/fragment/preferences')
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; + } +} |