diff --git a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java index 10e1ecc7bf..b7819bda02 100644 --- a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java +++ b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java @@ -122,6 +122,7 @@ public class ServiceSynchronize extends ServiceBase { // builder.addCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED); cm.registerNetworkCallback(builder.build(), onNetworkCallback); + registerReceiver(onConnectionChanged, new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION)); registerReceiver(onScreenOff, new IntentFilter(Intent.ACTION_SCREEN_OFF)); DB db = DB.getInstance(this); @@ -282,6 +283,7 @@ public class ServiceSynchronize extends ServiceBase { EntityLog.log(this, "Service destroy"); unregisterReceiver(onScreenOff); + unregisterReceiver(onConnectionChanged); ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); cm.unregisterNetworkCallback(onNetworkCallback); @@ -1416,6 +1418,14 @@ public class ServiceSynchronize extends ServiceBase { } }; + private BroadcastReceiver onConnectionChanged = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + EntityLog.log(ServiceSynchronize.this, "Connection intent=" + intent); + onNetworkCallback.onAvailable(null); + } + }; + private BroadcastReceiver onScreenOff = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) {