Merge "Fix system settings not cleared when package data is cleared"
diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
index 9592b63..8ac9fb9 100644
--- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
+++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
@@ -816,7 +816,7 @@
@Override
public void onPackageRemoved(String packageName, int uid) {
synchronized (mLock) {
- mSettingsRegistry.onPackageRemovedLocked(packageName,
+ mSettingsRegistry.removeSettingsForPackageLocked(packageName,
UserHandle.getUserId(uid));
}
}
@@ -827,6 +827,14 @@
mSettingsRegistry.onUidRemovedLocked(uid);
}
}
+
+ @Override
+ public void onPackageDataCleared(String packageName, int uid) {
+ synchronized (mLock) {
+ mSettingsRegistry.removeSettingsForPackageLocked(packageName,
+ UserHandle.getUserId(uid));
+ }
+ }
};
// package changes
@@ -2547,7 +2555,7 @@
}
}
- public void onPackageRemovedLocked(String packageName, int userId) {
+ public void removeSettingsForPackageLocked(String packageName, int userId) {
// Global and secure settings are signature protected. Apps signed
// by the platform certificate are generally not uninstalled and
// the main exception is tests. We trust components signed
@@ -2556,7 +2564,7 @@
final int systemKey = makeKey(SETTINGS_TYPE_SYSTEM, userId);
SettingsState systemSettings = mSettingsStates.get(systemKey);
if (systemSettings != null) {
- systemSettings.onPackageRemovedLocked(packageName);
+ systemSettings.removeSettingsForPackageLocked(packageName);
}
}
diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsState.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsState.java
index 449946d..e57483a 100644
--- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsState.java
+++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsState.java
@@ -293,7 +293,7 @@
}
// The settings provider must hold its lock when calling here.
- public void onPackageRemovedLocked(String packageName) {
+ public void removeSettingsForPackageLocked(String packageName) {
boolean removedSomething = false;
final int settingCount = mSettings.size();