From 0c95bc75ac11ec10d95aea6ea9966c356a60a7ce Mon Sep 17 00:00:00 2001 From: M66B Date: Fri, 4 Jan 2019 17:13:14 +0000 Subject: [PATCH] Improved select account error handling --- app/src/main/java/eu/faircode/email/FragmentAccount.java | 8 +++++++- app/src/main/java/eu/faircode/email/FragmentSetup.java | 7 ++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/FragmentAccount.java b/app/src/main/java/eu/faircode/email/FragmentAccount.java index 314427095c..5dd076b0d5 100644 --- a/app/src/main/java/eu/faircode/email/FragmentAccount.java +++ b/app/src/main/java/eu/faircode/email/FragmentAccount.java @@ -24,6 +24,7 @@ import android.accounts.Account; import android.accounts.AccountManager; import android.accounts.AccountManagerCallback; import android.accounts.AccountManagerFuture; +import android.accounts.AuthenticatorException; import android.accounts.OperationCanceledException; import android.app.Activity; import android.app.NotificationManager; @@ -63,6 +64,7 @@ import com.google.android.material.textfield.TextInputLayout; import com.sun.mail.imap.IMAPFolder; import com.sun.mail.imap.IMAPStore; +import java.io.IOException; import java.net.UnknownHostException; import java.util.ArrayList; import java.util.Date; @@ -1211,7 +1213,11 @@ public class FragmentAccount extends FragmentEx { tilPassword.getEditText().setText(token); } catch (Throwable ex) { Log.e(ex); - if (!(ex instanceof OperationCanceledException)) + if (ex instanceof OperationCanceledException || + ex instanceof AuthenticatorException || + ex instanceof IOException) + Snackbar.make(view, Helper.formatThrowable(ex), Snackbar.LENGTH_LONG).show(); + else Helper.unexpectedError(getContext(), getViewLifecycleOwner(), ex); } finally { btnAuthorize.setEnabled(true); diff --git a/app/src/main/java/eu/faircode/email/FragmentSetup.java b/app/src/main/java/eu/faircode/email/FragmentSetup.java index 43d5102144..3cc3b080d5 100644 --- a/app/src/main/java/eu/faircode/email/FragmentSetup.java +++ b/app/src/main/java/eu/faircode/email/FragmentSetup.java @@ -24,6 +24,7 @@ import android.accounts.Account; import android.accounts.AccountManager; import android.accounts.AccountManagerCallback; import android.accounts.AccountManagerFuture; +import android.accounts.AuthenticatorException; import android.accounts.OperationCanceledException; import android.annotation.TargetApi; import android.content.ComponentName; @@ -894,7 +895,11 @@ public class FragmentSetup extends FragmentEx { auth_type = Helper.AUTH_TYPE_GMAIL; } catch (Throwable ex) { Log.e(ex); - if (!(ex instanceof OperationCanceledException)) + if (ex instanceof OperationCanceledException || + ex instanceof AuthenticatorException || + ex instanceof IOException) + Snackbar.make(view, Helper.formatThrowable(ex), Snackbar.LENGTH_LONG).show(); + else Helper.unexpectedError(getContext(), getViewLifecycleOwner(), ex); } finally { etEmail.setEnabled(true);