From 0a0830898c2fe73288eed2cf3bcbe95be725112e Mon Sep 17 00:00:00 2001 From: M66B Date: Sun, 8 Nov 2015 12:30:39 +0100 Subject: [PATCH 1/7] Fixed/improved import --- .../faircode/netguard/ActivitySettings.java | 35 +++++++++++++------ .../eu/faircode/netguard/SinkholeService.java | 2 +- app/src/main/res/layout/action.xml | 3 +- 3 files changed, 28 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/eu/faircode/netguard/ActivitySettings.java b/app/src/main/java/eu/faircode/netguard/ActivitySettings.java index 94e4c290..ae643188 100644 --- a/app/src/main/java/eu/faircode/netguard/ActivitySettings.java +++ b/app/src/main/java/eu/faircode/netguard/ActivitySettings.java @@ -213,11 +213,9 @@ public class ActivitySettings extends AppCompatActivity implements SharedPrefere @Override protected void onPostExecute(Throwable ex) { - if (ex == null) { - SinkholeService.reload(null, ActivitySettings.this); - recreate(); + if (ex == null) Toast.makeText(ActivitySettings.this, R.string.msg_completed, Toast.LENGTH_LONG).show(); - } else + else Toast.makeText(ActivitySettings.this, ex.toString(), Toast.LENGTH_LONG).show(); } }.execute(); @@ -267,23 +265,31 @@ public class ActivitySettings extends AppCompatActivity implements SharedPrefere } private void xmlImport(InputStream in) throws IOException, SAXException, ParserConfigurationException { + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); + prefs.edit().putBoolean("enabled", false).apply(); + SinkholeService.stop(this); + XMLReader reader = SAXParserFactory.newInstance().newSAXParser().getXMLReader(); XmlImportHandler handler = new XmlImportHandler(); reader.setContentHandler(handler); reader.parse(new InputSource(in)); - xmlImport(handler.application, PreferenceManager.getDefaultSharedPreferences(this)); + xmlImport(handler.application, prefs); xmlImport(handler.wifi, getSharedPreferences("wifi", Context.MODE_PRIVATE)); xmlImport(handler.mobile, getSharedPreferences("other", Context.MODE_PRIVATE)); xmlImport(handler.unused, getSharedPreferences("unused", Context.MODE_PRIVATE)); + xmlImport(handler.roaming, getSharedPreferences("roaming", Context.MODE_PRIVATE)); } private void xmlImport(Map settings, SharedPreferences prefs) { SharedPreferences.Editor editor = prefs.edit(); + // Clear existing setting for (String key : prefs.getAll().keySet()) - editor.remove(key); + if (!"enabled".equals(key)) + editor.remove(key); + // Apply new settings for (String key : settings.keySet()) { Object value = settings.get(key); if (value instanceof Boolean) @@ -296,10 +302,12 @@ public class ActivitySettings extends AppCompatActivity implements SharedPrefere } private class XmlImportHandler extends DefaultHandler { + public boolean enabled = false; public Map application = new HashMap<>(); public Map wifi = new HashMap<>(); public Map mobile = new HashMap<>(); public Map unused = new HashMap<>(); + public Map roaming = new HashMap<>(); private Map current = null; @Override @@ -319,6 +327,9 @@ public class ActivitySettings extends AppCompatActivity implements SharedPrefere else if (qName.equals("unused")) current = unused; + else if (qName.equals("roaming")) + roaming = unused; + else if (qName.equals("setting")) { String key = attributes.getValue("key"); String type = attributes.getValue("type"); @@ -327,10 +338,14 @@ public class ActivitySettings extends AppCompatActivity implements SharedPrefere if (current == null) Log.e(TAG, "No current key=" + key); else { - if ("boolean".equals(type)) - current.put(key, Boolean.parseBoolean(value)); - else - Log.e(TAG, "Unknown type key=" + key); + if ("enabled".equals(key)) + enabled = Boolean.parseBoolean(value); + else { + if ("boolean".equals(type)) + current.put(key, Boolean.parseBoolean(value)); + else + Log.e(TAG, "Unknown type key=" + key); + } } } else diff --git a/app/src/main/java/eu/faircode/netguard/SinkholeService.java b/app/src/main/java/eu/faircode/netguard/SinkholeService.java index e0a6a64f..8e0c7afd 100644 --- a/app/src/main/java/eu/faircode/netguard/SinkholeService.java +++ b/app/src/main/java/eu/faircode/netguard/SinkholeService.java @@ -77,7 +77,7 @@ public class SinkholeService extends VpnService { Command cmd = (intent == null ? Command.start : (Command) intent.getSerializableExtra(EXTRA_COMMAND)); SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(SinkholeService.this); - Log.i(TAG, "Executing command=" + cmd + " vpn=" + (vpn != null)); + Log.i(TAG, "Executing intent=" + intent + " command=" + cmd + " vpn=" + (vpn != null)); switch (cmd) { case start: if (prefs.getBoolean("foreground", false)) { diff --git a/app/src/main/res/layout/action.xml b/app/src/main/res/layout/action.xml index 908e4f73..312f212e 100644 --- a/app/src/main/res/layout/action.xml +++ b/app/src/main/res/layout/action.xml @@ -9,7 +9,8 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" - android:layout_marginStart="12dp" /> + android:layout_marginStart="12dp" + android:saveEnabled="false" /> Date: Sun, 8 Nov 2015 12:32:04 +0100 Subject: [PATCH 2/7] Retain intent queue --- app/src/main/java/eu/faircode/netguard/SinkholeService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/eu/faircode/netguard/SinkholeService.java b/app/src/main/java/eu/faircode/netguard/SinkholeService.java index 8e0c7afd..baf473f5 100644 --- a/app/src/main/java/eu/faircode/netguard/SinkholeService.java +++ b/app/src/main/java/eu/faircode/netguard/SinkholeService.java @@ -114,7 +114,7 @@ public class SinkholeService extends VpnService { stopForeground(true); } Widget.updateWidgets(SinkholeService.this); - stopSelf(); + // stopSelf(); break; } } From b74a39131213222d77760019abb7fe6667f2a126 Mon Sep 17 00:00:00 2001 From: M66B Date: Sun, 8 Nov 2015 12:41:51 +0100 Subject: [PATCH 3/7] 0.20 beta --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 35bdc958..6f4161ca 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -8,8 +8,8 @@ android { applicationId "eu.faircode.netguard" minSdkVersion 21 targetSdkVersion 23 - versionCode 19 - versionName "0.19" + versionCode 20 + versionName "0.20" } buildTypes { release { From 46a03df01f90b47df5190f8120956e49578dedfd Mon Sep 17 00:00:00 2001 From: M66B Date: Sun, 8 Nov 2015 13:00:50 +0100 Subject: [PATCH 4/7] Chrome needs the downloads provider --- app/src/main/res/xml/predefined.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/src/main/res/xml/predefined.xml b/app/src/main/res/xml/predefined.xml index e561b772..0a59a7ed 100644 --- a/app/src/main/res/xml/predefined.xml +++ b/app/src/main/res/xml/predefined.xml @@ -9,6 +9,10 @@ package="com.android.vending" related="com.google.android.gms,com.android.providers.downloads" title="Google Play Store" /> +