summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/pm/PackageManagerService.java12
1 files changed, 11 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java
index baed6091f405..419e4ad19e71 100644
--- a/services/core/java/com/android/server/pm/PackageManagerService.java
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
@@ -538,6 +538,9 @@ public class PackageManagerService extends IPackageManager.Stub {
final boolean mIsPreNUpgrade;
final boolean mIsPreNMR1Upgrade;
+ @GuardedBy("mPackages")
+ private boolean mDexOptDialogShown;
+
/** The location for ASEC container files on internal storage. */
final String mAsecInternalPath;
@@ -7150,7 +7153,11 @@ public class PackageManagerService extends IPackageManager.Stub {
}
}
if (doTrim) {
- if (!isFirstBoot()) {
+ final boolean dexOptDialogShown;
+ synchronized (mPackages) {
+ dexOptDialogShown = mDexOptDialogShown;
+ }
+ if (!isFirstBoot() && dexOptDialogShown) {
try {
ActivityManagerNative.getDefault().showBootMessage(
mContext.getResources().getString(
@@ -7244,6 +7251,9 @@ public class PackageManagerService extends IPackageManager.Stub {
numberOfPackagesVisited, numberOfPackagesToDexopt), true);
} catch (RemoteException e) {
}
+ synchronized (mPackages) {
+ mDexOptDialogShown = true;
+ }
}
// If the OTA updates a system app which was previously preopted to a non-preopted state