diff options
author | Tony Tam <engineer.tonytam@pm.me> | 2020-04-01 03:44:58 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-01 12:44:58 +0200 |
commit | ea58748b22288ba8f4e372ed4801f242185e593c (patch) | |
tree | 58b3ffce9d013a9627b69eccecc705194c41a305 /app/src/main/java/de/danoeh | |
parent | eae200b0dcbd43e5d136180558925d24983a2484 (diff) | |
download | AntennaPod-ea58748b22288ba8f4e372ed4801f242185e593c.zip |
Use AlertDialog for episode filters (#3981)
Diffstat (limited to 'app/src/main/java/de/danoeh')
-rw-r--r-- | app/src/main/java/de/danoeh/antennapod/dialog/EpisodeFilterDialog.java | 63 |
1 files changed, 26 insertions, 37 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/dialog/EpisodeFilterDialog.java b/app/src/main/java/de/danoeh/antennapod/dialog/EpisodeFilterDialog.java index ba778be56..eb33da037 100644 --- a/app/src/main/java/de/danoeh/antennapod/dialog/EpisodeFilterDialog.java +++ b/app/src/main/java/de/danoeh/antennapod/dialog/EpisodeFilterDialog.java @@ -1,38 +1,33 @@ package de.danoeh.antennapod.dialog; -import android.app.Dialog; import android.content.Context; -import android.os.Bundle; -import android.widget.Button; +import android.view.View; import android.widget.EditText; import android.widget.RadioButton; + +import androidx.appcompat.app.AlertDialog; + import de.danoeh.antennapod.R; import de.danoeh.antennapod.core.feed.FeedFilter; /** * Displays a dialog with a text box for filtering episodes and two radio buttons for exclusion/inclusion */ -public abstract class EpisodeFilterDialog extends Dialog { +public abstract class EpisodeFilterDialog extends AlertDialog.Builder { private final FeedFilter initialFilter; public EpisodeFilterDialog(Context context, FeedFilter filter) { - super(context); - this.initialFilter = filter; - } - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.episode_filter_dialog); - final EditText etxtEpisodeFilterText = findViewById(R.id.etxtEpisodeFilterText); - final RadioButton radioInclude = findViewById(R.id.radio_filter_include); - final RadioButton radioExclude = findViewById(R.id.radio_filter_exclude); - final Button butConfirm = findViewById(R.id.butConfirm); - final Button butCancel = findViewById(R.id.butCancel); + super(context); + initialFilter = filter; setTitle(R.string.episode_filters_label); - setOnCancelListener(dialog -> onCancelled()); + View rootView = View.inflate(context, R.layout.episode_filter_dialog, null); + setView(rootView); + + final EditText etxtEpisodeFilterText = rootView.findViewById(R.id.etxtEpisodeFilterText); + final RadioButton radioInclude = rootView.findViewById(R.id.radio_filter_include); + final RadioButton radioExclude = rootView.findViewById(R.id.radio_filter_exclude); if (initialFilter.includeOnly()) { radioInclude.setChecked(true); @@ -46,25 +41,19 @@ public abstract class EpisodeFilterDialog extends Dialog { etxtEpisodeFilterText.setText(""); } - - butCancel.setOnClickListener(v -> cancel()); - butConfirm.setOnClickListener(v -> { - - String includeString = ""; - String excludeString = ""; - if (radioInclude.isChecked()) { - includeString = etxtEpisodeFilterText.getText().toString(); - } else { - excludeString = etxtEpisodeFilterText.getText().toString(); - } - - onConfirmed(new FeedFilter(includeString, excludeString)); - dismiss(); - }); - } - - protected void onCancelled() { - + setNegativeButton(R.string.cancel_label, null); + setPositiveButton(R.string.confirm_label, (dialog, which) -> { + String includeString = ""; + String excludeString = ""; + if (radioInclude.isChecked()) { + includeString = etxtEpisodeFilterText.getText().toString(); + } else { + excludeString = etxtEpisodeFilterText.getText().toString(); + } + + onConfirmed(new FeedFilter(includeString, excludeString)); + } + ); } protected abstract void onConfirmed(FeedFilter filter); |