Lock down Wi-Fi and/or mobile as option

This commit is contained in:
M66B 2017-03-21 16:36:24 +01:00
parent cdd2a800ba
commit 401355f978
6 changed files with 163 additions and 131 deletions

View File

@ -582,8 +582,10 @@ public class ActivitySettings extends AppCompatActivity implements SharedPrefere
} else
ServiceSinkhole.reload("changed " + name, this);
} else if ("lockdown_wifi".equals(name) || "lockdown_other".equals(name))
ServiceSinkhole.reload("changed " + name, this);
} else if ("manage_system".equals(name)) {
else if ("manage_system".equals(name)) {
boolean manage = prefs.getBoolean(name, false);
if (!manage)
prefs.edit().putBoolean("show_user", true).apply();

View File

@ -371,6 +371,11 @@ public class AdapterRule extends RecyclerView.Adapter<AdapterRule.ViewHolder> im
// Lockdown settings
boolean lockdown = prefs.getBoolean("lockdown", false);
boolean lockdown_wifi = prefs.getBoolean("lockdown_wifi", true);
boolean lockdown_other = prefs.getBoolean("lockdown_other", true);
if ((otherActive && !lockdown_other) || (wifiActive && !lockdown_wifi))
lockdown = false;
holder.rlLockdown.setVisibility(lockdown && !rule.lockdown ? View.VISIBLE : View.GONE);
holder.ivLockdown.setEnabled(rule.apply);
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {

View File

@ -1431,9 +1431,7 @@ public class ServiceSinkhole extends VpnService implements SharedPreferences.OnS
}
private void prepareUidIPFilters(String dname) {
SharedPreferences plockdown = getSharedPreferences("lockdown", Context.MODE_PRIVATE);
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ServiceSinkhole.this);
boolean lockdown = prefs.getBoolean("lockdown", false);
SharedPreferences lockdown = getSharedPreferences("lockdown", Context.MODE_PRIVATE);
lock.writeLock().lock();
@ -1466,10 +1464,10 @@ public class ServiceSinkhole extends VpnService implements SharedPreferences.OnS
long time = cursor.getLong(colTime);
long ttl = cursor.getLong(colTTL);
if (lockdown) {
if (isLockedDown(last_metered)) {
String[] pkg = getPackageManager().getPackagesForUid(uid);
if (pkg != null && pkg.length > 0) {
if (!plockdown.getBoolean(pkg[0], false))
if (!lockdown.getBoolean(pkg[0], false))
continue;
}
}
@ -1556,6 +1554,17 @@ public class ServiceSinkhole extends VpnService implements SharedPreferences.OnS
lock.writeLock().unlock();
}
private boolean isLockedDown(boolean metered) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ServiceSinkhole.this);
boolean lockdown = prefs.getBoolean("lockdown", false);
boolean lockdown_wifi = prefs.getBoolean("lockdown_wifi", true);
boolean lockdown_other = prefs.getBoolean("lockdown_other", true);
if (metered ? !lockdown_other : !lockdown_wifi)
lockdown = false;
return lockdown;
}
private List<Rule> getAllowedRules(List<Rule> listRule) {
List<Rule> listAllowed = new ArrayList<>();
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
@ -1574,7 +1583,6 @@ public class ServiceSinkhole extends VpnService implements SharedPreferences.OnS
boolean national = prefs.getBoolean("national_roaming", false);
boolean tethering = prefs.getBoolean("tethering", false);
boolean filter = prefs.getBoolean("filter", false);
boolean lockdown = prefs.getBoolean("lockdown", false);
// Update connected state
last_connected = Util.isConnected(ServiceSinkhole.this);
@ -1598,6 +1606,8 @@ public class ServiceSinkhole extends VpnService implements SharedPreferences.OnS
metered = false;
last_metered = metered;
boolean lockdown = isLockedDown(last_metered);
// Update roaming state
if (roaming && national)
roaming = Util.isInternational(this);
@ -2202,16 +2212,13 @@ public class ServiceSinkhole extends VpnService implements SharedPreferences.OnS
}
private Notification getEnforcingNotification(int allowed, int blocked, int hosts) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
boolean lockdown = prefs.getBoolean("lockdown", false);
Intent main = new Intent(this, ActivityMain.class);
PendingIntent pi = PendingIntent.getActivity(this, 0, main, PendingIntent.FLAG_UPDATE_CURRENT);
TypedValue tv = new TypedValue();
getTheme().resolveAttribute(R.attr.colorPrimary, tv, true);
NotificationCompat.Builder builder = new NotificationCompat.Builder(this)
.setSmallIcon(lockdown ? R.drawable.ic_lock_outline_white_24dp : R.drawable.ic_security_white_24dp)
.setSmallIcon(isLockedDown(last_metered) ? R.drawable.ic_lock_outline_white_24dp : R.drawable.ic_security_white_24dp)
.setContentIntent(pi)
.setColor(tv.data)
.setOngoing(true)

