diff --git a/app/src/main/java/eu/faircode/email/FragmentMessages.java b/app/src/main/java/eu/faircode/email/FragmentMessages.java index 957ab1baac..f365a2a5bc 100644 --- a/app/src/main/java/eu/faircode/email/FragmentMessages.java +++ b/app/src/main/java/eu/faircode/email/FragmentMessages.java @@ -1948,11 +1948,14 @@ public class FragmentMessages extends FragmentBase { @Override public void onError(Throwable ex) { if (getLifecycle().getCurrentState().isAtLeast(Lifecycle.State.RESUMED)) - new DialogBuilderLifecycle(getContext(), getViewLifecycleOwner()) - .setMessage(Helper.formatThrowable(ex)) - .setPositiveButton(android.R.string.cancel, null) - .create() - .show(); + if (ex instanceof IllegalArgumentException) + Snackbar.make(view, ex.getMessage(), Snackbar.LENGTH_LONG).show(); + else + new DialogBuilderLifecycle(getContext(), getViewLifecycleOwner()) + .setMessage(Helper.formatThrowable(ex)) + .setPositiveButton(android.R.string.cancel, null) + .create() + .show(); } }); diff --git a/app/src/main/java/eu/faircode/email/ViewModelBrowse.java b/app/src/main/java/eu/faircode/email/ViewModelBrowse.java index ff7a076544..7d97169245 100644 --- a/app/src/main/java/eu/faircode/email/ViewModelBrowse.java +++ b/app/src/main/java/eu/faircode/email/ViewModelBrowse.java @@ -20,6 +20,8 @@ package eu.faircode.email; */ import android.content.Context; +import android.net.ConnectivityManager; +import android.net.NetworkInfo; import com.sun.mail.iap.Argument; import com.sun.mail.iap.Response; @@ -154,6 +156,13 @@ public class ViewModelBrowse extends ViewModel { EntityAccount account = db.account().getAccount(folder.account); try { + // Check connectivity + ConnectivityManager cm = (ConnectivityManager) state.context.getSystemService(Context.CONNECTIVITY_SERVICE); + NetworkInfo ni = cm.getActiveNetworkInfo(); + boolean internet = (ni != null && ni.isConnected()); + if (!internet) + throw new IllegalArgumentException(state.context.getString(R.string.title_no_internet)); + Properties props = MessageHelper.getSessionProperties(account.auth_type, account.realm, account.insecure); Session isession = Session.getInstance(props, null); isession.setDebug(true);