Change the data structure of restrictions in UM
Background * In an org-owned managed profile device, two admins can set user restrictions on a user. The current data structure of local user restrictions uses a SparseArray<Bundle> where the key is the userId and the value is the restriction bundle. * The existing data structure cannot store both the target userId and the originating userId. Changes * Introduces RestrictionsSet data structure, which is now used as a replacement of SparseArray<Bundle>. * Updates the data structure of local restrictions to SparseArray<RestrictionsSet>. The first key is the target userId and the second key is the originating userId. * targetUserId -> originatingUserId -> restrictionBundle * Numerous methods in UserManagerService and UserRestrictionsUtils had to be changed to support this. There will be follow up changes to move the logic of sorting the restrictions into local and global restrictions to DPMS. Bug: 149743941 Test: atest com.android.server.pm.UserManagerTest atest com.android.server.pm.RestrictionsSetTest atest com.android.server.pm.UserRestrictionsUtilsTest atest com.android.cts.devicepolicy.UserRestrictionsTest Change-Id: I08c9d60aa7a5e7cc3c661aaa4ba6dcd4f218323b
Loading
Please register or sign in to comment