Loading core/java/android/os/UserManager.java +33 −0 Original line number Diff line number Diff line Loading @@ -720,6 +720,39 @@ public class UserManager { return guest; } /** * Creates a secondary user with the specified name and options and configures it with default * restrictions. * Requires {@link android.Manifest.permission#MANAGE_USERS} permission. * * @param name the user's name * @param flags flags that identify the type of user and other properties. * @see UserInfo * * @return the UserInfo object for the created user, or null if the user could not be created. * @hide */ public UserInfo createSecondaryUser(String name, int flags) { try { UserInfo user = mService.createUser(name, flags); if (user == null) { return null; } Bundle userRestrictions = mService.getUserRestrictions(user.id); addDefaultUserRestrictions(userRestrictions); mService.setUserRestrictions(userRestrictions, user.id); return user; } catch (RemoteException re) { Log.w(TAG, "Could not create a user", re); return null; } } private static void addDefaultUserRestrictions(Bundle restrictions) { restrictions.putBoolean(DISALLOW_OUTGOING_CALLS, true); restrictions.putBoolean(DISALLOW_SMS, true); } /** * Creates a user with the specified name and options as a profile of another user. * Requires {@link android.Manifest.permission#MANAGE_USERS} permission. Loading packages/SystemUI/src/com/android/systemui/statusbar/policy/UserSwitcherController.java +1 −1 Original line number Diff line number Diff line Loading @@ -571,7 +571,7 @@ public class UserSwitcherController { cancel(); } else { dismiss(); UserInfo user = mUserManager.createUser( UserInfo user = mUserManager.createSecondaryUser( mContext.getString(R.string.user_new_user_name), 0 /* flags */); if (user == null) { // Couldn't create user, most likely because there are too many, but we haven't Loading services/core/java/com/android/server/pm/UserManagerService.java +18 −1 Original line number Diff line number Diff line Loading @@ -119,7 +119,7 @@ public class UserManagerService extends IUserManager.Stub { private static final int MIN_USER_ID = 10; private static final int USER_VERSION = 4; private static final int USER_VERSION = 5; private static final long EPOCH_PLUS_30_YEARS = 30L * 365 * 24 * 60 * 60 * 1000L; // ms Loading Loading @@ -462,6 +462,17 @@ public class UserManagerService extends IUserManager.Stub { } } /** * If default guest restrictions haven't been initialized yet, add the basic * restrictions. */ private void initDefaultGuestRestrictions() { if (mGuestRestrictions.isEmpty()) { mGuestRestrictions.putBoolean(UserManager.DISALLOW_OUTGOING_CALLS, true); writeUserListLocked(); } } @Override public Bundle getDefaultGuestRestrictions() { checkManageUsersPermission("getDefaultGuestRestrictions"); Loading Loading @@ -693,6 +704,11 @@ public class UserManagerService extends IUserManager.Stub { userVersion = 4; } if (userVersion < 5) { initDefaultGuestRestrictions(); userVersion = 5; } if (userVersion < USER_VERSION) { Slog.w(LOG_TAG, "User version " + mUserVersion + " didn't upgrade as expected to " + USER_VERSION); Loading @@ -715,6 +731,7 @@ public class UserManagerService extends IUserManager.Stub { mUserRestrictions.append(UserHandle.USER_OWNER, restrictions); updateUserIdsLocked(); initDefaultGuestRestrictions(); writeUserListLocked(); writeUserLocked(primary); Loading Loading
core/java/android/os/UserManager.java +33 −0 Original line number Diff line number Diff line Loading @@ -720,6 +720,39 @@ public class UserManager { return guest; } /** * Creates a secondary user with the specified name and options and configures it with default * restrictions. * Requires {@link android.Manifest.permission#MANAGE_USERS} permission. * * @param name the user's name * @param flags flags that identify the type of user and other properties. * @see UserInfo * * @return the UserInfo object for the created user, or null if the user could not be created. * @hide */ public UserInfo createSecondaryUser(String name, int flags) { try { UserInfo user = mService.createUser(name, flags); if (user == null) { return null; } Bundle userRestrictions = mService.getUserRestrictions(user.id); addDefaultUserRestrictions(userRestrictions); mService.setUserRestrictions(userRestrictions, user.id); return user; } catch (RemoteException re) { Log.w(TAG, "Could not create a user", re); return null; } } private static void addDefaultUserRestrictions(Bundle restrictions) { restrictions.putBoolean(DISALLOW_OUTGOING_CALLS, true); restrictions.putBoolean(DISALLOW_SMS, true); } /** * Creates a user with the specified name and options as a profile of another user. * Requires {@link android.Manifest.permission#MANAGE_USERS} permission. Loading
packages/SystemUI/src/com/android/systemui/statusbar/policy/UserSwitcherController.java +1 −1 Original line number Diff line number Diff line Loading @@ -571,7 +571,7 @@ public class UserSwitcherController { cancel(); } else { dismiss(); UserInfo user = mUserManager.createUser( UserInfo user = mUserManager.createSecondaryUser( mContext.getString(R.string.user_new_user_name), 0 /* flags */); if (user == null) { // Couldn't create user, most likely because there are too many, but we haven't Loading
services/core/java/com/android/server/pm/UserManagerService.java +18 −1 Original line number Diff line number Diff line Loading @@ -119,7 +119,7 @@ public class UserManagerService extends IUserManager.Stub { private static final int MIN_USER_ID = 10; private static final int USER_VERSION = 4; private static final int USER_VERSION = 5; private static final long EPOCH_PLUS_30_YEARS = 30L * 365 * 24 * 60 * 60 * 1000L; // ms Loading Loading @@ -462,6 +462,17 @@ public class UserManagerService extends IUserManager.Stub { } } /** * If default guest restrictions haven't been initialized yet, add the basic * restrictions. */ private void initDefaultGuestRestrictions() { if (mGuestRestrictions.isEmpty()) { mGuestRestrictions.putBoolean(UserManager.DISALLOW_OUTGOING_CALLS, true); writeUserListLocked(); } } @Override public Bundle getDefaultGuestRestrictions() { checkManageUsersPermission("getDefaultGuestRestrictions"); Loading Loading @@ -693,6 +704,11 @@ public class UserManagerService extends IUserManager.Stub { userVersion = 4; } if (userVersion < 5) { initDefaultGuestRestrictions(); userVersion = 5; } if (userVersion < USER_VERSION) { Slog.w(LOG_TAG, "User version " + mUserVersion + " didn't upgrade as expected to " + USER_VERSION); Loading @@ -715,6 +731,7 @@ public class UserManagerService extends IUserManager.Stub { mUserRestrictions.append(UserHandle.USER_OWNER, restrictions); updateUserIdsLocked(); initDefaultGuestRestrictions(); writeUserListLocked(); writeUserLocked(primary); Loading