Loading src/com/android/settings/users/UserSettings.java +32 −66 Original line number Diff line number Diff line Loading @@ -28,7 +28,6 @@ import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.IntentFilter; import android.content.SharedPreferences; import android.content.pm.UserInfo; import android.content.res.Resources; import android.graphics.Bitmap; Loading Loading @@ -83,6 +82,7 @@ import com.android.settingslib.RestrictedPreference; import com.android.settingslib.drawable.CircleFramedDrawable; import com.android.settingslib.search.SearchIndexable; import com.android.settingslib.search.SearchIndexableRaw; import com.android.settingslib.users.CreateUserDialogController; import com.android.settingslib.users.EditUserInfoController; import com.android.settingslib.users.GrantAdminDialogController; import com.android.settingslib.users.UserCreatingDialog; Loading Loading @@ -119,6 +119,7 @@ public class UserSettings extends SettingsPreferenceFragment /** UserId of the user being removed */ private static final String SAVE_REMOVING_USER = "removing_user"; private static final String SAVE_CREATE_USER = "create_user"; private static final String KEY_USER_LIST = "user_list"; private static final String KEY_USER_ME = "user_me"; Loading Loading @@ -171,9 +172,6 @@ public class UserSettings extends SettingsPreferenceFragment static final int RESULT_GUEST_REMOVED = 100; private static final String KEY_ADD_USER_LONG_MESSAGE_DISPLAYED = "key_add_user_long_message_displayed"; private static final String KEY_TITLE = "title"; private static final String KEY_SUMMARY = "summary"; Loading Loading @@ -222,6 +220,8 @@ public class UserSettings extends SettingsPreferenceFragment new GrantAdminDialogController(); private EditUserInfoController mEditUserInfoController = new EditUserInfoController(Utils.FILE_PROVIDER_AUTHORITY); private CreateUserDialogController mCreateUserDialogController = new CreateUserDialogController(Utils.FILE_PROVIDER_AUTHORITY); private AddUserWhenLockedPreferenceController mAddUserWhenLockedPreferenceController; private GuestTelephonyPreferenceController mGuestTelephonyPreferenceController; private RemoveGuestOnExitPreferenceController mRemoveGuestOnExitPreferenceController; Loading @@ -233,7 +233,7 @@ public class UserSettings extends SettingsPreferenceFragment private CharSequence mPendingUserName; private Drawable mPendingUserIcon; private boolean mGrantAdmin; private boolean mPendingUserIsAdmin; // A place to cache the generated default avatar private Drawable mDefaultIconDrawable; Loading Loading @@ -348,8 +348,12 @@ public class UserSettings extends SettingsPreferenceFragment if (icicle.containsKey(SAVE_REMOVING_USER)) { mRemovingUserId = icicle.getInt(SAVE_REMOVING_USER); } if (icicle.containsKey(SAVE_CREATE_USER)) { mCreateUserDialogController.onRestoreInstanceState(icicle); } else { mEditUserInfoController.onRestoreInstanceState(icicle); } } mUserCaps = UserCapabilities.create(activity); mUserManager = (UserManager) activity.getSystemService(Context.USER_SERVICE); Loading Loading @@ -440,7 +444,12 @@ public class UserSettings extends SettingsPreferenceFragment @Override public void onSaveInstanceState(Bundle outState) { if (mCreateUserDialogController.isActive()) { outState.putBoolean(SAVE_CREATE_USER, mCreateUserDialogController.isActive()); mCreateUserDialogController.onSaveInstanceState(outState); } else { mEditUserInfoController.onSaveInstanceState(outState); } outState.putInt(SAVE_REMOVING_USER, mRemovingUserId); super.onSaveInstanceState(outState); } Loading @@ -448,6 +457,7 @@ public class UserSettings extends SettingsPreferenceFragment @Override public void startActivityForResult(Intent intent, int requestCode) { mEditUserInfoController.startingActivityForResult(); mCreateUserDialogController.startingActivityForResult(); super.startActivityForResult(intent, requestCode); } Loading Loading @@ -562,6 +572,7 @@ public class UserSettings extends SettingsPreferenceFragment && resultCode == RESULT_GUEST_REMOVED) { scheduleGuestCreation(); } else { mCreateUserDialogController.onActivityResult(requestCode, resultCode, data); mEditUserInfoController.onActivityResult(requestCode, resultCode, data); } } Loading Loading @@ -704,37 +715,12 @@ public class UserSettings extends SettingsPreferenceFragment .setPositiveButton(android.R.string.ok, null) .create(); case DIALOG_ADD_USER: { final SharedPreferences preferences = getActivity().getPreferences( Context.MODE_PRIVATE); final boolean longMessageDisplayed = preferences.getBoolean( KEY_ADD_USER_LONG_MESSAGE_DISPLAYED, false); final int messageResId = longMessageDisplayed ? com.android.settingslib.R.string.user_add_user_message_short : com.android.settingslib.R.string.user_add_user_message_long; Dialog dlg = new AlertDialog.Builder(context) .setTitle(com.android.settingslib.R.string.user_add_user_title) .setMessage(messageResId) .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { if (!longMessageDisplayed) { preferences.edit().putBoolean( KEY_ADD_USER_LONG_MESSAGE_DISPLAYED, true).apply(); } if (UserManager.isMultipleAdminEnabled()) { showDialog(DIALOG_GRANT_ADMIN); } else { showDialog(DIALOG_USER_PROFILE_EDITOR_ADD_USER); } } }) .setNegativeButton(android.R.string.cancel, null) .create(); return dlg; synchronized (mUserLock) { mPendingUserName = getString( com.android.settingslib.R.string.user_new_user_name); mPendingUserIcon = null; } case DIALOG_GRANT_ADMIN: { return buildGrantAdminDialog(); return buildAddUserDialog(USER_TYPE_USER); } case DIALOG_CHOOSE_USER_TYPE: { List<HashMap<String, String>> data = new ArrayList<HashMap<String, String>>(); Loading Loading @@ -919,17 +905,14 @@ public class UserSettings extends SettingsPreferenceFragment private Dialog buildAddUserDialog(int userType) { Dialog d; synchronized (mUserLock) { d = mEditUserInfoController.createDialog( d = mCreateUserDialogController.createDialog( getActivity(), this::startActivityForResult, null, mPendingUserName.toString(), getString(userType == USER_TYPE_USER ? com.android.settingslib.R.string.user_info_settings_title : com.android.settingslib.R.string.profile_info_settings_title), (userName, userIcon) -> { UserManager.isMultipleAdminEnabled(), (userName, userIcon, isAdmin) -> { mPendingUserIcon = userIcon; mPendingUserName = userName; mPendingUserIsAdmin = isAdmin; addUserNow(userType); }, () -> { Loading @@ -943,26 +926,6 @@ public class UserSettings extends SettingsPreferenceFragment return d; } private Dialog buildGrantAdminDialog() { return mGrantAdminDialogController.createDialog( getActivity(), (grantAdmin) -> { mGrantAdmin = grantAdmin; if (mGrantAdmin) { mMetricsFeatureProvider.action(getActivity(), SettingsEnums.ACTION_GRANT_ADMIN_FROM_SETTINGS_CREATION_DIALOG); } else { mMetricsFeatureProvider.action(getActivity(), SettingsEnums.ACTION_NOT_GRANT_ADMIN_FROM_SETTINGS_CREATION_DIALOG); } showDialog(DIALOG_USER_PROFILE_EDITOR_ADD_USER); }, () -> { mGrantAdmin = false; } ); } @Override public int getDialogMetricsCategory(int dialogId) { switch (dialogId) { Loading Loading @@ -1065,7 +1028,7 @@ public class UserSettings extends SettingsPreferenceFragment userName, mUserManager.USER_TYPE_FULL_SECONDARY, 0); if (mGrantAdmin) { if (mPendingUserIsAdmin) { mUserManager.setUserAdmin(user.id); } } else { Loading Loading @@ -1665,6 +1628,9 @@ public class UserSettings extends SettingsPreferenceFragment synchronized (mUserLock) { mRemovingUserId = -1; updateUserList(); if (mCreateUserDialogController.isActive()) { mCreateUserDialogController.clear(); } } } Loading Loading
src/com/android/settings/users/UserSettings.java +32 −66 Original line number Diff line number Diff line Loading @@ -28,7 +28,6 @@ import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.IntentFilter; import android.content.SharedPreferences; import android.content.pm.UserInfo; import android.content.res.Resources; import android.graphics.Bitmap; Loading Loading @@ -83,6 +82,7 @@ import com.android.settingslib.RestrictedPreference; import com.android.settingslib.drawable.CircleFramedDrawable; import com.android.settingslib.search.SearchIndexable; import com.android.settingslib.search.SearchIndexableRaw; import com.android.settingslib.users.CreateUserDialogController; import com.android.settingslib.users.EditUserInfoController; import com.android.settingslib.users.GrantAdminDialogController; import com.android.settingslib.users.UserCreatingDialog; Loading Loading @@ -119,6 +119,7 @@ public class UserSettings extends SettingsPreferenceFragment /** UserId of the user being removed */ private static final String SAVE_REMOVING_USER = "removing_user"; private static final String SAVE_CREATE_USER = "create_user"; private static final String KEY_USER_LIST = "user_list"; private static final String KEY_USER_ME = "user_me"; Loading Loading @@ -171,9 +172,6 @@ public class UserSettings extends SettingsPreferenceFragment static final int RESULT_GUEST_REMOVED = 100; private static final String KEY_ADD_USER_LONG_MESSAGE_DISPLAYED = "key_add_user_long_message_displayed"; private static final String KEY_TITLE = "title"; private static final String KEY_SUMMARY = "summary"; Loading Loading @@ -222,6 +220,8 @@ public class UserSettings extends SettingsPreferenceFragment new GrantAdminDialogController(); private EditUserInfoController mEditUserInfoController = new EditUserInfoController(Utils.FILE_PROVIDER_AUTHORITY); private CreateUserDialogController mCreateUserDialogController = new CreateUserDialogController(Utils.FILE_PROVIDER_AUTHORITY); private AddUserWhenLockedPreferenceController mAddUserWhenLockedPreferenceController; private GuestTelephonyPreferenceController mGuestTelephonyPreferenceController; private RemoveGuestOnExitPreferenceController mRemoveGuestOnExitPreferenceController; Loading @@ -233,7 +233,7 @@ public class UserSettings extends SettingsPreferenceFragment private CharSequence mPendingUserName; private Drawable mPendingUserIcon; private boolean mGrantAdmin; private boolean mPendingUserIsAdmin; // A place to cache the generated default avatar private Drawable mDefaultIconDrawable; Loading Loading @@ -348,8 +348,12 @@ public class UserSettings extends SettingsPreferenceFragment if (icicle.containsKey(SAVE_REMOVING_USER)) { mRemovingUserId = icicle.getInt(SAVE_REMOVING_USER); } if (icicle.containsKey(SAVE_CREATE_USER)) { mCreateUserDialogController.onRestoreInstanceState(icicle); } else { mEditUserInfoController.onRestoreInstanceState(icicle); } } mUserCaps = UserCapabilities.create(activity); mUserManager = (UserManager) activity.getSystemService(Context.USER_SERVICE); Loading Loading @@ -440,7 +444,12 @@ public class UserSettings extends SettingsPreferenceFragment @Override public void onSaveInstanceState(Bundle outState) { if (mCreateUserDialogController.isActive()) { outState.putBoolean(SAVE_CREATE_USER, mCreateUserDialogController.isActive()); mCreateUserDialogController.onSaveInstanceState(outState); } else { mEditUserInfoController.onSaveInstanceState(outState); } outState.putInt(SAVE_REMOVING_USER, mRemovingUserId); super.onSaveInstanceState(outState); } Loading @@ -448,6 +457,7 @@ public class UserSettings extends SettingsPreferenceFragment @Override public void startActivityForResult(Intent intent, int requestCode) { mEditUserInfoController.startingActivityForResult(); mCreateUserDialogController.startingActivityForResult(); super.startActivityForResult(intent, requestCode); } Loading Loading @@ -562,6 +572,7 @@ public class UserSettings extends SettingsPreferenceFragment && resultCode == RESULT_GUEST_REMOVED) { scheduleGuestCreation(); } else { mCreateUserDialogController.onActivityResult(requestCode, resultCode, data); mEditUserInfoController.onActivityResult(requestCode, resultCode, data); } } Loading Loading @@ -704,37 +715,12 @@ public class UserSettings extends SettingsPreferenceFragment .setPositiveButton(android.R.string.ok, null) .create(); case DIALOG_ADD_USER: { final SharedPreferences preferences = getActivity().getPreferences( Context.MODE_PRIVATE); final boolean longMessageDisplayed = preferences.getBoolean( KEY_ADD_USER_LONG_MESSAGE_DISPLAYED, false); final int messageResId = longMessageDisplayed ? com.android.settingslib.R.string.user_add_user_message_short : com.android.settingslib.R.string.user_add_user_message_long; Dialog dlg = new AlertDialog.Builder(context) .setTitle(com.android.settingslib.R.string.user_add_user_title) .setMessage(messageResId) .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { if (!longMessageDisplayed) { preferences.edit().putBoolean( KEY_ADD_USER_LONG_MESSAGE_DISPLAYED, true).apply(); } if (UserManager.isMultipleAdminEnabled()) { showDialog(DIALOG_GRANT_ADMIN); } else { showDialog(DIALOG_USER_PROFILE_EDITOR_ADD_USER); } } }) .setNegativeButton(android.R.string.cancel, null) .create(); return dlg; synchronized (mUserLock) { mPendingUserName = getString( com.android.settingslib.R.string.user_new_user_name); mPendingUserIcon = null; } case DIALOG_GRANT_ADMIN: { return buildGrantAdminDialog(); return buildAddUserDialog(USER_TYPE_USER); } case DIALOG_CHOOSE_USER_TYPE: { List<HashMap<String, String>> data = new ArrayList<HashMap<String, String>>(); Loading Loading @@ -919,17 +905,14 @@ public class UserSettings extends SettingsPreferenceFragment private Dialog buildAddUserDialog(int userType) { Dialog d; synchronized (mUserLock) { d = mEditUserInfoController.createDialog( d = mCreateUserDialogController.createDialog( getActivity(), this::startActivityForResult, null, mPendingUserName.toString(), getString(userType == USER_TYPE_USER ? com.android.settingslib.R.string.user_info_settings_title : com.android.settingslib.R.string.profile_info_settings_title), (userName, userIcon) -> { UserManager.isMultipleAdminEnabled(), (userName, userIcon, isAdmin) -> { mPendingUserIcon = userIcon; mPendingUserName = userName; mPendingUserIsAdmin = isAdmin; addUserNow(userType); }, () -> { Loading @@ -943,26 +926,6 @@ public class UserSettings extends SettingsPreferenceFragment return d; } private Dialog buildGrantAdminDialog() { return mGrantAdminDialogController.createDialog( getActivity(), (grantAdmin) -> { mGrantAdmin = grantAdmin; if (mGrantAdmin) { mMetricsFeatureProvider.action(getActivity(), SettingsEnums.ACTION_GRANT_ADMIN_FROM_SETTINGS_CREATION_DIALOG); } else { mMetricsFeatureProvider.action(getActivity(), SettingsEnums.ACTION_NOT_GRANT_ADMIN_FROM_SETTINGS_CREATION_DIALOG); } showDialog(DIALOG_USER_PROFILE_EDITOR_ADD_USER); }, () -> { mGrantAdmin = false; } ); } @Override public int getDialogMetricsCategory(int dialogId) { switch (dialogId) { Loading Loading @@ -1065,7 +1028,7 @@ public class UserSettings extends SettingsPreferenceFragment userName, mUserManager.USER_TYPE_FULL_SECONDARY, 0); if (mGrantAdmin) { if (mPendingUserIsAdmin) { mUserManager.setUserAdmin(user.id); } } else { Loading Loading @@ -1665,6 +1628,9 @@ public class UserSettings extends SettingsPreferenceFragment synchronized (mUserLock) { mRemovingUserId = -1; updateUserList(); if (mCreateUserDialogController.isActive()) { mCreateUserDialogController.clear(); } } } Loading