Merge "PMS caches DPM" into sc-dev

This commit is contained in:
Adam Bookatz
2021-04-19 22:11:18 +00:00
committed by Android (Google) Code Review

View File

@@ -1495,6 +1495,9 @@ public class PackageManagerService extends IPackageManager.Stub
// List of packages names to keep cached, even if they are uninstalled for all users // List of packages names to keep cached, even if they are uninstalled for all users
private List<String> mKeepUninstalledPackages; private List<String> mKeepUninstalledPackages;
// Cached reference to IDevicePolicyManager.
private IDevicePolicyManager mDevicePolicyManager = null;
private File mCacheDir; private File mCacheDir;
private Future<?> mPrepareAppDataFuture; private Future<?> mPrepareAppDataFuture;
@@ -20807,8 +20810,7 @@ public class PackageManagerService extends IPackageManager.Stub
} }
private boolean isPackageDeviceAdmin(String packageName, int userId) { private boolean isPackageDeviceAdmin(String packageName, int userId) {
IDevicePolicyManager dpm = IDevicePolicyManager.Stub.asInterface( final IDevicePolicyManager dpm = getDevicePolicyManager();
ServiceManager.getService(Context.DEVICE_POLICY_SERVICE));
try { try {
if (dpm != null) { if (dpm != null) {
final ComponentName deviceOwnerComponentName = dpm.getDeviceOwnerComponent( final ComponentName deviceOwnerComponentName = dpm.getDeviceOwnerComponent(
@@ -20840,6 +20842,16 @@ public class PackageManagerService extends IPackageManager.Stub
return false; return false;
} }
/** Returns the device policy manager interface. */
private IDevicePolicyManager getDevicePolicyManager() {
if (mDevicePolicyManager == null) {
// No need to synchronize; worst-case scenario it will be fetched twice.
mDevicePolicyManager = IDevicePolicyManager.Stub.asInterface(
ServiceManager.getService(Context.DEVICE_POLICY_SERVICE));
}
return mDevicePolicyManager;
}
private boolean shouldKeepUninstalledPackageLPr(String packageName) { private boolean shouldKeepUninstalledPackageLPr(String packageName) {
return mKeepUninstalledPackages != null && mKeepUninstalledPackages.contains(packageName); return mKeepUninstalledPackages != null && mKeepUninstalledPackages.contains(packageName);
} }