Merge "Fixes ordering on AppsFilter#removePackage" into rvc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
910575c19c
@@ -796,7 +796,6 @@ public class AppsFilter {
|
|||||||
* @param setting the setting of the package being removed.
|
* @param setting the setting of the package being removed.
|
||||||
*/
|
*/
|
||||||
public void removePackage(PackageSetting setting) {
|
public void removePackage(PackageSetting setting) {
|
||||||
removeAppIdFromVisibilityCache(setting.appId);
|
|
||||||
mStateProvider.runWithState((settings, users) -> {
|
mStateProvider.runWithState((settings, users) -> {
|
||||||
final int userCount = users.length;
|
final int userCount = users.length;
|
||||||
for (int u = 0; u < userCount; u++) {
|
for (int u = 0; u < userCount; u++) {
|
||||||
@@ -819,17 +818,7 @@ public class AppsFilter {
|
|||||||
mQueriesViaPackage.remove(mQueriesViaPackage.keyAt(i), setting.appId);
|
mQueriesViaPackage.remove(mQueriesViaPackage.keyAt(i), setting.appId);
|
||||||
}
|
}
|
||||||
|
|
||||||
// re-add other shared user members to re-establish visibility between them and other
|
mForceQueryable.remove(setting.appId);
|
||||||
// packages
|
|
||||||
if (setting.sharedUser != null) {
|
|
||||||
for (int i = setting.sharedUser.packages.size() - 1; i >= 0; i--) {
|
|
||||||
if (setting.sharedUser.packages.valueAt(i) == setting) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
addPackageInternal(
|
|
||||||
setting.sharedUser.packages.valueAt(i), settings);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (setting.pkg != null && !setting.pkg.getProtectedBroadcasts().isEmpty()) {
|
if (setting.pkg != null && !setting.pkg.getProtectedBroadcasts().isEmpty()) {
|
||||||
final String removingPackageName = setting.pkg.getPackageName();
|
final String removingPackageName = setting.pkg.getPackageName();
|
||||||
@@ -843,6 +832,21 @@ public class AppsFilter {
|
|||||||
mOverlayReferenceMapper.removePkg(setting.name);
|
mOverlayReferenceMapper.removePkg(setting.name);
|
||||||
mFeatureConfig.updatePackageState(setting, true /*removed*/);
|
mFeatureConfig.updatePackageState(setting, true /*removed*/);
|
||||||
|
|
||||||
|
// After removing all traces of the package, if it's part of a shared user, re-add other
|
||||||
|
// shared user members to re-establish visibility between them and other packages.
|
||||||
|
// NOTE: this must come after all removals from data structures but before we update the
|
||||||
|
// cache
|
||||||
|
if (setting.sharedUser != null) {
|
||||||
|
for (int i = setting.sharedUser.packages.size() - 1; i >= 0; i--) {
|
||||||
|
if (setting.sharedUser.packages.valueAt(i) == setting) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
addPackageInternal(
|
||||||
|
setting.sharedUser.packages.valueAt(i), settings);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
removeAppIdFromVisibilityCache(setting.appId);
|
||||||
if (mShouldFilterCache != null && setting.sharedUser != null) {
|
if (mShouldFilterCache != null && setting.sharedUser != null) {
|
||||||
for (int i = setting.sharedUser.packages.size() - 1; i >= 0; i--) {
|
for (int i = setting.sharedUser.packages.size() - 1; i >= 0; i--) {
|
||||||
PackageSetting siblingSetting = setting.sharedUser.packages.valueAt(i);
|
PackageSetting siblingSetting = setting.sharedUser.packages.valueAt(i);
|
||||||
@@ -854,9 +858,6 @@ public class AppsFilter {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
mForceQueryable.remove(setting.appId);
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user