diff options
Diffstat (limited to 'app')
-rw-r--r-- | app/src/main/java/de/danoeh/antennapod/dialog/EpisodeFilterDialog.java | 63 | ||||
-rw-r--r-- | app/src/main/res/layout/episode_filter_dialog.xml | 107 |
2 files changed, 52 insertions, 118 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); diff --git a/app/src/main/res/layout/episode_filter_dialog.xml b/app/src/main/res/layout/episode_filter_dialog.xml index 8263cfc09..43d074bfb 100644 --- a/app/src/main/res/layout/episode_filter_dialog.xml +++ b/app/src/main/res/layout/episode_filter_dialog.xml @@ -2,94 +2,39 @@ <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" - android:orientation="vertical"> + android:orientation="vertical" + android:padding="16dp"> - <LinearLayout - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:orientation="vertical" - android:padding="16dp"> - - <RadioGroup - android:id="@+id/radio_filter_group" - android:layout_width="fill_parent" - android:layout_height="wrap_content" - android:orientation="vertical"> - - <RadioButton - android:id="@+id/radio_filter_include" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:text="@string/episode_filters_include" /> - - <RadioButton - android:id="@+id/radio_filter_exclude" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:text="@string/episode_filters_exclude" /> - </RadioGroup> - - <EditText - android:id="@+id/etxtEpisodeFilterText" - android:layout_width="fill_parent" - android:layout_height="wrap_content" - android:layout_gravity="center" - android:lines="8" - android:minLines="1" - android:maxLines="20" - android:scrollbars="vertical" - android:hint="@string/episode_filters_hint" - android:focusable="true" - android:focusableInTouchMode="true" - android:cursorVisible="true" /> - </LinearLayout> - - <RelativeLayout - android:id="@+id/footer" + <RadioGroup + android:id="@+id/radio_filter_group" android:layout_width="fill_parent" - android:layout_height="48dp"> - - <View - android:layout_width="match_parent" - android:layout_height="1dip" - android:layout_alignParentTop="true" - android:background="?android:attr/dividerVertical" /> - - <View - android:id="@+id/horizontal_divider" - android:layout_width="1dip" - android:layout_height="fill_parent" - android:layout_alignParentTop="true" - android:layout_centerHorizontal="true" - android:layout_marginBottom="4dp" - android:layout_marginTop="4dp" - android:background="?android:attr/dividerVertical" /> + android:layout_height="wrap_content" + android:orientation="vertical"> - <Button - android:id="@+id/butCancel" + <RadioButton + android:id="@+id/radio_filter_include" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_alignParentBottom="true" - android:layout_alignParentLeft="true" - android:layout_alignParentStart="true" - android:layout_alignParentTop="true" - android:layout_toLeftOf="@id/horizontal_divider" - android:layout_toStartOf="@id/horizontal_divider" - android:background="?android:attr/selectableItemBackground" - android:text="@string/cancel_label" /> + android:text="@string/episode_filters_include" /> - <Button - android:id="@+id/butConfirm" + <RadioButton + android:id="@+id/radio_filter_exclude" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_alignParentBottom="true" - android:layout_alignParentRight="true" - android:layout_alignParentEnd="true" - android:layout_alignParentTop="true" - android:layout_toRightOf="@id/horizontal_divider" - android:layout_toEndOf="@id/horizontal_divider" - android:background="?android:attr/selectableItemBackground" - android:text="@string/confirm_label" /> - </RelativeLayout> + android:text="@string/episode_filters_exclude" /> + </RadioGroup> + <EditText + android:id="@+id/etxtEpisodeFilterText" + android:layout_width="fill_parent" + android:layout_height="wrap_content" + android:layout_gravity="center" + android:lines="8" + android:minLines="1" + android:maxLines="20" + android:scrollbars="vertical" + android:hint="@string/episode_filters_hint" + android:focusable="true" + android:focusableInTouchMode="true" + android:cursorVisible="true" /> </LinearLayout> |