Add LOCK_TASK_FEATURE_BLOCK_ACTIVITY_START_IN_TASK to permitted lock task features when managing a financed device

Bug: 279388110
Test: atest com.android.server.devicepolicy.DevicePolicyManagerTest
Change-Id: I924e2a9eea5d5c3b056400a5ec55a1b63d58dbfd
This commit is contained in:
Rajeev Kumar
2023-05-26 17:50:27 -07:00
parent a973d76df5
commit 49da48d57a
3 changed files with 7 additions and 4 deletions

View File

@@ -581,6 +581,7 @@ public class DevicePolicyManager {
* <li>{@link #LOCK_TASK_FEATURE_HOME}</li>
* <li>{@link #LOCK_TASK_FEATURE_GLOBAL_ACTIONS}</li>
* <li>{@link #LOCK_TASK_FEATURE_NOTIFICATIONS}</li>
* <li>{@link #LOCK_TASK_FEATURE_BLOCK_ACTIVITY_START_IN_TASK}</li>
* </ul>
* <li>{@link #getLockTaskFeatures(ComponentName)}</li>
* <li>{@link #setLockTaskPackages(ComponentName, String[])}</li>

View File

@@ -139,6 +139,7 @@ import static android.app.admin.DevicePolicyManager.ID_TYPE_INDIVIDUAL_ATTESTATI
import static android.app.admin.DevicePolicyManager.ID_TYPE_MEID;
import static android.app.admin.DevicePolicyManager.ID_TYPE_SERIAL;
import static android.app.admin.DevicePolicyManager.LEAVE_ALL_SYSTEM_APPS_ENABLED;
import static android.app.admin.DevicePolicyManager.LOCK_TASK_FEATURE_BLOCK_ACTIVITY_START_IN_TASK;
import static android.app.admin.DevicePolicyManager.LOCK_TASK_FEATURE_GLOBAL_ACTIONS;
import static android.app.admin.DevicePolicyManager.LOCK_TASK_FEATURE_HOME;
import static android.app.admin.DevicePolicyManager.LOCK_TASK_FEATURE_KEYGUARD;
@@ -15139,7 +15140,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
private void enforceCanSetLockTaskFeaturesOnFinancedDevice(CallerIdentity caller, int flags) {
int allowedFlags = LOCK_TASK_FEATURE_SYSTEM_INFO | LOCK_TASK_FEATURE_KEYGUARD
| LOCK_TASK_FEATURE_HOME | LOCK_TASK_FEATURE_GLOBAL_ACTIONS
| LOCK_TASK_FEATURE_NOTIFICATIONS;
| LOCK_TASK_FEATURE_NOTIFICATIONS | LOCK_TASK_FEATURE_BLOCK_ACTIVITY_START_IN_TASK;
if (!isFinancedDeviceOwner(caller)) {
return;
@@ -15150,7 +15151,8 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
"Permitted lock task features when managing a financed device: "
+ "LOCK_TASK_FEATURE_SYSTEM_INFO, LOCK_TASK_FEATURE_KEYGUARD, "
+ "LOCK_TASK_FEATURE_HOME, LOCK_TASK_FEATURE_GLOBAL_ACTIONS, "
+ "or LOCK_TASK_FEATURE_NOTIFICATIONS");
+ "LOCK_TASK_FEATURE_NOTIFICATIONS"
+ " or LOCK_TASK_FEATURE_BLOCK_ACTIVITY_START_IN_TASK");
}
}

View File

@@ -7842,7 +7842,7 @@ public class DevicePolicyManagerTest extends DpmTestBase {
throws Exception {
int validLockTaskFeatures = LOCK_TASK_FEATURE_SYSTEM_INFO | LOCK_TASK_FEATURE_KEYGUARD
| LOCK_TASK_FEATURE_HOME | LOCK_TASK_FEATURE_GLOBAL_ACTIONS
| LOCK_TASK_FEATURE_NOTIFICATIONS;
| LOCK_TASK_FEATURE_NOTIFICATIONS | LOCK_TASK_FEATURE_BLOCK_ACTIVITY_START_IN_TASK;
setDeviceOwner();
dpm.setDeviceOwnerType(admin1, DEVICE_OWNER_TYPE_FINANCED);
@@ -7857,7 +7857,7 @@ public class DevicePolicyManagerTest extends DpmTestBase {
public void testSetLockTaskFeatures_financeDo_invalidLockTaskFeatures_throwsException()
throws Exception {
int invalidLockTaskFeatures = LOCK_TASK_FEATURE_NONE | LOCK_TASK_FEATURE_OVERVIEW
| LOCK_TASK_FEATURE_HOME | LOCK_TASK_FEATURE_BLOCK_ACTIVITY_START_IN_TASK;
| LOCK_TASK_FEATURE_HOME;
setDeviceOwner();
dpm.setDeviceOwnerType(admin1, DEVICE_OWNER_TYPE_FINANCED);
// Called during setup.