From 06e276f2a97338bcc4e0f3dd9cc68f9aacdb4be4 Mon Sep 17 00:00:00 2001 From: M66B Date: Tue, 28 Nov 2023 13:48:09 +0100 Subject: [PATCH] Get error details --- .../java/eu/faircode/email/ActivityError.java | 44 +++++++++++++++---- app/src/main/java/eu/faircode/email/Core.java | 1 + .../eu/faircode/email/FragmentFolders.java | 1 + .../eu/faircode/email/ServiceSynchronize.java | 1 + 4 files changed, 39 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/ActivityError.java b/app/src/main/java/eu/faircode/email/ActivityError.java index c53635a913..19c4e4f527 100644 --- a/app/src/main/java/eu/faircode/email/ActivityError.java +++ b/app/src/main/java/eu/faircode/email/ActivityError.java @@ -19,6 +19,7 @@ package eu.faircode.email; Copyright 2018-2023 by Marcel Bokhorst (M66B) */ +import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.view.MenuItem; @@ -29,6 +30,8 @@ import android.widget.TextView; import androidx.core.text.method.LinkMovementMethodCompat; +import java.util.List; + public class ActivityError extends ActivityBase { static final int PI_ERROR = 1; static final int PI_ALERT = 2; @@ -83,8 +86,6 @@ public class ActivityError extends ActivityBase { long identity = intent.getLongExtra("identity", -1L); int protocol = intent.getIntExtra("protocol", -1); int auth_type = intent.getIntExtra("auth_type", -1); - String personal = intent.getStringExtra("personal"); - String address = intent.getStringExtra("address"); int faq = intent.getIntExtra("faq", -1); tvTitle.setText(title); @@ -106,8 +107,8 @@ public class ActivityError extends ActivityBase { startActivity(new Intent(ActivityError.this, ActivitySetup.class) .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK) .putExtra("target", "gmail") - .putExtra("personal", personal) - .putExtra("address", address)); + .putExtra("personal", intent.getStringExtra("personal")) + .putExtra("address", intent.getStringExtra("address"))); else if (auth_type == ServiceAuthenticator.AUTH_TYPE_OAUTH) { try { EmailProvider eprovider = EmailProvider.getProvider(ActivityError.this, provider); @@ -119,8 +120,8 @@ public class ActivityError extends ActivityBase { .putExtra("privacy", eprovider.oauth.privacy) .putExtra("askAccount", eprovider.oauth.askAccount) .putExtra("askTenant", eprovider.oauth.askTenant()) - .putExtra("personal", personal) - .putExtra("address", address)); + .putExtra("personal", intent.getStringExtra("personal")) + .putExtra("address", intent.getStringExtra("address"))); } catch (Throwable ex) { Log.e(ex); startActivity(new Intent(ActivityError.this, ActivitySetup.class) @@ -134,8 +135,8 @@ public class ActivityError extends ActivityBase { .putExtra("name", "Outlook") .putExtra("askAccount", true) .putExtra("askTenant", true) - .putExtra("personal", personal) - .putExtra("address", address)); + .putExtra("personal", intent.getStringExtra("personal")) + .putExtra("address", intent.getStringExtra("address"))); else startActivity(new Intent(ActivityError.this, ActivitySetup.class) .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK) @@ -165,5 +166,32 @@ public class ActivityError extends ActivityBase { Helper.viewFAQ(view.getContext(), faq); } }); + + Bundle args = new Bundle(); + args.putLong("account", account); + + new SimpleTask() { + @Override + protected EntityIdentity onExecute(Context context, Bundle args) throws Throwable { + long account = args.getLong("account"); + + DB db = DB.getInstance(context); + List identities = db.identity().getSynchronizingIdentities(account); + return (identities == null || identities.size() != 1 ? null : identities.get(0)); + } + + @Override + protected void onExecuted(Bundle args, EntityIdentity identity) { + if (identity == null) + return; + intent.putExtra("personal", identity.name); + intent.putExtra("address", identity.email); + } + + @Override + protected void onException(Bundle args, Throwable ex) { + // Ignored + } + }.execute(this, args, "error:details"); } } diff --git a/app/src/main/java/eu/faircode/email/Core.java b/app/src/main/java/eu/faircode/email/Core.java index e7ada49137..aa9228069c 100644 --- a/app/src/main/java/eu/faircode/email/Core.java +++ b/app/src/main/java/eu/faircode/email/Core.java @@ -5515,6 +5515,7 @@ class Core { intent.putExtra("account", account.id); intent.putExtra("protocol", account.protocol); intent.putExtra("auth_type", account.auth_type); + intent.putExtra("address", account.user); intent.putExtra("faq", 22); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); PendingIntent pi = PendingIntentCompat.getActivity( diff --git a/app/src/main/java/eu/faircode/email/FragmentFolders.java b/app/src/main/java/eu/faircode/email/FragmentFolders.java index beee656a95..89ff736ef2 100644 --- a/app/src/main/java/eu/faircode/email/FragmentFolders.java +++ b/app/src/main/java/eu/faircode/email/FragmentFolders.java @@ -413,6 +413,7 @@ public class FragmentFolders extends FragmentBase { intent.putExtra("account", account.id); intent.putExtra("protocol", account.protocol); intent.putExtra("auth_type", account.auth_type); + intent.putExtra("address", account.user); intent.putExtra("faq", 22); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); diff --git a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java index 49dea8e4a9..66573d1e8f 100644 --- a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java +++ b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java @@ -1504,6 +1504,7 @@ public class ServiceSynchronize extends ServiceBase implements SharedPreferences intent.putExtra("account", account.id); intent.putExtra("protocol", account.protocol); intent.putExtra("auth_type", account.auth_type); + intent.putExtra("address", account.user); intent.putExtra("faq", 23); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); PendingIntent piAlert = PendingIntentCompat.getActivity(