View File

@ -81,6 +81,8 @@ however it is impossible to guarantee NetGuard will work correctly on every devi
<string name="setting_metered_3g">Consider 3G unmetered</string>
<string name="setting_metered_4g">Consider LTE unmetered</string>
<string name="setting_national_roaming">Ignore national roaming</string>
<string name="setting_lockdown_wifi">Lockdown Wi-Fi</string>
<string name="setting_lockdown_other">Lockdown mobile</string>
<string name="setting_advanced_options">Advanced options</string>
<string name="setting_system">Manage system applications</string>

View File

@ -9,29 +9,29 @@
<CheckBoxPreference
android:defaultValue="true"
android:key="whitelist_wifi"
android:title="@string/setting_whitelist_wifi" />
android:title="@string/setting_whitelist_wifi"/>
<CheckBoxPreference
android:defaultValue="true"
android:key="whitelist_other"
android:title="@string/setting_whitelist_other" />
android:title="@string/setting_whitelist_other"/>
<CheckBoxPreference
android:defaultValue="true"
android:key="screen_on"
android:title="@string/setting_screen_on" />
android:title="@string/setting_screen_on"/>
<CheckBoxPreference
android:defaultValue="false"
android:dependency="screen_on"
android:key="screen_wifi"
android:title="@string/setting_screen_wifi" />
android:title="@string/setting_screen_wifi"/>
<CheckBoxPreference
android:defaultValue="false"
android:dependency="screen_on"
android:key="screen_other"
android:title="@string/setting_screen_other" />
android:title="@string/setting_screen_other"/>
<CheckBoxPreference
android:defaultValue="false"
android:key="whitelist_roaming"
android:title="@string/setting_whitelist_roaming" />
android:title="@string/setting_whitelist_roaming"/>
</PreferenceCategory>
</PreferenceScreen>
@ -45,31 +45,31 @@
android:defaultValue="teal"
android:entries="@array/themeNames"
android:entryValues="@array/themeValues"
android:key="theme" />
android:key="theme"/>
<CheckBoxPreference
android:defaultValue="false"
android:key="dark_theme"
android:title="@string/setting_dark" />
android:title="@string/setting_dark"/>
<CheckBoxPreference
android:defaultValue="true"
android:key="install"
android:summary="@string/summary_install"
android:title="@string/setting_install" />
android:title="@string/setting_install"/>
<EditTextPreference
android:defaultValue="0"
android:inputType="number"
android:key="auto_enable"
android:summary="@string/summary_auto" />
android:summary="@string/summary_auto"/>
<EditTextPreference
android:defaultValue="0"
android:inputType="number"
android:key="screen_delay"
android:summary="@string/summary_delay" />
android:summary="@string/summary_delay"/>
<CheckBoxPreference
android:defaultValue="true"
android:key="update_check"
android:summary="@string/summary_update"
android:title="@string/setting_update" />
android:title="@string/setting_update"/>
</PreferenceCategory>
</PreferenceScreen>
@ -83,53 +83,61 @@
android:defaultValue="false"
android:key="subnet"
android:summary="@string/summary_subnet"
android:title="@string/setting_subnet" />
android:title="@string/setting_subnet"/>
<CheckBoxPreference
android:defaultValue="false"
android:dependency="subnet"
android:key="tethering"
android:summary="@string/summary_tethering"
android:title="@string/setting_tethering" />
android:title="@string/setting_tethering"/>
<CheckBoxPreference
android:defaultValue="false"
android:dependency="subnet"
android:key="lan"
android:summary="@string/summary_lan"
android:title="@string/setting_lan" />
android:title="@string/setting_lan"/>
<CheckBoxPreference
android:defaultValue="true"
android:key="ip6"
android:summary="@string/summary_ip6"
android:title="@string/setting_ip6" />
android:title="@string/setting_ip6"/>
<MultiSelectListPreference
android:defaultValue="@array/default_wifi_home"
android:key="wifi_homes"
android:summary="@string/summary_wifi_home" />
android:summary="@string/summary_wifi_home"/>
<CheckBoxPreference
android:defaultValue="false"
android:key="use_metered"
android:summary="@string/summary_metered"
android:title="@string/setting_metered" />
android:title="@string/setting_metered"/>
<CheckBoxPreference
android:defaultValue="false"
android:key="unmetered_2g"
android:summary="@string/summary_metered_2g"
android:title="@string/setting_metered_2g" />
android:title="@string/setting_metered_2g"/>
<CheckBoxPreference
android:defaultValue="false"
android:key="unmetered_3g"
android:summary="@string/summary_metered_3g"
android:title="@string/setting_metered_3g" />
android:title="@string/setting_metered_3g"/>
<CheckBoxPreference
android:defaultValue="false"
android:key="unmetered_4g"
android:summary="@string/summary_metered_4g"
android:title="@string/setting_metered_4g" />
android:title="@string/setting_metered_4g"/>
<CheckBoxPreference
android:defaultValue="false"
android:key="national_roaming"
android:summary="@string/summary_national_roaming"
android:title="@string/setting_national_roaming" />
android:title="@string/setting_national_roaming"/>
<CheckBoxPreference
android:defaultValue="true"
android:key="lockdown_wifi"
android:title="@string/setting_lockdown_wifi"/>
<CheckBoxPreference
android:defaultValue="true"
android:key="lockdown_other"
android:title="@string/setting_lockdown_other"/>
</PreferenceCategory>
</PreferenceScreen>
@ -143,108 +151,108 @@
android:defaultValue="false"
android:key="manage_system"
android:summary="@string/summary_system"
android:title="@string/setting_system" />
android:title="@string/setting_system"/>
<CheckBoxPreference
android:defaultValue="false"
android:key="log_app"
android:summary="@string/summary_log_app"
android:title="@string/setting_log_app" />
android:title="@string/setting_log_app"/>
<CheckBoxPreference
android:defaultValue="false"
android:dependency="log_app"
android:key="notify_access"
android:summary="@string/summary_access"
android:title="@string/setting_access" />
android:title="@string/setting_access"/>
<CheckBoxPreference
android:defaultValue="false"
android:key="filter"
android:summary="@string/summary_filter"
android:title="@string/setting_filter" />
android:title="@string/setting_filter"/>
<CheckBoxPreference
android:defaultValue="false"
android:dependency="filter"
android:key="track_usage"
android:summary="@string/summary_track_usage"
android:title="@string/setting_track_usage" />
android:title="@string/setting_track_usage"/>
<Preference
android:key="reset_usage"
android:title="@string/setting_reset_usage" />
android:title="@string/setting_reset_usage"/>
<CheckBoxPreference
android:defaultValue="true"
android:dependency="filter"
android:key="use_hosts"
android:summary="@string/summary_block_domains"
android:title="@string/setting_block_domains" />
android:title="@string/setting_block_domains"/>
<EditTextPreference
android:dependency="filter"
android:inputType="number"
android:key="rcode"
android:summary="@string/summary_rcode" />
android:summary="@string/summary_rcode"/>
<Preference
android:dependency="filter"
android:key="forwarding"
android:title="@string/setting_forwarding" />
android:title="@string/setting_forwarding"/>
<EditTextPreference
inputType="phone"
android:hint="10.1.10.1"
android:inputType="phone"
android:key="vpn4" />
android:key="vpn4"/>
<EditTextPreference
android:hint="fd00:1:fd00:1:fd00:1:fd00:1"
android:inputType="text"
android:key="vpn6" />
android:key="vpn6"/>
<EditTextPreference
android:dependency="filter"
android:inputType="text"
android:key="dns" />
android:key="dns"/>
<EditTextPreference
android:dependency="filter"
android:inputType="text"
android:key="dns2" />
android:key="dns2"/>
<EditTextPreference
android:dependency="filter"
android:inputType="number"
android:key="ttl" />
android:key="ttl"/>
<CheckBoxPreference
android:defaultValue="false"
android:dependency="filter"
android:key="socks5_enabled"
android:summary="@string/summary_socks5_enabled"
android:title="@string/setting_socks5_enabled" />
android:title="@string/setting_socks5_enabled"/>
<EditTextPreference
android:dependency="filter"
android:hint="127.0.0.1"
android:inputType="text"
android:key="socks5_addr" />
android:key="socks5_addr"/>
<EditTextPreference
android:dependency="filter"
android:hint="1080"
android:inputType="text"
android:key="socks5_port" />
android:key="socks5_port"/>
<EditTextPreference
android:dependency="filter"
android:inputType="text"
android:key="socks5_username" />
android:key="socks5_username"/>
<EditTextPreference
android:dependency="filter"
android:inputType="textPassword"
android:key="socks5_password" />
android:key="socks5_password"/>
<EditTextPreference
android:defaultValue="64"
android:inputType="number"
android:key="pcap_record_size" />
android:key="pcap_record_size"/>
<EditTextPreference
android:defaultValue="2"
android:inputType="number"
android:key="pcap_file_size" />
android:key="pcap_file_size"/>
<EditTextPreference
android:defaultValue="0"
android:inputType="number"
android:key="watchdog"
android:summary="@string/summary_watchdog" />
android:summary="@string/summary_watchdog"/>
<Preference
android:key="show_resolved"
android:title="@string/setting_show_resolved" />
android:title="@string/setting_show_resolved"/>
</PreferenceCategory>
</PreferenceScreen>
@ -258,22 +266,22 @@
android:defaultValue="false"
android:key="show_stats"
android:summary="@string/summary_stats"
android:title="@string/setting_stats" />
android:title="@string/setting_stats"/>
<CheckBoxPreference
android:defaultValue="false"
android:dependency="show_stats"
android:key="show_top"
android:title="@string/setting_stats_top" />
android:title="@string/setting_stats_top"/>
<EditTextPreference
android:defaultValue="1000"
android:dependency="show_stats"
android:inputType="number"
android:key="stats_frequency" />
android:key="stats_frequency"/>
<EditTextPreference
android:defaultValue="90"
android:dependency="show_stats"
android:inputType="number"
android:key="stats_samples" />
android:key="stats_samples"/>
</PreferenceCategory>
</PreferenceScreen>
@ -285,22 +293,22 @@
android:title="@string/setting_backup">
<Preference
android:key="export"
android:title="@string/setting_export" />
android:title="@string/setting_export"/>
<Preference
android:key="import"
android:title="@string/setting_import" />
android:title="@string/setting_import"/>
<Preference
android:key="hosts_import"
android:title="@string/setting_hosts" />
android:title="@string/setting_hosts"/>
<EditTextPreference
android:defaultValue="https://www.netguard.me/hosts"
android:hint="https://www.netguard.me/hosts"
android:key="hosts_url"
android:title="@string/setting_hosts_url" />
android:title="@string/setting_hosts_url"/>
<Preference
android:dependency="hosts_url"
android:key="hosts_download"
android:title="@string/setting_hosts_download" />
android:title="@string/setting_hosts_download"/>
</PreferenceCategory>
</PreferenceScreen>
@ -316,15 +324,15 @@
android:entryValues="@array/logLevelValues"
android:key="loglevel"
android:summary="Log level verbose, debug and info will impact performance and battery usage"
android:title="Native log level" />
android:title="Native log level"/>
<CheckBoxPreference
android:defaultValue="false"
android:key="debug_iab"
android:title="Debug IAB" />
android:title="Debug IAB"/>
<CheckBoxPreference
android:defaultValue="false"
android:key="debug_ads"
android:title="Debug advertisements" />
android:title="Debug advertisements"/>
</PreferenceCategory>
</PreferenceScreen>
@ -336,13 +344,13 @@
android:title="@string/setting_technical">
<Preference
android:key="technical_info"
android:title="@string/setting_technical_general" />
android:title="@string/setting_technical_general"/>
<Preference
android:key="technical_network"
android:title="@string/setting_technical_networks" />
android:title="@string/setting_technical_networks"/>
<Preference
android:key="technical_subscription"
android:title="@string/setting_technical_subscription" />
android:title="@string/setting_technical_subscription"/>
</PreferenceCategory>
</PreferenceScreen>
</PreferenceScreen>

