From 215e6b3c81aeb6634cb3c439f71dd96e1364d009 Mon Sep 17 00:00:00 2001 From: M66B Date: Tue, 3 Nov 2015 17:42:49 +0100 Subject: [PATCH] Remove settings on uninstalling application --- app/src/main/AndroidManifest.xml | 4 ++++ .../java/eu/faircode/netguard/Receiver.java | 20 ++++++++++++++++--- 2 files changed, 21 insertions(+), 3 deletions(-) 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