From 7f242cd674a950c659fa7d88d7816598b461946f Mon Sep 17 00:00:00 2001 From: M66B Date: Fri, 22 Aug 2025 07:46:26 +0200 Subject: [PATCH] Friendly unsubscribe error message --- .../faircode/email/FragmentDialogUnsubscribe.java | 15 +++++++++------ app/src/main/res/values/strings.xml | 1 + 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/FragmentDialogUnsubscribe.java b/app/src/main/java/eu/faircode/email/FragmentDialogUnsubscribe.java index 13857a4b52..4956a322bb 100644 --- a/app/src/main/java/eu/faircode/email/FragmentDialogUnsubscribe.java +++ b/app/src/main/java/eu/faircode/email/FragmentDialogUnsubscribe.java @@ -108,12 +108,10 @@ public class FragmentDialogUnsubscribe extends FragmentDialogBase { connection.getOutputStream().write(request.getBytes()); int status = connection.getResponseCode(); - if (status >= 400) { - String error = "Error " + status + ": " + connection.getResponseMessage(); + if (status >= 300) { + String error = status + ": " + connection.getResponseMessage(); Log.i("Unsubscribe error=" + error); - InputStream stream = connection.getErrorStream(); - String detail = (stream == null || status == 404 ? null : Helper.readStream(stream)); - throw new IOException(error + " " + detail); + throw new IllegalArgumentException(error); } else Log.i("Unsubscribe status=" + status); @@ -132,7 +130,12 @@ public class FragmentDialogUnsubscribe extends FragmentDialogBase { @Override protected void onException(Bundle args, Throwable ex) { dialog.dismiss(); - Log.unexpectedError(getParentFragmentManager(), ex); + if (ex instanceof IllegalArgumentException) + ToastEx.makeText(context, + context.getString(R.string.title_unsubscribe_error, ex.getMessage()), + Toast.LENGTH_LONG).show(); + else + Log.unexpectedError(getParentFragmentManager(), ex); } }.execute(FragmentDialogUnsubscribe.this, args, "unsubscribe"); } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index a719a59072..71c35ef824 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1639,6 +1639,7 @@ Keywords Labels (Gmail only) Unsubscribe + The unsubscribe link in the message does not work. Error %1$s Create rule Not spam Edit subject …