mirror of https://github.com/M66B/NetGuard.git
Less verbose network status / live update
This commit is contained in:
parent
f8ef70d5a6
commit
84617b9b00
|
@ -19,11 +19,14 @@ package eu.faircode.netguard;
|
||||||
Copyright 2015 by Marcel Bokhorst (M66B)
|
Copyright 2015 by Marcel Bokhorst (M66B)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
import android.content.BroadcastReceiver;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
import android.content.IntentFilter;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
import android.net.ConnectivityManager;
|
import android.net.ConnectivityManager;
|
||||||
import android.net.Network;
|
import android.net.Network;
|
||||||
|
import android.net.NetworkInfo;
|
||||||
import android.os.AsyncTask;
|
import android.os.AsyncTask;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.preference.Preference;
|
import android.preference.Preference;
|
||||||
|
@ -53,6 +56,8 @@ import javax.xml.parsers.SAXParserFactory;
|
||||||
public class ActivitySettings extends AppCompatActivity implements SharedPreferences.OnSharedPreferenceChangeListener {
|
public class ActivitySettings extends AppCompatActivity implements SharedPreferences.OnSharedPreferenceChangeListener {
|
||||||
private static final String TAG = "NetGuard.Settings";
|
private static final String TAG = "NetGuard.Settings";
|
||||||
|
|
||||||
|
private Preference pref_vpn = null;
|
||||||
|
|
||||||
private static final int REQUEST_EXPORT = 1;
|
private static final int REQUEST_EXPORT = 1;
|
||||||
private static final int REQUEST_IMPORT = 2;
|
private static final int REQUEST_IMPORT = 2;
|
||||||
private static final Intent INTENT_VPN_SETTINGS = new Intent("android.net.vpn.SETTINGS");
|
private static final Intent INTENT_VPN_SETTINGS = new Intent("android.net.vpn.SETTINGS");
|
||||||
|
@ -68,10 +73,27 @@ public class ActivitySettings extends AppCompatActivity implements SharedPrefere
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDestroy() {
|
protected void onResume() {
|
||||||
|
super.onResume();
|
||||||
|
|
||||||
|
// Listen for preference changes
|
||||||
|
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
|
||||||
|
prefs.registerOnSharedPreferenceChangeListener(this);
|
||||||
|
|
||||||
|
// Listen for connectivity updates
|
||||||
|
IntentFilter ifConnectivity = new IntentFilter();
|
||||||
|
ifConnectivity.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
|
||||||
|
registerReceiver(connectivityChangedReceiver, ifConnectivity);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onPause() {
|
||||||
|
super.onPause();
|
||||||
|
|
||||||
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
|
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
|
||||||
prefs.unregisterOnSharedPreferenceChangeListener(this);
|
prefs.unregisterOnSharedPreferenceChangeListener(this);
|
||||||
super.onDestroy();
|
|
||||||
|
unregisterReceiver(connectivityChangedReceiver);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setup(PreferenceScreen screen) {
|
public void setup(PreferenceScreen screen) {
|
||||||
|
@ -95,21 +117,13 @@ public class ActivitySettings extends AppCompatActivity implements SharedPrefere
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
Preference pref_vpn = screen.findPreference("vpn");
|
pref_vpn = screen.findPreference("vpn");
|
||||||
if (Util.isDebuggable(this)) {
|
if (Util.isDebuggable(this)) {
|
||||||
pref_vpn.setEnabled(INTENT_VPN_SETTINGS.resolveActivity(this.getPackageManager()) != null);
|
pref_vpn.setEnabled(INTENT_VPN_SETTINGS.resolveActivity(this.getPackageManager()) != null);
|
||||||
pref_vpn.setIntent(INTENT_VPN_SETTINGS);
|
pref_vpn.setIntent(INTENT_VPN_SETTINGS);
|
||||||
|
updateNetworkSummary();
|
||||||
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
|
|
||||||
StringBuilder sb = new StringBuilder();
|
|
||||||
for (Network network : cm.getAllNetworks())
|
|
||||||
sb.append(cm.getNetworkInfo(network)).append("\n");
|
|
||||||
pref_vpn.setSummary(sb.toString());
|
|
||||||
} else
|
} else
|
||||||
screen.removePreference(pref_vpn);
|
screen.removePreference(pref_vpn);
|
||||||
|
|
||||||
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
|
|
||||||
prefs.registerOnSharedPreferenceChangeListener(this);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -131,6 +145,29 @@ public class ActivitySettings extends AppCompatActivity implements SharedPrefere
|
||||||
recreate();
|
recreate();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private BroadcastReceiver connectivityChangedReceiver = new BroadcastReceiver() {
|
||||||
|
@Override
|
||||||
|
public void onReceive(Context context, Intent intent) {
|
||||||
|
updateNetworkSummary();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
private void updateNetworkSummary() {
|
||||||
|
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
for (Network network : cm.getAllNetworks()) {
|
||||||
|
NetworkInfo ni = cm.getNetworkInfo(network);
|
||||||
|
sb.append("Network: ")
|
||||||
|
.append(ni.getTypeName())
|
||||||
|
.append("/")
|
||||||
|
.append(ni.getSubtypeName())
|
||||||
|
.append("=")
|
||||||
|
.append(ni.getDetailedState())
|
||||||
|
.append("\r\n");
|
||||||
|
}
|
||||||
|
pref_vpn.setSummary(sb.toString());
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onActivityResult(int requestCode, int resultCode, final Intent data) {
|
protected void onActivityResult(int requestCode, int resultCode, final Intent data) {
|
||||||
Log.i(TAG, "onActivityResult request=" + requestCode + " result=" + requestCode + " ok=" + (resultCode == RESULT_OK));
|
Log.i(TAG, "onActivityResult request=" + requestCode + " result=" + requestCode + " ok=" + (resultCode == RESULT_OK));
|
||||||
|
|
|
@ -168,8 +168,16 @@ public class Util {
|
||||||
sb.append(String.format("VPN dialogs: %b\r\n", isPackageInstalled("com.android.vpndialogs", context)));
|
sb.append(String.format("VPN dialogs: %b\r\n", isPackageInstalled("com.android.vpndialogs", context)));
|
||||||
|
|
||||||
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
|
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
|
||||||
for (Network network : cm.getAllNetworks())
|
for (Network network : cm.getAllNetworks()) {
|
||||||
sb.append("Network: ").append(cm.getNetworkInfo(network)).append("\r\n");
|
NetworkInfo ni = cm.getNetworkInfo(network);
|
||||||
|
sb.append("Network: ")
|
||||||
|
.append(ni.getTypeName())
|
||||||
|
.append("/")
|
||||||
|
.append(ni.getSubtypeName())
|
||||||
|
.append("=")
|
||||||
|
.append(ni.getDetailedState())
|
||||||
|
.append("\r\n");
|
||||||
|
}
|
||||||
|
|
||||||
sb.append("\r\n");
|
sb.append("\r\n");
|
||||||
sb.append("Please describe your problem:\r\n");
|
sb.append("Please describe your problem:\r\n");
|
||||||
|
|
Loading…
Reference in New Issue