diff options
| -rw-r--r-- | core/java/com/android/internal/app/SuspendedAppActivity.java | 12 | 
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);  |