Validate RSS URL before closing the AddViaUrlDialog (#8217)

This commit is contained in:
anotherHoffmann
2026-01-17 00:15:49 +01:00
committed by GitHub
parent eaf2801198
commit 706ca593c4
3 changed files with 18 additions and 3 deletions

View File

@ -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) {

View File

@ -7,6 +7,7 @@
android:padding="16dp">
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/textInputLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"