From 706ca593c4a246d6e331ac3118d042a64aad4090 Mon Sep 17 00:00:00 2001 From: anotherHoffmann <33728721+anotherHoffmann@users.noreply.github.com> Date: Sat, 17 Jan 2026 00:15:49 +0100 Subject: [PATCH] Validate RSS URL before closing the AddViaUrlDialog (#8217) --- .../antennapod/ui/screen/AddFeedFragment.java | 19 ++++++++++++++++--- app/src/main/res/layout/edit_text_dialog.xml | 1 + ui/i18n/src/main/res/values/strings.xml | 1 + 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/de/danoeh/antennapod/ui/screen/AddFeedFragment.java b/app/src/main/java/de/danoeh/antennapod/ui/screen/AddFeedFragment.java index 03049b45e..169a3a23e 100644 --- a/app/src/main/java/de/danoeh/antennapod/ui/screen/AddFeedFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/ui/screen/AddFeedFragment.java @@ -7,8 +7,10 @@ import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.Bundle; +import android.text.Editable; import android.text.InputType; import android.util.Log; +import android.util.Patterns; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -18,6 +20,7 @@ import androidx.activity.result.contract.ActivityResultContracts; import androidx.activity.result.contract.ActivityResultContracts.GetContent; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.appcompat.app.AlertDialog; import com.google.android.material.dialog.MaterialAlertDialogBuilder; import androidx.core.widget.NestedScrollView; @@ -145,10 +148,20 @@ public class AddFeedFragment extends Fragment { } } builder.setView(dialogBinding.getRoot()); - builder.setPositiveButton(R.string.confirm_label, - (dialog, which) -> addUrl(dialogBinding.textInput.getText().toString())); + builder.setPositiveButton(R.string.confirm_label, null); builder.setNegativeButton(R.string.cancel_label, null); - builder.show(); + AlertDialog alertDialog = builder.create(); + alertDialog.show(); + + alertDialog.getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener((view) -> { + Editable inputText = dialogBinding.textInput.getText(); + if (!inputText.toString().matches(Patterns.WEB_URL.pattern())) { + dialogBinding.textInputLayout.setError(getText(R.string.rss_address_invalid)); + return; + } + addUrl(inputText.toString()); + alertDialog.dismiss(); + }); } private void addUrl(String url) { diff --git a/app/src/main/res/layout/edit_text_dialog.xml b/app/src/main/res/layout/edit_text_dialog.xml index c6afd730d..1b372a3d9 100644 --- a/app/src/main/res/layout/edit_text_dialog.xml +++ b/app/src/main/res/layout/edit_text_dialog.xml @@ -7,6 +7,7 @@ android:padding="16dp"> Search fyyd Add podcast by RSS address RSS address + The RSS address you entered is not valid. Discover Hide You selected to hide suggestions.