Fix lock task clearing for affiliated users

Fixes: 278141432
Test: com.android.cts.devicepolicy.DeviceOwnerTest#testSetUserControlDisabledPackages_singleUser_reboot_verifyPackageNotStopped
Change-Id: I19c64a39cdee4395c7eabf9f3da3f0c53a691d90
This commit is contained in:
Kholoud Mohamed
2023-04-21 12:23:18 +00:00
parent 3b366ef5f5
commit c7fc36a82c

View File

@@ -14957,18 +14957,34 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
continue;
}
final List<String> lockTaskPackages = getUserData(userId).mLockTaskPackages;
// TODO(b/278438525): handle in the policy engine
if (!lockTaskPackages.isEmpty()) {
Slogf.d(LOG_TAG,
"User id " + userId + " not affiliated. Clearing lock task packages");
setLockTaskPackagesLocked(userId, Collections.<String>emptyList());
}
final int lockTaskFeatures = getUserData(userId).mLockTaskFeatures;
if (lockTaskFeatures != DevicePolicyManager.LOCK_TASK_FEATURE_NONE){
Slogf.d(LOG_TAG,
"User id " + userId + " not affiliated. Clearing lock task features");
setLockTaskFeaturesLocked(userId, DevicePolicyManager.LOCK_TASK_FEATURE_NONE);
if (isPolicyEngineForFinanceFlagEnabled()) {
Map<EnforcingAdmin, PolicyValue<LockTaskPolicy>> policies =
mDevicePolicyEngine.getLocalPoliciesSetByAdmins(
PolicyDefinition.LOCK_TASK, userId);
Set<EnforcingAdmin> admins = new HashSet<>(policies.keySet());
for (EnforcingAdmin admin : admins) {
if (admin.hasAuthority(EnforcingAdmin.DPC_AUTHORITY)) {
mDevicePolicyEngine.removeLocalPolicy(
PolicyDefinition.LOCK_TASK, admin, userId);
}
}
} else {
final List<String> lockTaskPackages = getUserData(userId).mLockTaskPackages;
// TODO(b/278438525): handle in the policy engine
if (!lockTaskPackages.isEmpty()) {
Slogf.d(LOG_TAG,
"User id " + userId
+ " not affiliated. Clearing lock task packages");
setLockTaskPackagesLocked(userId, Collections.<String>emptyList());
}
final int lockTaskFeatures = getUserData(userId).mLockTaskFeatures;
if (lockTaskFeatures != DevicePolicyManager.LOCK_TASK_FEATURE_NONE) {
Slogf.d(LOG_TAG,
"User id " + userId
+ " not affiliated. Clearing lock task features");
setLockTaskFeaturesLocked(userId,
DevicePolicyManager.LOCK_TASK_FEATURE_NONE);
}
}
}
});