Introduce user types
Introduces the notion of 'user types' to UserManager. Previously, users only had properties, set by UserInfo flags. We now solidify some of these as formal user types. Each user must be of precisely one user type. The configuration of each type is defined in a UserTypeDetails object. Prior 'types' - namely Guest, Restricted, ManagedProfiles, Demo, and 'normal' - that were set via UserInfo flags are now controlled via UserType. Previous UserInfo flag methods for categorizing these are still supported as long as no user of of more than one type. If a user was (e.g.) previously both Guest and Demo, it is now invalid and will be prevented from upgrading. This should not be a problem in AOSP, where these 'types' were assumed mutually exclusive. UserTypeDetails is sufficiently general to support future non-managed profiles. To this end, the logic for specifying badges and their colors/labels is contained by UserTypeDetails, and therefore UserManager is responsible for delivering the corresponding badge information. Bug: 142151520 Test: added new test class UserManagerServiceUserTypeTest Test: added additional tests in UserManagerServiceUserInfoTest Test: added additional tests in UserManagerTest Test: added additional tests in UserManagerServiceCreateProfileTest Test: created UserTests to run the various pm.User*Test's Test: atest \ com.android.server.pm.UserTests \ UserLifecycleTests \ ManagedUserContentResolverTest \ CtsDevicePolicyManagerTestCases \ CtsMultiUserHostTestCases \ com.android.server.devicepolicy.DevicePolicyManagerTest \ com.android.server.am.UserControllerTest \ CreateManagedProfileTaskTest Test: atest com.android.server.pm.UserManagerServiceCreateProfileTest using adb shell getprop persist.sys.max_profiles # for 5 and -1 Change-Id: Id1183a76055e9a7610965cf40b256d1392afe6f8
Loading
Please register or sign in to comment