From da3ad5694141d85afa4c0be69bc20c12ad1ee223 Mon Sep 17 00:00:00 2001 From: M66B Date: Thu, 14 Sep 2023 17:56:50 +0200 Subject: [PATCH] Fixed VPN active / only --- .../eu/faircode/email/ConnectionHelper.java | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/ConnectionHelper.java b/app/src/main/java/eu/faircode/email/ConnectionHelper.java index 80c2bf343c..56d8d93411 100644 --- a/app/src/main/java/eu/faircode/email/ConnectionHelper.java +++ b/app/src/main/java/eu/faircode/email/ConnectionHelper.java @@ -535,17 +535,14 @@ public class ConnectionHelper { if (cm == null) return false; + // The active network doesn't necessarily have VPN transport + // active=... caps=[ Transports: WIFI Capabilities: ...&NOT_VPN&... + // network=... caps=[ Transports: WIFI|VPN Capabilities: ... + try { - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) { - for (Network network : cm.getAllNetworks()) { - NetworkCapabilities caps = cm.getNetworkCapabilities(network); - if (caps != null && !caps.hasCapability(NetworkCapabilities.NET_CAPABILITY_NOT_VPN)) - return true; - } - } else { - Network active = cm.getActiveNetwork(); - NetworkCapabilities caps = (active == null ? null : cm.getNetworkCapabilities(active)); - if (caps != null && !caps.hasCapability(NetworkCapabilities.NET_CAPABILITY_NOT_VPN)) + for (Network network : cm.getAllNetworks()) { + NetworkCapabilities caps = cm.getNetworkCapabilities(network); + if (caps != null && caps.hasTransport(NetworkCapabilities.TRANSPORT_VPN)) return true; } } catch (Throwable ex) {