diff --git a/src/com/android/settings/users/UserDetailsSettings.java b/src/com/android/settings/users/UserDetailsSettings.java index f60aec73d2c..99760401d29 100644 --- a/src/com/android/settings/users/UserDetailsSettings.java +++ b/src/com/android/settings/users/UserDetailsSettings.java @@ -209,8 +209,13 @@ public class UserDetailsSettings extends SettingsPreferenceFragment } }); case DIALOG_CONFIRM_RESET_GUEST: - return UserDialogs.createResetGuestDialog(getActivity(), + if (mGuestUserAutoCreated) { + return UserDialogs.createResetGuestDialog(getActivity(), (dialog, which) -> resetGuest()); + } else { + return UserDialogs.createRemoveGuestDialog(getActivity(), + (dialog, which) -> resetGuest()); + } } throw new IllegalArgumentException("Unsupported dialogId " + dialogId); } diff --git a/src/com/android/settings/users/UserDialogs.java b/src/com/android/settings/users/UserDialogs.java index d28b7985330..8549ffef407 100644 --- a/src/com/android/settings/users/UserDialogs.java +++ b/src/com/android/settings/users/UserDialogs.java @@ -196,4 +196,25 @@ public final class UserDialogs { .setNegativeButton(android.R.string.cancel, null) .create(); } + + + /** + * Creates a dialog to confirm with the user if it's ok to remove the guest user, which will + * delete all the guest user's data. + * + * @param context a Context object + * @param onConfirmListener Callback object for positive action + * @return the created Dialog + */ + public static Dialog createRemoveGuestDialog(Context context, + DialogInterface.OnClickListener onConfirmListener) { + return new AlertDialog.Builder(context) + .setTitle(com.android.settingslib.R.string.guest_remove_guest_dialog_title) + .setMessage(R.string.user_exit_guest_confirm_message) + .setPositiveButton( + com.android.settingslib.R.string.guest_remove_guest_confirm_button, + onConfirmListener) + .setNegativeButton(android.R.string.cancel, null) + .create(); + } } diff --git a/src/com/android/settings/users/UserSettings.java b/src/com/android/settings/users/UserSettings.java index 88959121437..358b87b9abf 100644 --- a/src/com/android/settings/users/UserSettings.java +++ b/src/com/android/settings/users/UserSettings.java @@ -737,8 +737,13 @@ public class UserSettings extends SettingsPreferenceFragment return buildAddUserDialog(USER_TYPE_RESTRICTED_PROFILE); } case DIALOG_CONFIRM_RESET_GUEST: { - return UserDialogs.createResetGuestDialog(getActivity(), + if (mGuestUserAutoCreated) { + return UserDialogs.createResetGuestDialog(getActivity(), (dialog, which) -> resetGuest()); + } else { + return UserDialogs.createRemoveGuestDialog(getActivity(), + (dialog, which) -> resetGuest()); + } } default: return null;