From 40c61bdc5e8b790b264092337ff6d17b00371ec5 Mon Sep 17 00:00:00 2001 From: M66B Date: Fri, 13 Nov 2015 16:01:42 +0100 Subject: [PATCH] Added option to default allow when screen on --- .../eu/faircode/netguard/ActivityMain.java | 1 + .../faircode/netguard/ActivitySettings.java | 3 +- .../main/java/eu/faircode/netguard/Rule.java | 31 ++++++++++--------- .../eu/faircode/netguard/SinkholeService.java | 3 ++ app/src/main/res/values-ar/strings.xml | 1 + app/src/main/res/values-de/strings.xml | 1 + app/src/main/res/values-es/strings.xml | 1 + app/src/main/res/values-fr/strings.xml | 1 + app/src/main/res/values-it/strings.xml | 1 + app/src/main/res/values-ja/strings.xml | 1 + app/src/main/res/values-ko/strings.xml | 1 + app/src/main/res/values-nl/strings.xml | 7 +++-- app/src/main/res/values-pl/strings.xml | 1 + app/src/main/res/values-ro/strings.xml | 1 + app/src/main/res/values-ru/strings.xml | 1 + app/src/main/res/values-sk/strings.xml | 1 + app/src/main/res/values-uk/strings.xml | 1 + app/src/main/res/values-zh-rCN/strings.xml | 1 + app/src/main/res/values/strings.xml | 1 + app/src/main/res/xml/preferences.xml | 4 +++ strings.sh | 5 +-- 21 files changed, 47 insertions(+), 21 deletions(-) diff --git a/app/src/main/java/eu/faircode/netguard/ActivityMain.java b/app/src/main/java/eu/faircode/netguard/ActivityMain.java index 576d862d..07201c86 100644 --- a/app/src/main/java/eu/faircode/netguard/ActivityMain.java +++ b/app/src/main/java/eu/faircode/netguard/ActivityMain.java @@ -354,6 +354,7 @@ public class ActivityMain extends AppCompatActivity implements SharedPreferences } else if ("whitelist_wifi".equals(name) || "whitelist_other".equals(name) || + "unused".equals(name) || "whitelist_roaming".equals(name) || "manage_system".equals(name) || "imported".equals(name)) diff --git a/app/src/main/java/eu/faircode/netguard/ActivitySettings.java b/app/src/main/java/eu/faircode/netguard/ActivitySettings.java index 9fc09a09..a2a403fd 100644 --- a/app/src/main/java/eu/faircode/netguard/ActivitySettings.java +++ b/app/src/main/java/eu/faircode/netguard/ActivitySettings.java @@ -115,7 +115,8 @@ public class ActivitySettings extends AppCompatActivity implements SharedPrefere else if ("whitelist_roaming".equals(name)) SinkholeService.reload("other", this); - else if ("manage_system".equals(name)) + else if ("unused".equals(name) || + "manage_system".equals(name)) SinkholeService.reload(null, this); else if ("dark_theme".equals(name)) diff --git a/app/src/main/java/eu/faircode/netguard/Rule.java b/app/src/main/java/eu/faircode/netguard/Rule.java index 4867d4a6..5d3f16f6 100644 --- a/app/src/main/java/eu/faircode/netguard/Rule.java +++ b/app/src/main/java/eu/faircode/netguard/Rule.java @@ -88,9 +88,10 @@ public class Rule implements Comparable { SharedPreferences roaming = context.getSharedPreferences("roaming", Context.MODE_PRIVATE); // Get settings - boolean whitelist_wifi = prefs.getBoolean("whitelist_wifi", true); - boolean whitelist_other = prefs.getBoolean("whitelist_other", true); - boolean whitelist_roaming = prefs.getBoolean("whitelist_roaming", true); + boolean default_wifi = prefs.getBoolean("whitelist_wifi", true); + boolean default_other = prefs.getBoolean("whitelist_other", true); + boolean default_unused = prefs.getBoolean("unused", false); + boolean default_roaming = prefs.getBoolean("whitelist_roaming", true); boolean manage_system = prefs.getBoolean("manage_system", false); // Get predefined rules @@ -106,8 +107,8 @@ public class Rule implements Comparable { if ("rule".equals(xml.getName())) { String pkg = xml.getAttributeValue(null, "package"); boolean pblocked = xml.getAttributeBooleanValue(null, "blocked", false); - boolean punused = xml.getAttributeBooleanValue(null, "unused", false); - boolean proaming = xml.getAttributeBooleanValue(null, "roaming", whitelist_roaming); + boolean punused = xml.getAttributeBooleanValue(null, "unused", default_unused); + boolean proaming = xml.getAttributeBooleanValue(null, "roaming", default_roaming); pre_blocked.put(pkg, pblocked); pre_unused.put(pkg, punused); pre_roaming.put(pkg, proaming); @@ -136,10 +137,10 @@ public class Rule implements Comparable { rule.system = system; - rule.wifi_default = (pre_blocked.containsKey(info.packageName) ? pre_blocked.get(info.packageName) : whitelist_wifi); - rule.other_default = (pre_blocked.containsKey(info.packageName) ? pre_blocked.get(info.packageName) : whitelist_other); - rule.unused_default = (pre_unused.containsKey(info.packageName) ? pre_unused.get(info.packageName) : false); - rule.roaming_default = (pre_roaming.containsKey(info.packageName) ? pre_roaming.get(info.packageName) : whitelist_roaming); + rule.wifi_default = (pre_blocked.containsKey(info.packageName) ? pre_blocked.get(info.packageName) : default_wifi); + rule.other_default = (pre_blocked.containsKey(info.packageName) ? pre_blocked.get(info.packageName) : default_other); + rule.unused_default = (pre_unused.containsKey(info.packageName) ? pre_unused.get(info.packageName) : default_unused); + rule.roaming_default = (pre_roaming.containsKey(info.packageName) ? pre_roaming.get(info.packageName) : default_roaming); rule.wifi_blocked = (system && !manage_system ? false : wifi.getBoolean(info.packageName, rule.wifi_default)); rule.other_blocked = (system && !manage_system ? false : other.getBoolean(info.packageName, rule.other_default)); @@ -149,10 +150,10 @@ public class Rule implements Comparable { if (pre_related.containsKey(info.packageName)) rule.related = pre_related.get(info.packageName); - rule.changed = (rule.wifi_blocked != whitelist_wifi || - rule.other_blocked != whitelist_other || - rule.unused || - (!rule.other_blocked || rule.unused) && rule.roaming && rule.roaming != whitelist_roaming); + rule.changed = (rule.wifi_blocked != default_wifi || + rule.other_blocked != default_other || + ((rule.wifi_blocked || rule.other_blocked) && rule.unused != default_unused) || + ((!rule.other_blocked || rule.unused) && rule.roaming != default_roaming)); listRules.add(rule); } @@ -166,10 +167,10 @@ public class Rule implements Comparable { @Override public int compareTo(Rule other) { - if ((changed || unused) == (other.changed || other.unused)) { + if (changed == other.changed) { int i = name.compareToIgnoreCase(other.name); return (i == 0 ? info.packageName.compareTo(other.info.packageName) : i); } - return (changed || unused ? -1 : 1); + return (changed ? -1 : 1); } } diff --git a/app/src/main/java/eu/faircode/netguard/SinkholeService.java b/app/src/main/java/eu/faircode/netguard/SinkholeService.java index 6206c18a..4198a96b 100644 --- a/app/src/main/java/eu/faircode/netguard/SinkholeService.java +++ b/app/src/main/java/eu/faircode/netguard/SinkholeService.java @@ -163,9 +163,11 @@ public class SinkholeService extends VpnService { builder.addRoute("0:0:0:0:0:0:0:0", 0); // Add list of allowed applications + int allowed = 0; for (Rule rule : Rule.getRules(true, TAG, this)) { boolean blocked = (metered ? rule.other_blocked : rule.wifi_blocked); if ((!blocked || (rule.unused && interactive)) && (!metered || !(rule.roaming && last_roaming))) { + allowed++; if (debug) Log.i(TAG, "Allowing " + rule.info.packageName); try { @@ -175,6 +177,7 @@ public class SinkholeService extends VpnService { } } } + Log.i(TAG, "Allowed count=" + allowed); // Build configure intent Intent configure = new Intent(this, ActivityMain.class); diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index b8ab6e31..f11c2148 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -15,6 +15,7 @@ These issues are caused by bugs in Android, or in the software provided by the m حظر الواي فاي بشكل افتراضي حظر الشبكة بشكل افتراضي + Default allow when screen is on Block roaming by default Manage system applications استخدام الثيم الداكن diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index ab3b4a84..4c142e37 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -14,6 +14,7 @@ Das wird von Fehlern in Android oder in Software vom Hersteller verursacht. Bitt Blockiere Wi-Fi standardmäßig Blockiere Mobilfunk standardmäßig + Default allow when screen is on Blockiere Roaming standardmäßig System Apps anzeigen Verwende dunkles Theme diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index ac6edd8a..711eacb2 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -15,6 +15,7 @@ Esto es causado por errores en Android, o por el software proporcionado por el f Bloquear Wi-Fi por defecto Bloquear red móvil por defecto + Default allow when screen is on Bloquear roaming por defecto Administrar aplicaciones de sistema Usar tema oscuro diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index f17cc3ab..df50c2f4 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -15,6 +15,7 @@ Ceci est causé par des bugs dans Android, ou dans le logiciel fourni par le con Blocage Wi-Fi par défaut Blocage données mobiles par défaut + Default allow when screen is on Blocage roaming par défaut Gérer les applications système Utiliser le thème sombre diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 1fad6087..6d7c7937 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -16,6 +16,7 @@ Ció è causato da alcuni bug contenuti in Android, o in programmi forniti dal p Blocca Wi-Fi di default Blocca rete dati di default + Default allow when screen is on Blocca roaming di default Gestisci applicazioni di sistema Usa il tema scuro diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index d929bc86..2f21ba84 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -15,6 +15,7 @@ デフォルトで Wi-Fi をブロック デフォルトでモバイル通信をブロック + Default allow when screen is on デフォルトでローミングをブロック システムアプリケーションの管理 ダークテーマを使用する diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index 6374963c..1741c1e2 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -15,6 +15,7 @@ These issues are caused by bugs in Android, or in the software provided by the m Wi-Fi 차단을 기본 설정으로 모바일 데이터 차단을 기본 설정으로 + Default allow when screen is on Block roaming by default Manage system applications 어두운 테마 사용 diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 93aa2a89..b2702347 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -13,9 +13,10 @@ These issues are caused by bugs in Android, or in the software provided by the m Ondersteuning Over - Blokkeer Wi-Fi standaard - Blokkeer mobiel standaard - Blokkeer roaming standaard + Blokkeer standaard Wi-Fi + Blokkeer standaard mobiel + Sta standaard toe als scherm aan is + Blokkeer standaard roaming Beheer systeemapplicaties Gebruik donker thema Exporteer instellingen diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index c98e9796..48b78978 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -15,6 +15,7 @@ Problemy te są spowodowane błędami w samym Androidzie, lub oprogramowaniu dos Domyślnie blokuj Wi-Fi Domyślnie blokuj Mobilne + Default allow when screen is on Domyślnie blokuj Roaming Zarządzaj aplikacjami systemowymi Użyj ciemnej skórki diff --git a/app/src/main/res/values-ro/strings.xml b/app/src/main/res/values-ro/strings.xml index 4461bc03..e78d1733 100644 --- a/app/src/main/res/values-ro/strings.xml +++ b/app/src/main/res/values-ro/strings.xml @@ -15,6 +15,7 @@ Acest lucru este cauzat de bug-uri in Android sau in software-ul pus la dispozit Blocheaza implicit Wi-Fi Blocheaza implicit date mobile + Default allow when screen is on Blocheaza implicit in roaming Gestionati aplicatiile de sistem Foloseste tema intunecata diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 1d2779ea..5e999551 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -13,6 +13,7 @@ Блокировать Wi-Fi по умолч. Блокировать моб. сеть по умолч. + Default allow when screen is on Блокировать роуминг по умолч. Управлять сист. приложениями Использовать темную тему diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml index 8b38b74f..d415d7c6 100644 --- a/app/src/main/res/values-sk/strings.xml +++ b/app/src/main/res/values-sk/strings.xml @@ -15,6 +15,7 @@ Je to spôsobené chybami v Androide alebo v softvéri poskytovanom výrobcom, p Predvolene blokovať Wi-Fi Predvolene blokovať mobilné dáta + Default allow when screen is on Predvolene blokovať roaming Spravovať systémové aplikácie Použiť tmavú tému diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 63840dd4..3efbf6f2 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -11,6 +11,7 @@ Блокувати типово у Wi-Fi мережі Блокувати типово у мобільній мережі + Default allow when screen is on Блокувати типово у роумінгу Керувати системними додатками Використовувати темну тему diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 33d186a0..4951d62b 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -15,6 +15,7 @@ 默认阻止Wi-Fi网络 默认阻止移动网络 + Default allow when screen is on 默认阻止漫游 管理系统应用 使用暗色主题 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 691f02c4..aee60b2b 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -16,6 +16,7 @@ These issues are caused by bugs in Android, or in the software provided by the m Block Wi-Fi by default Block mobile by default + Default allow when screen is on Block roaming by default Manage system applications Use dark theme diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml index 31b5fc4a..c4e1e02c 100644 --- a/app/src/main/res/xml/preferences.xml +++ b/app/src/main/res/xml/preferences.xml @@ -8,6 +8,10 @@ android:defaultValue="true" android:key="whitelist_other" android:title="@string/setting_whitelist_other" /> + If you cannot press OK in the next dialog, another (screen dimming) application is likely manipulating the screen.' + +grep -RIl "\Default allow when screen is on' #grep -RIl "\