diff --git a/app/src/main/java/eu/faircode/email/TupleAccountNetworkState.java b/app/src/main/java/eu/faircode/email/TupleAccountNetworkState.java index 74b5563a1f..f38c2017e8 100644 --- a/app/src/main/java/eu/faircode/email/TupleAccountNetworkState.java +++ b/app/src/main/java/eu/faircode/email/TupleAccountNetworkState.java @@ -38,6 +38,7 @@ public class TupleAccountNetworkState { public TupleAccountState accountState; private JSONObject jconditions; + private Boolean network_vpn_only; public TupleAccountNetworkState( boolean enabled, @@ -65,8 +66,10 @@ public class TupleAccountNetworkState { public boolean canConnect(Context context) { boolean unmetered = jconditions.optBoolean("unmetered"); boolean vpn_only = jconditions.optBoolean("vpn_only"); + if (vpn_only && this.network_vpn_only == null) + this.network_vpn_only = ConnectionHelper.vpnActive(context); return (!unmetered || this.networkState.isUnmetered()) && - (!vpn_only || ConnectionHelper.vpnActive(context)); + (!vpn_only || this.network_vpn_only); } public boolean canRun(Context context) {