summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Alex Buynytskyy <alexbuy@google.com> 2023-12-07 16:22:53 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2023-12-07 16:22:53 +0000
commite46ad2f30a9177e14d0525e6512ab89e8d2f106b (patch)
tree089c9b098bf959966d22e6d1110d52e0ce88691e
parenta20e3abb31408d97c6d68ccdcbc8dde6656c51ee (diff)
parenteef74ce4edc2b92942412e8589ffee763d55b919 (diff)
Merge "Add a suspension check to SuspendedAppActivity" into main am: eef74ce4ed
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2535480 Change-Id: I679b0ae7552da891144d77c8326503c6603d2dcf Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--core/java/com/android/internal/app/SuspendedAppActivity.java12
1 files changed, 11 insertions, 1 deletions
diff --git a/core/java/com/android/internal/app/SuspendedAppActivity.java b/core/java/com/android/internal/app/SuspendedAppActivity.java
index a5e775a461a9..389576da86b7 100644
--- a/core/java/com/android/internal/app/SuspendedAppActivity.java
+++ b/core/java/com/android/internal/app/SuspendedAppActivity.java
@@ -80,7 +80,8 @@ public class SuspendedAppActivity extends AlertActivity
// Suspension conditions were modified, dismiss any related visible dialogs.
final String[] modified = intent.getStringArrayExtra(
Intent.EXTRA_CHANGED_PACKAGE_LIST);
- if (ArrayUtils.contains(modified, mSuspendedPackage)) {
+ if (ArrayUtils.contains(modified, mSuspendedPackage)
+ && !isPackageSuspended(mSuspendedPackage)) {
if (!isFinishing()) {
Slog.w(TAG, "Package " + mSuspendedPackage + " has modified"
+ " suspension conditions while dialog was visible. Finishing.");
@@ -92,6 +93,15 @@ public class SuspendedAppActivity extends AlertActivity
}
};
+ private boolean isPackageSuspended(String packageName) {
+ try {
+ return mPm.isPackageSuspended(packageName);
+ } catch (PackageManager.NameNotFoundException ne) {
+ Slog.e(TAG, "Package " + packageName + " not found", ne);
+ }
+ return false;
+ }
+
private CharSequence getAppLabel(String packageName) {
try {
return mPm.getApplicationInfoAsUser(packageName, 0, mUserId).loadLabel(mPm);