OSDN Git Service

Schedule to write package restrictions.
authorNicolas Prevot <nprevot@google.com>
Wed, 22 Oct 2014 15:24:00 +0000 (16:24 +0100)
committerNicolas Prevot <nprevot@google.com>
Mon, 27 Oct 2014 13:17:52 +0000 (13:17 +0000)
In PackageManagerService, for prefered activities,
persistent preferred activities and cross-profile intent filters:
schedule a write to package restrictions instead of writing the file directly.

Also, do not write all settings when writing package restrictions is enough.

BUG: 17996284

Change-Id: Ic732954f8a66d3aa1f0ca85a10fba290b14e68f4

services/core/java/com/android/server/pm/PackageManagerService.java

index b79e157..1ddc7da 100644 (file)
@@ -3249,7 +3249,7 @@ public class PackageManagerService extends IPackageManager.Stub {
                         if (DEBUG_PREFERRED) {
                             Slog.v(TAG, "Preferred activity bookkeeping changed; writing restrictions");
                         }
-                        mSettings.writePackageRestrictionsLPr(userId);
+                        scheduleWritePackageRestrictionsLocked(userId);
                     }
                 }
             }
@@ -11536,7 +11536,7 @@ public class PackageManagerService extends IPackageManager.Stub {
                     + userId + ":");
             filter.dump(new LogPrinter(Log.INFO, TAG), "  ");
             pir.addFilter(new PreferredActivity(filter, match, set, activity, always));
-            mSettings.writePackageRestrictionsLPr(userId);
+            scheduleWritePackageRestrictionsLocked(userId);
         }
     }
 
@@ -11652,8 +11652,7 @@ public class PackageManagerService extends IPackageManager.Stub {
 
             int user = UserHandle.getCallingUserId();
             if (clearPackagePreferredActivitiesLPw(packageName, user)) {
-                mSettings.writePackageRestrictionsLPr(user);
-                scheduleWriteSettingsLocked();
+                scheduleWritePackageRestrictionsLocked(user);
             }
         }
     }
@@ -11703,8 +11702,7 @@ public class PackageManagerService extends IPackageManager.Stub {
             int user = UserHandle.getCallingUserId();
             clearPackagePreferredActivitiesLPw(null, user);
             mSettings.readDefaultPreferredAppsLPw(this, user);
-            mSettings.writePackageRestrictionsLPr(user);
-            scheduleWriteSettingsLocked();
+            scheduleWritePackageRestrictionsLocked(user);
         }
     }
 
@@ -11756,7 +11754,7 @@ public class PackageManagerService extends IPackageManager.Stub {
             filter.dump(new LogPrinter(Log.INFO, TAG), "  ");
             mSettings.editPersistentPreferredActivitiesLPw(userId).addFilter(
                     new PersistentPreferredActivity(filter, activity));
-            mSettings.writePackageRestrictionsLPr(userId);
+            scheduleWritePackageRestrictionsLocked(userId);
         }
     }
 
@@ -11798,7 +11796,7 @@ public class PackageManagerService extends IPackageManager.Stub {
             }
 
             if (changed) {
-                mSettings.writePackageRestrictionsLPr(userId);
+                scheduleWritePackageRestrictionsLocked(userId);
             }
         }
     }
@@ -11819,7 +11817,7 @@ public class PackageManagerService extends IPackageManager.Stub {
             CrossProfileIntentFilter filter = new CrossProfileIntentFilter(intentFilter,
                     ownerPackage, UserHandle.getUserId(callingUid), targetUserId, flags);
             mSettings.editCrossProfileIntentResolverLPw(sourceUserId).addFilter(filter);
-            mSettings.writePackageRestrictionsLPr(sourceUserId);
+            scheduleWritePackageRestrictionsLocked(sourceUserId);
         }
     }
 
@@ -11843,7 +11841,7 @@ public class PackageManagerService extends IPackageManager.Stub {
                     resolver.removeFilter(filter);
                 }
             }
-            mSettings.writePackageRestrictionsLPr(sourceUserId);
+            scheduleWritePackageRestrictionsLocked(sourceUserId);
         }
     }