Loading services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java +22 −16 Original line number Original line Diff line number Diff line Loading @@ -8533,27 +8533,33 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { mPackagesToRemove.add(packageUserPair); mPackagesToRemove.add(packageUserPair); } } final List<ComponentName> activeAdminsList = getActiveAdmins(userId); // All active admins on the user. if (activeAdminsList == null || activeAdminsList.size() == 0) { final List<ComponentName> allActiveAdmins = getActiveAdmins(userId); startUninstallIntent(packageName, userId); return; } for (ComponentName activeAdmin : activeAdminsList) { // Active admins in the target package. final List<ComponentName> packageActiveAdmins = new ArrayList<>(); if (allActiveAdmins != null) { for (ComponentName activeAdmin : allActiveAdmins) { if (packageName.equals(activeAdmin.getPackageName())) { if (packageName.equals(activeAdmin.getPackageName())) { packageActiveAdmins.add(activeAdmin); removeActiveAdmin(activeAdmin, userId); removeActiveAdmin(activeAdmin, userId); } } } } } if (packageActiveAdmins.size() == 0) { startUninstallIntent(packageName, userId); } else { mHandler.postDelayed(new Runnable() { mHandler.postDelayed(new Runnable() { @Override @Override public void run() { public void run() { for (ComponentName activeAdmin : activeAdminsList) { for (ComponentName activeAdmin : packageActiveAdmins) { removeAdminArtifacts(activeAdmin, userId); removeAdminArtifacts(activeAdmin, userId); } } startUninstallIntent(packageName, userId); startUninstallIntent(packageName, userId); } } }, DEVICE_ADMIN_DEACTIVATE_TIMEOUT); // Start uninstall after timeout anyway. }, DEVICE_ADMIN_DEACTIVATE_TIMEOUT); // Start uninstall after timeout anyway. } } } private void removePackageIfRequired(final String packageName, final int userId) { private void removePackageIfRequired(final String packageName, final int userId) { if (!packageHasActiveAdmins(packageName, userId)) { if (!packageHasActiveAdmins(packageName, userId)) { Loading Loading
services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java +22 −16 Original line number Original line Diff line number Diff line Loading @@ -8533,27 +8533,33 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { mPackagesToRemove.add(packageUserPair); mPackagesToRemove.add(packageUserPair); } } final List<ComponentName> activeAdminsList = getActiveAdmins(userId); // All active admins on the user. if (activeAdminsList == null || activeAdminsList.size() == 0) { final List<ComponentName> allActiveAdmins = getActiveAdmins(userId); startUninstallIntent(packageName, userId); return; } for (ComponentName activeAdmin : activeAdminsList) { // Active admins in the target package. final List<ComponentName> packageActiveAdmins = new ArrayList<>(); if (allActiveAdmins != null) { for (ComponentName activeAdmin : allActiveAdmins) { if (packageName.equals(activeAdmin.getPackageName())) { if (packageName.equals(activeAdmin.getPackageName())) { packageActiveAdmins.add(activeAdmin); removeActiveAdmin(activeAdmin, userId); removeActiveAdmin(activeAdmin, userId); } } } } } if (packageActiveAdmins.size() == 0) { startUninstallIntent(packageName, userId); } else { mHandler.postDelayed(new Runnable() { mHandler.postDelayed(new Runnable() { @Override @Override public void run() { public void run() { for (ComponentName activeAdmin : activeAdminsList) { for (ComponentName activeAdmin : packageActiveAdmins) { removeAdminArtifacts(activeAdmin, userId); removeAdminArtifacts(activeAdmin, userId); } } startUninstallIntent(packageName, userId); startUninstallIntent(packageName, userId); } } }, DEVICE_ADMIN_DEACTIVATE_TIMEOUT); // Start uninstall after timeout anyway. }, DEVICE_ADMIN_DEACTIVATE_TIMEOUT); // Start uninstall after timeout anyway. } } } private void removePackageIfRequired(final String packageName, final int userId) { private void removePackageIfRequired(final String packageName, final int userId) { if (!packageHasActiveAdmins(packageName, userId)) { if (!packageHasActiveAdmins(packageName, userId)) { Loading