diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index ffdcd320..e7d5434d 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -37,6 +37,10 @@
+
+
+
+
diff --git a/app/src/main/java/eu/faircode/netguard/Receiver.java b/app/src/main/java/eu/faircode/netguard/Receiver.java
index fb885f67..7bef9de9 100644
--- a/app/src/main/java/eu/faircode/netguard/Receiver.java
+++ b/app/src/main/java/eu/faircode/netguard/Receiver.java
@@ -3,6 +3,7 @@ package eu.faircode.netguard;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
+import android.content.SharedPreferences;
import android.net.VpnService;
import android.util.Log;
@@ -14,8 +15,21 @@ public class Receiver extends BroadcastReceiver {
Log.i(TAG, "Received " + intent);
Util.logExtras(TAG, intent);
- // Start service
- if (VpnService.prepare(context) == null)
- SinkholeService.start(context);
+ if (Intent.ACTION_PACKAGE_REMOVED.equals(intent.getAction())) {
+ // Remove settings
+ if (intent.getBooleanExtra(Intent.EXTRA_DATA_REMOVED, false)) {
+ String packageName = intent.getData().getSchemeSpecificPart();
+ Log.i(TAG, "Deleting settings package=" + packageName);
+ context.getSharedPreferences("wifi", Context.MODE_PRIVATE).edit().remove(packageName).apply();
+ context.getSharedPreferences("other", Context.MODE_PRIVATE).edit().remove(packageName).apply();
+ context.getSharedPreferences("unused", Context.MODE_PRIVATE).edit().remove(packageName).apply();
+ context.getSharedPreferences("roaming", Context.MODE_PRIVATE).edit().remove(packageName).apply();
+ }
+
+ } else {
+ // Start service
+ if (VpnService.prepare(context) == null)
+ SinkholeService.start(context);
+ }
}
}
\ No newline at end of file