Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ea72c08c authored by Nicolas Prevot's avatar Nicolas Prevot
Browse files

Schedule to write package restrictions.

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
parent 5b820a8a
Loading
Loading
Loading
Loading
+8 −10
Original line number Diff line number Diff line
@@ -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);
        }
    }