mirror of https://github.com/M66B/NetGuard.git
Check connected state on capability changes
This commit is contained in:
parent
6315a9c7fd
commit
ba45b661b5
|
@ -2464,6 +2464,7 @@ public class ServiceSinkhole extends VpnService implements SharedPreferences.OnS
|
|||
builder.addCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED);
|
||||
|
||||
ConnectivityManager.NetworkCallback nc = new ConnectivityManager.NetworkCallback() {
|
||||
private Boolean last_connected = null;
|
||||
private Boolean last_unmetered = null;
|
||||
private String last_generation = null;
|
||||
private List<InetAddress> last_dns = null;
|
||||
|
@ -2471,6 +2472,7 @@ public class ServiceSinkhole extends VpnService implements SharedPreferences.OnS
|
|||
@Override
|
||||
public void onAvailable(Network network) {
|
||||
Log.i(TAG, "Available network=" + network);
|
||||
last_connected = Util.isConnected(ServiceSinkhole.this);
|
||||
reload("network available", ServiceSinkhole.this, false);
|
||||
}
|
||||
|
||||
|
@ -2494,6 +2496,12 @@ public class ServiceSinkhole extends VpnService implements SharedPreferences.OnS
|
|||
public void onCapabilitiesChanged(Network network, NetworkCapabilities networkCapabilities) {
|
||||
Log.i(TAG, "Changed capabilities=" + network);
|
||||
|
||||
boolean connected = Util.isConnected(ServiceSinkhole.this);
|
||||
if (connected && (last_connected == null || !last_connected)) {
|
||||
last_connected = connected;
|
||||
reload("Connected state changed", ServiceSinkhole.this, false);
|
||||
}
|
||||
|
||||
boolean unmetered = networkCapabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_NOT_METERED);
|
||||
String generation = Util.getNetworkGeneration(ServiceSinkhole.this);
|
||||
Log.i(TAG, "Generation=" + generation + " unmetered=" + unmetered);
|
||||
|
@ -2523,6 +2531,7 @@ public class ServiceSinkhole extends VpnService implements SharedPreferences.OnS
|
|||
@Override
|
||||
public void onLost(Network network) {
|
||||
Log.i(TAG, "Lost network=" + network);
|
||||
last_connected = Util.isConnected(ServiceSinkhole.this);
|
||||
reload("network lost", ServiceSinkhole.this, false);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue