diff --git a/app/src/main/java/eu/faircode/email/ServiceSend.java b/app/src/main/java/eu/faircode/email/ServiceSend.java index dfe56ab81f..a237176147 100644 --- a/app/src/main/java/eu/faircode/email/ServiceSend.java +++ b/app/src/main/java/eu/faircode/email/ServiceSend.java @@ -70,6 +70,7 @@ public class ServiceSend extends ServiceBase { private ExecutorService executor = Helper.getBackgroundExecutor(1, "send"); private static final int PI_SEND = 1; + private static final long CONNECTIVITY_DELAY = 5000L; // milliseconds private static final int IDENTITY_ERROR_AFTER = 30; // minutes @Override @@ -133,6 +134,8 @@ public class ServiceSend extends ServiceBase { }); ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); + lastSuitable = ConnectionHelper.getNetworkState(this).isSuitable(); + NetworkRequest.Builder builder = new NetworkRequest.Builder(); builder.addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET); cm.registerNetworkCallback(builder.build(), networkCallback); @@ -240,6 +243,13 @@ public class ServiceSend extends ServiceBase { } catch (Throwable ex) { Log.w(ex); } + + // Wait for stabilization of connection + try { + Thread.sleep(CONNECTIVITY_DELAY); + } catch (InterruptedException ex) { + Log.w(ex); + } } if (suitable)