From f1d747b739ed2f9cd18036a90577c06fc2e48656 Mon Sep 17 00:00:00 2001 From: Tad Date: Mon, 25 Dec 2023 22:33:07 -0500 Subject: [PATCH] Better handle notifcation actions Signed-off-by: Tad --- app/build.gradle | 4 ++-- app/src/main/AndroidManifest.xml | 10 +++++--- .../NotificationPromptActivity.java | 23 +++++++++++++++++++ 3 files changed, 32 insertions(+), 5 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index f43abd1..80b91bd 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -6,8 +6,8 @@ android { applicationId "us.spotco.malwarescanner" minSdkVersion 19 targetSdkVersion 32 - versionCode 122 - versionName "3.0" + versionCode 301 + versionName "3.01" resConfigs 'en', 'af', 'de', 'el', 'es', 'fi', 'fr', 'it', 'pl', 'pt', 'ru', 'tr', 'zh-rCN' } buildTypes { diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 54edc91..d158198 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -6,12 +6,14 @@ - - @@ -34,7 +36,9 @@ android:launchMode="singleInstance" android:theme="@android:style/Theme.Translucent.NoTitleBar" android:layout_width="fill_parent" - android:layout_height="wrap_content" /> + android:layout_height="wrap_content" + android:noHistory="true" + android:excludeFromRecents="true" /> { finish(); }) + .setOnDismissListener((dialog) -> { + finish(); + }) .show(); } else { Log.d("Hypatia", "Invalid hash"); + finish(); } break; case "us.spotco.malwarescanner.DELETE_FILE": @@ -69,17 +73,25 @@ public class NotificationPromptActivity extends Activity { .setNegativeButton(android.R.string.no, (dialog, whichButton) -> { finish(); }) + .setOnDismissListener((dialog) -> { + finish(); + }) .show(); + } else { + finish(); } } else { Log.d("Hypatia", "Ignoring DELETE_FILE request from external package: " + intent.getPackage()); + finish(); } break; case "us.spotco.malwarescanner.UNINSTALL_APP": if (intent.getPackage() == null || Objects.equals(intent.getPackage(), BuildConfig.APPLICATION_ID)) { if (intent.getStringExtra("FILE_PATH") != null) { + boolean notFound = true; for (ApplicationInfo packageInfo : getPackageManager().getInstalledApplications(PackageManager.GET_META_DATA)) { if (packageInfo.sourceDir.equals(intent.getStringExtra("FILE_PATH"))) { + notFound = false; Uri packageUri = Uri.parse("package:" + packageInfo.packageName); Intent uninstallIntent = new Intent(Intent.ACTION_UNINSTALL_PACKAGE, packageUri); startActivity(uninstallIntent); @@ -87,9 +99,15 @@ public class NotificationPromptActivity extends Activity { finish(); } } + if (notFound) { + finish(); + } + } else { + finish(); } } else { Log.d("Hypatia", "Ignoring DELETE_FILE request from external package: " + intent.getPackage()); + finish(); } break; case "us.spotco.malwarescanner.IGNORE_DETECTION": @@ -107,4 +125,9 @@ public class NotificationPromptActivity extends Activity { Log.d("Hypatia", "Canceled notification"); } } + + @Override + public void onBackPressed() { + finish(); + } } \ No newline at end of file