View File

@ -9,29 +9,29 @@
<eu.faircode.netguard.SwitchPreference
android:defaultValue="true"
android:key="whitelist_wifi"
android:title="@string/setting_whitelist_wifi" />
android:title="@string/setting_whitelist_wifi"/>
<eu.faircode.netguard.SwitchPreference
android:defaultValue="true"
android:key="whitelist_other"
android:title="@string/setting_whitelist_other" />
android:title="@string/setting_whitelist_other"/>
<eu.faircode.netguard.SwitchPreference
android:defaultValue="true"
android:key="screen_on"
android:title="@string/setting_screen_on" />
android:title="@string/setting_screen_on"/>
<eu.faircode.netguard.SwitchPreference
android:defaultValue="false"
android:dependency="screen_on"
android:key="screen_wifi"
android:title="@string/setting_screen_wifi" />
android:title="@string/setting_screen_wifi"/>
<eu.faircode.netguard.SwitchPreference
android:defaultValue="false"
android:dependency="screen_on"
android:key="screen_other"
android:title="@string/setting_screen_other" />
android:title="@string/setting_screen_other"/>
<eu.faircode.netguard.SwitchPreference
android:defaultValue="false"
android:key="whitelist_roaming"
android:title="@string/setting_whitelist_roaming" />
android:title="@string/setting_whitelist_roaming"/>
</PreferenceCategory>
</PreferenceScreen>
@ -45,31 +45,31 @@
android:defaultValue="teal"
android:entries="@array/themeNames"
android:entryValues="@array/themeValues"
android:key="theme" />
android:key="theme"/>
<eu.faircode.netguard.SwitchPreference
android:defaultValue="false"
android:key="dark_theme"
android:title="@string/setting_dark" />
android:title="@string/setting_dark"/>
<eu.faircode.netguard.SwitchPreference
android:defaultValue="true"
android:key="install"
android:summary="@string/summary_install"
android:title="@string/setting_install" />
android:title="@string/setting_install"/>
<EditTextPreference
android:defaultValue="0"
android:inputType="number"
android:key="auto_enable"
android:summary="@string/summary_auto" />
android:summary="@string/summary_auto"/>
<EditTextPreference
android:defaultValue="0"
android:inputType="number"
android:key="screen_delay"
android:summary="@string/summary_delay" />
android:summary="@string/summary_delay"/>
<eu.faircode.netguard.SwitchPreference
android:defaultValue="true"
android:key="update_check"
android:summary="@string/summary_update"
android:title="@string/setting_update" />
android:title="@string/setting_update"/>
</PreferenceCategory>
</PreferenceScreen>
@ -83,53 +83,61 @@
android:defaultValue="false"
android:key="subnet"
android:summary="@string/summary_subnet"
android:title="@string/setting_subnet" />
android:title="@string/setting_subnet"/>
<eu.faircode.netguard.SwitchPreference
android:defaultValue="false"
android:dependency="subnet"
android:key="tethering"
android:summary="@string/summary_tethering"
android:title="@string/setting_tethering" />
android:title="@string/setting_tethering"/>
<eu.faircode.netguard.SwitchPreference
android:defaultValue="false"
android:dependency="subnet"
android:key="lan"
android:summary="@string/summary_lan"
android:title="@string/setting_lan" />
android:title="@string/setting_lan"/>
<eu.faircode.netguard.SwitchPreference
android:defaultValue="true"
android:key="ip6"
android:summary="@string/summary_ip6"
android:title="@string/setting_ip6" />
android:title="@string/setting_ip6"/>
<MultiSelectListPreference
android:defaultValue="@array/default_wifi_home"
android:key="wifi_homes"
android:summary="@string/summary_wifi_home" />
android:summary="@string/summary_wifi_home"/>
<eu.faircode.netguard.SwitchPreference
android:defaultValue="false"
android:key="use_metered"
android:summary="@string/summary_metered"
android:title="@string/setting_metered" />
android:title="@string/setting_metered"/>
<eu.faircode.netguard.SwitchPreference
android:defaultValue="false"
android:key="unmetered_2g"
android:summary="@string/summary_metered_2g"
android:title="@string/setting_metered_2g" />
android:title="@string/setting_metered_2g"/>
<eu.faircode.netguard.SwitchPreference
android:defaultValue="false"
android:key="unmetered_3g"
android:summary="@string/summary_metered_3g"
android:title="@string/setting_metered_3g" />
android:title="@string/setting_metered_3g"/>
<eu.faircode.netguard.SwitchPreference
android:defaultValue="false"
android:key="unmetered_4g"
android:summary="@string/summary_metered_4g"
android:title="@string/setting_metered_4g" />
android:title="@string/setting_metered_4g"/>
<eu.faircode.netguard.SwitchPreference
android:defaultValue="false"
android:key="national_roaming"
android:summary="@string/summary_national_roaming"
android:title="@string/setting_national_roaming" />
android:title="@string/setting_national_roaming"/>
<eu.faircode.netguard.SwitchPreference
android:defaultValue="true"
android:key="lockdown_wifi"
android:title="@string/setting_lockdown_wifi"/>
<eu.faircode.netguard.SwitchPreference
android:defaultValue="true"
android:key="lockdown_other"
android:title="@string/setting_lockdown_other"/>
</PreferenceCategory>
</PreferenceScreen>
@ -143,108 +151,108 @@
android:defaultValue="false"
android:key="manage_system"
android:summary="@string/summary_system"
android:title="@string/setting_system" />
android:title="@string/setting_system"/>
<eu.faircode.netguard.SwitchPreference
android:defaultValue="false"
android:key="log_app"
android:summary="@string/summary_log_app"
android:title="@string/setting_log_app" />
android:title="@string/setting_log_app"/>
<eu.faircode.netguard.SwitchPreference
android:defaultValue="false"
android:dependency="log_app"
android:key="notify_access"
android:summary="@string/summary_access"
android:title="@string/setting_access" />
android:title="@string/setting_access"/>
<eu.faircode.netguard.SwitchPreference
android:defaultValue="false"
android:key="filter"
android:summary="@string/summary_filter"
android:title="@string/setting_filter" />
android:title="@string/setting_filter"/>
<eu.faircode.netguard.SwitchPreference
android:defaultValue="false"
android:dependency="filter"
android:key="track_usage"
android:summary="@string/summary_track_usage"
android:title="@string/setting_track_usage" />
android:title="@string/setting_track_usage"/>
<Preference
android:key="reset_usage"
android:title="@string/setting_reset_usage" />
android:title="@string/setting_reset_usage"/>
<eu.faircode.netguard.SwitchPreference
android:defaultValue="true"
android:dependency="filter"
android:key="use_hosts"
android:summary="@string/summary_block_domains"
android:title="@string/setting_block_domains" />
android:title="@string/setting_block_domains"/>
<EditTextPreference
android:dependency="filter"
android:inputType="number"
android:key="rcode"
android:summary="@string/summary_rcode" />
android:summary="@string/summary_rcode"/>
<Preference
android:dependency="filter"
android:key="forwarding"
android:title="@string/setting_forwarding" />
android:title="@string/setting_forwarding"/>
<EditTextPreference
inputType="phone"
android:hint="10.1.10.1"
android:inputType="phone"
android:key="vpn4" />
android:key="vpn4"/>
<EditTextPreference
android:hint="fd00:1:fd00:1:fd00:1:fd00:1"
android:inputType="text"
android:key="vpn6" />
android:key="vpn6"/>
<EditTextPreference
android:dependency="filter"
android:inputType="text"
android:key="dns" />
android:key="dns"/>
<EditTextPreference
android:dependency="filter"
android:inputType="text"
android:key="dns2" />
android:key="dns2"/>
<EditTextPreference
android:dependency="filter"
android:inputType="number"
android:key="ttl" />
android:key="ttl"/>
<eu.faircode.netguard.SwitchPreference
android:defaultValue="false"
android:dependency="filter"
android:key="socks5_enabled"
android:summary="@string/summary_socks5_enabled"
android:title="@string/setting_socks5_enabled" />
android:title="@string/setting_socks5_enabled"/>
<EditTextPreference
android:dependency="filter"
android:hint="127.0.0.1"
android:inputType="text"
android:key="socks5_addr" />
android:key="socks5_addr"/>
<EditTextPreference
android:dependency="filter"
android:hint="1080"
android:inputType="text"
android:key="socks5_port" />
android:key="socks5_port"/>
<EditTextPreference
android:dependency="filter"
android:inputType="text"
android:key="socks5_username" />
android:key="socks5_username"/>
<EditTextPreference
android:dependency="filter"
android:inputType="textPassword"
android:key="socks5_password" />
android:key="socks5_password"/>
<EditTextPreference
android:defaultValue="64"
android:inputType="number"
android:key="pcap_record_size" />
android:key="pcap_record_size"/>
<EditTextPreference
android:defaultValue="2"
android:inputType="number"
android:key="pcap_file_size" />
android:key="pcap_file_size"/>
<EditTextPreference
android:defaultValue="0"
android:inputType="number"
android:key="watchdog"
android:summary="@string/summary_watchdog" />
android:summary="@string/summary_watchdog"/>
<Preference
android:key="show_resolved"
android:title="@string/setting_show_resolved" />
android:title="@string/setting_show_resolved"/>
</PreferenceCategory>
</PreferenceScreen>
@ -258,22 +266,22 @@
android:defaultValue="false"
android:key="show_stats"
android:summary="@string/summary_stats"
android:title="@string/setting_stats" />
android:title="@string/setting_stats"/>
<eu.faircode.netguard.SwitchPreference
android:defaultValue="false"
android:dependency="show_stats"
android:key="show_top"
android:title="@string/setting_stats_top" />
android:title="@string/setting_stats_top"/>
<EditTextPreference
android:defaultValue="1000"
android:dependency="show_stats"
android:inputType="number"
android:key="stats_frequency" />
android:key="stats_frequency"/>
<EditTextPreference
android:defaultValue="90"
android:dependency="show_stats"
android:inputType="number"
android:key="stats_samples" />
android:key="stats_samples"/>
</PreferenceCategory>
</PreferenceScreen>
@ -285,22 +293,22 @@
android:title="@string/setting_backup">
<Preference
android:key="export"
android:title="@string/setting_export" />
android:title="@string/setting_export"/>
<Preference
android:key="import"
android:title="@string/setting_import" />
android:title="@string/setting_import"/>
<Preference
android:key="hosts_import"
android:title="@string/setting_hosts" />
android:title="@string/setting_hosts"/>
<EditTextPreference
android:defaultValue="https://www.netguard.me/hosts"
android:hint="https://www.netguard.me/hosts"
android:key="hosts_url"
android:title="@string/setting_hosts_url" />
android:title="@string/setting_hosts_url"/>
<Preference
android:dependency="hosts_url"
android:key="hosts_download"
android:title="@string/setting_hosts_download" />
android:title="@string/setting_hosts_download"/>
</PreferenceCategory>
</PreferenceScreen>
@ -316,15 +324,15 @@
android:entryValues="@array/logLevelValues"
android:key="loglevel"
android:summary="Log level verbose, debug and info will impact performance and battery usage"
android:title="Native log level" />
android:title="Native log level"/>
<eu.faircode.netguard.SwitchPreference
android:defaultValue="false"
android:key="debug_iab"
android:title="Debug IAB" />
android:title="Debug IAB"/>
<eu.faircode.netguard.SwitchPreference
android:defaultValue="false"
android:key="debug_ads"
android:title="Debug advertisements" />
android:title="Debug advertisements"/>
</PreferenceCategory>
</PreferenceScreen>
@ -336,13 +344,13 @@
android:title="@string/setting_technical">
<Preference
android:key="technical_info"
android:title="@string/setting_technical_general" />
android:title="@string/setting_technical_general"/>
<Preference
android:key="technical_network"
android:title="@string/setting_technical_networks" />
android:title="@string/setting_technical_networks"/>
<Preference
android:key="technical_subscription"
android:title="@string/setting_technical_subscription" />
android:title="@string/setting_technical_subscription"/>
</PreferenceCategory>
</PreferenceScreen>
</PreferenceScreen>