From 8127267bedecafc9c95c09c1af623b4dbbc2f523 Mon Sep 17 00:00:00 2001 From: M66B Date: Sun, 3 May 2020 20:23:21 +0200 Subject: [PATCH] Wait 5 seconds after connectivity change before sending --- app/src/main/java/eu/faircode/email/ServiceSend.java | 10 ++++++++++ 1 file changed, 10 insertions(+) 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)