From 7ab9cee0de7dbb9632e005b208ccd8cc9a2abbc5 Mon Sep 17 00:00:00 2001 From: Hari Date: Sat, 21 Jan 2017 15:28:36 +0530 Subject: [PATCH 1/3] Added a receiver to listen to app uninstalls --- OpenKeychain/src/main/AndroidManifest.xml | 7 +++++++ .../remote/PackageUninstallReceiver.java | 18 ++++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/PackageUninstallReceiver.java diff --git a/OpenKeychain/src/main/AndroidManifest.xml b/OpenKeychain/src/main/AndroidManifest.xml index b80e21cb7..bad087468 100644 --- a/OpenKeychain/src/main/AndroidManifest.xml +++ b/OpenKeychain/src/main/AndroidManifest.xml @@ -110,6 +110,13 @@ + + + + + + + Date: Sat, 21 Jan 2017 19:03:48 +0530 Subject: [PATCH 2/3] Added checks --- .../keychain/remote/PackageUninstallReceiver.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/PackageUninstallReceiver.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/PackageUninstallReceiver.java index 5cedf30e0..0957a3c1e 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/PackageUninstallReceiver.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/PackageUninstallReceiver.java @@ -11,8 +11,14 @@ public class PackageUninstallReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { - String packageName = intent.getData().getEncodedSchemeSpecificPart(); - Uri appUri = KeychainContract.ApiApps.buildByPackageNameUri(packageName); - context.getContentResolver().delete(appUri, null, null); + if (Intent.ACTION_PACKAGE_FULLY_REMOVED.equals(intent.getAction())) { + Uri uri = intent.getData(); + if (uri == null) { + return; + } + String packageName = intent.getData().getEncodedSchemeSpecificPart(); + Uri appUri = KeychainContract.ApiApps.buildByPackageNameUri(packageName); + context.getContentResolver().delete(appUri, null, null); + } } } From bec2b95bd32bb70a7ab86c5ced5c174bdbccd271 Mon Sep 17 00:00:00 2001 From: Hari Date: Sun, 22 Jan 2017 10:00:49 +0530 Subject: [PATCH 3/3] Small change in reference --- .../keychain/remote/PackageUninstallReceiver.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/PackageUninstallReceiver.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/PackageUninstallReceiver.java index 0957a3c1e..734b93d12 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/PackageUninstallReceiver.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/PackageUninstallReceiver.java @@ -16,7 +16,7 @@ public class PackageUninstallReceiver extends BroadcastReceiver { if (uri == null) { return; } - String packageName = intent.getData().getEncodedSchemeSpecificPart(); + String packageName = uri.getEncodedSchemeSpecificPart(); Uri appUri = KeychainContract.ApiApps.buildByPackageNameUri(packageName); context.getContentResolver().delete(appUri, null, null); }