From 74e155beb7e8e59e20d2cd6473b22c2a59954391 Mon Sep 17 00:00:00 2001 From: M66B Date: Sat, 4 Apr 2020 08:48:43 +0200 Subject: [PATCH] Always process send operations on connectivity changes --- .../java/eu/faircode/email/ServiceSend.java | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/ServiceSend.java b/app/src/main/java/eu/faircode/email/ServiceSend.java index f867418c90..da8ba70f19 100644 --- a/app/src/main/java/eu/faircode/email/ServiceSend.java +++ b/app/src/main/java/eu/faircode/email/ServiceSend.java @@ -229,10 +229,10 @@ public class ServiceSend extends ServiceBase { }; private void checkConnectivity() { - boolean suitable = ConnectionHelper.getNetworkState(ServiceSend.this).isSuitable(); + boolean suitable = ConnectionHelper.getNetworkState(this).isSuitable(); if (lastSuitable != suitable) { lastSuitable = suitable; - EntityLog.log(ServiceSend.this, "Service send suitable=" + suitable); + EntityLog.log(this, "Service send suitable=" + suitable); try { NotificationManager nm = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); @@ -240,15 +240,15 @@ public class ServiceSend extends ServiceBase { } catch (Throwable ex) { Log.w(ex); } - - if (suitable) - executor.submit(new Runnable() { - @Override - public void run() { - processOperations(); - } - }); } + + if (suitable) + executor.submit(new Runnable() { + @Override + public void run() { + processOperations(); + } + }); } private void processOperations() { @@ -376,6 +376,10 @@ public class ServiceSend extends ServiceBase { if (!message.content) throw new IllegalArgumentException("Message body missing"); + ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); + if (cm.isActiveNetworkMetered()) + throw new IOException("Metered"); + // Create message Properties props = MessageHelper.getSessionProperties(); Session isession = Session.getInstance(props, null);