This commit is contained in:
Marco 2015-11-13 17:16:22 +01:00
commit dfb178bbbe
21 changed files with 47 additions and 21 deletions

View File

@ -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))

View File

@ -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))

View File

@ -88,9 +88,10 @@ public class Rule implements Comparable<Rule> {
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<Rule> {
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> {
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<Rule> {
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<Rule> {
@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);
}
}

View File

@ -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);

View File

@ -15,6 +15,7 @@ These issues are caused by bugs in Android, or in the software provided by the m
<string name="setting_whitelist_wifi">حظر الواي فاي بشكل افتراضي</string>
<string name="setting_whitelist_other">حظر الشبكة بشكل افتراضي</string>
<string name="setting_unused">Default allow when screen is on</string>
<string name="setting_whitelist_roaming">Block roaming by default</string>
<string name="setting_system">Manage system applications</string>
<string name="setting_dark">استخدام الثيم الداكن</string>

View File

@ -14,6 +14,7 @@ Das wird von Fehlern in Android oder in Software vom Hersteller verursacht. Bitt
<string name="setting_whitelist_wifi">Blockiere Wi-Fi standardmäßig</string>
<string name="setting_whitelist_other">Blockiere Mobilfunk standardmäßig</string>
<string name="setting_unused">Default allow when screen is on</string>
<string name="setting_whitelist_roaming">Blockiere Roaming standardmäßig</string>
<string name="setting_system">System Apps anzeigen</string>
<string name="setting_dark">Verwende dunkles Theme</string>

View File

@ -15,6 +15,7 @@ Esto es causado por errores en Android, o por el software proporcionado por el f
<string name="setting_whitelist_wifi">Bloquear Wi-Fi por defecto</string>
<string name="setting_whitelist_other">Bloquear red móvil por defecto</string>
<string name="setting_unused">Default allow when screen is on</string>
<string name="setting_whitelist_roaming">Bloquear roaming por defecto</string>
<string name="setting_system">Administrar aplicaciones de sistema</string>
<string name="setting_dark">Usar tema oscuro</string>

View File

@ -15,6 +15,7 @@ Ceci est causé par des bugs dans Android, ou dans le logiciel fourni par le con
<string name="setting_whitelist_wifi">Blocage Wi-Fi par défaut</string>
<string name="setting_whitelist_other">Blocage données mobiles par défaut</string>
<string name="setting_unused">Default allow when screen is on</string>
<string name="setting_whitelist_roaming">Blocage roaming par défaut</string>
<string name="setting_system">Gérer les applications système</string>
<string name="setting_dark">Utiliser le thème sombre</string>

View File

@ -16,6 +16,7 @@ Ció è causato da alcuni bug contenuti in Android, o in programmi forniti dal p
<string name="setting_whitelist_wifi">Blocca Wi-Fi di default</string>
<string name="setting_whitelist_other">Blocca rete dati di default</string>
<string name="setting_unused">Default allow when screen is on</string>
<string name="setting_whitelist_roaming">Blocca roaming di default</string>
<string name="setting_system">Gestisci applicazioni di sistema</string>
<string name="setting_dark">Usa il tema scuro</string>

View File

@ -15,6 +15,7 @@
<string name="setting_whitelist_wifi">デフォルトで Wi-Fi をブロック</string>
<string name="setting_whitelist_other">デフォルトでモバイル通信をブロック</string>
<string name="setting_unused">Default allow when screen is on</string>
<string name="setting_whitelist_roaming">デフォルトでローミングをブロック</string>
<string name="setting_system">システムアプリケーションの管理</string>
<string name="setting_dark">ダークテーマを使用する</string>

View File

@ -15,6 +15,7 @@ These issues are caused by bugs in Android, or in the software provided by the m
<string name="setting_whitelist_wifi">Wi-Fi 차단을 기본 설정으로</string>
<string name="setting_whitelist_other">모바일 데이터 차단을 기본 설정으로</string>
<string name="setting_unused">Default allow when screen is on</string>
<string name="setting_whitelist_roaming">Block roaming by default</string>
<string name="setting_system">Manage system applications</string>
<string name="setting_dark">어두운 테마 사용</string>

View File

@ -13,9 +13,10 @@ These issues are caused by bugs in Android, or in the software provided by the m
<string name="menu_support">Ondersteuning</string>
<string name="menu_about">Over</string>
<string name="setting_whitelist_wifi">Blokkeer Wi-Fi standaard</string>
<string name="setting_whitelist_other">Blokkeer mobiel standaard</string>
<string name="setting_whitelist_roaming">Blokkeer roaming standaard</string>
<string name="setting_whitelist_wifi">Blokkeer standaard Wi-Fi</string>
<string name="setting_whitelist_other">Blokkeer standaard mobiel</string>
<string name="setting_unused">Sta standaard toe als scherm aan is</string>
<string name="setting_whitelist_roaming">Blokkeer standaard roaming</string>
<string name="setting_system">Beheer systeemapplicaties</string>
<string name="setting_dark">Gebruik donker thema</string>
<string name="setting_export">Exporteer instellingen</string>

View File

@ -15,6 +15,7 @@ Problemy te są spowodowane błędami w samym Androidzie, lub oprogramowaniu dos
<string name="setting_whitelist_wifi">Domyślnie blokuj Wi-Fi</string>
<string name="setting_whitelist_other">Domyślnie blokuj Mobilne</string>
<string name="setting_unused">Default allow when screen is on</string>
<string name="setting_whitelist_roaming">Domyślnie blokuj Roaming</string>
<string name="setting_system">Zarządzaj aplikacjami systemowymi</string>
<string name="setting_dark">Użyj ciemnej skórki</string>

View File

@ -15,6 +15,7 @@ Acest lucru este cauzat de bug-uri in Android sau in software-ul pus la dispozit
<string name="setting_whitelist_wifi">Blocheaza implicit Wi-Fi</string>
<string name="setting_whitelist_other">Blocheaza implicit date mobile</string>
<string name="setting_unused">Default allow when screen is on</string>
<string name="setting_whitelist_roaming">Blocheaza implicit in roaming</string>
<string name="setting_system">Gestionati aplicatiile de sistem</string>
<string name="setting_dark">Foloseste tema intunecata</string>

View File

@ -13,6 +13,7 @@
<string name="setting_whitelist_wifi">Блокировать Wi-Fi по умолч.</string>
<string name="setting_whitelist_other">Блокировать моб. сеть по умолч.</string>
<string name="setting_unused">Default allow when screen is on</string>
<string name="setting_whitelist_roaming">Блокировать роуминг по умолч.</string>
<string name="setting_system">Управлять сист. приложениями</string>
<string name="setting_dark">Использовать темную тему</string>

View File

@ -15,6 +15,7 @@ Je to spôsobené chybami v Androide alebo v softvéri poskytovanom výrobcom, p
<string name="setting_whitelist_wifi">Predvolene blokovať Wi-Fi</string>
<string name="setting_whitelist_other">Predvolene blokovať mobilné dáta</string>
<string name="setting_unused">Default allow when screen is on</string>
<string name="setting_whitelist_roaming">Predvolene blokovať roaming</string>
<string name="setting_system">Spravovať systémové aplikácie</string>
<string name="setting_dark">Použiť tmavú tému</string>

View File

@ -11,6 +11,7 @@
<string name="setting_whitelist_wifi">Блокувати типово у Wi-Fi мережі</string>
<string name="setting_whitelist_other">Блокувати типово у мобільній мережі</string>
<string name="setting_unused">Default allow when screen is on</string>
<string name="setting_whitelist_roaming">Блокувати типово у роумінгу</string>
<string name="setting_system">Керувати системними додатками</string>
<string name="setting_dark">Використовувати темну тему</string>

View File

@ -15,6 +15,7 @@
<string name="setting_whitelist_wifi">默认阻止Wi-Fi网络</string>
<string name="setting_whitelist_other">默认阻止移动网络</string>
<string name="setting_unused">Default allow when screen is on</string>
<string name="setting_whitelist_roaming">默认阻止漫游</string>
<string name="setting_system">管理系统应用</string>
<string name="setting_dark">使用暗色主题</string>

View File

@ -16,6 +16,7 @@ These issues are caused by bugs in Android, or in the software provided by the m
<string name="setting_whitelist_wifi">Block Wi-Fi by default</string>
<string name="setting_whitelist_other">Block mobile by default</string>
<string name="setting_unused">Default allow when screen is on</string>
<string name="setting_whitelist_roaming">Block roaming by default</string>
<string name="setting_system">Manage system applications</string>
<string name="setting_dark">Use dark theme</string>

View File

@ -8,6 +8,10 @@
android:defaultValue="true"
android:key="whitelist_other"
android:title="@string/setting_whitelist_other" />
<SwitchPreference
android:defaultValue="false"
android:key="unused"
android:title="@string/setting_unused" />
<SwitchPreference
android:defaultValue="true"
android:key="whitelist_roaming"

View File

@ -1,7 +1,8 @@
#!/bin/bash
#grep -RIl "\<string name=\"msg_vpn" app/src/main/res | xargs sed -i -e '/msg_vpn/d'
grep -RIl "\<string name=\"msg_voluntary" app/src/main/res | xargs sed -i -e '/msg_voluntary/a\
\ \ \ \ <string name="msg_dimming">If you cannot press OK in the next dialog, another (screen dimming) application is likely manipulating the screen.</string>'
grep -RIl "\<string name=\"setting_whitelist_other" app/src/main/res | xargs sed -i -e '/setting_whitelist_other/a\
\ \ \ \ <string name="setting_unused">Default allow when screen is on</string>'
#grep -RIl "\<string name=\"summary_credentials" app/src/main/res | xargs sed -i -e 's/Prevent from being uninstalled/Prevent NetGuard from being uninstalled/g'