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);
|
builder.addCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED);
|
||||||
|
|
||||||
ConnectivityManager.NetworkCallback nc = new ConnectivityManager.NetworkCallback() {
|
ConnectivityManager.NetworkCallback nc = new ConnectivityManager.NetworkCallback() {
|
||||||
|
private Boolean last_connected = null;
|
||||||
private Boolean last_unmetered = null;
|
private Boolean last_unmetered = null;
|
||||||
private String last_generation = null;
|
private String last_generation = null;
|
||||||
private List<InetAddress> last_dns = null;
|
private List<InetAddress> last_dns = null;
|
||||||
|
@ -2471,6 +2472,7 @@ public class ServiceSinkhole extends VpnService implements SharedPreferences.OnS
|
||||||
@Override
|
@Override
|
||||||
public void onAvailable(Network network) {
|
public void onAvailable(Network network) {
|
||||||
Log.i(TAG, "Available network=" + network);
|
Log.i(TAG, "Available network=" + network);
|
||||||
|
last_connected = Util.isConnected(ServiceSinkhole.this);
|
||||||
reload("network available", ServiceSinkhole.this, false);
|
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) {
|
public void onCapabilitiesChanged(Network network, NetworkCapabilities networkCapabilities) {
|
||||||
Log.i(TAG, "Changed capabilities=" + network);
|
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);
|
boolean unmetered = networkCapabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_NOT_METERED);
|
||||||
String generation = Util.getNetworkGeneration(ServiceSinkhole.this);
|
String generation = Util.getNetworkGeneration(ServiceSinkhole.this);
|
||||||
Log.i(TAG, "Generation=" + generation + " unmetered=" + unmetered);
|
Log.i(TAG, "Generation=" + generation + " unmetered=" + unmetered);
|
||||||
|
@ -2523,6 +2531,7 @@ public class ServiceSinkhole extends VpnService implements SharedPreferences.OnS
|
||||||
@Override
|
@Override
|
||||||
public void onLost(Network network) {
|
public void onLost(Network network) {
|
||||||
Log.i(TAG, "Lost network=" + network);
|
Log.i(TAG, "Lost network=" + network);
|
||||||
|
last_connected = Util.isConnected(ServiceSinkhole.this);
|
||||||
reload("network lost", ServiceSinkhole.this, false);
|
reload("network lost", ServiceSinkhole.this, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue