From ee23152051f9b67d95e543c1668ab21347ffbaaa Mon Sep 17 00:00:00 2001 From: Anna Bauza Date: Wed, 23 Mar 2022 14:17:20 +0000 Subject: [PATCH] Fix "Remove Guest" option shows "Reset Guest" dialog If the guest user was not auto created, removing the user from settings message was wrongly worded. Small refactor to reuse the same wording in different modules has been done. Bug: 225314166 Test: manual Change-Id: Ia1871efc6aeeb2d3604c2fc4fd98a2a3a500953b --- .../settings/users/UserDetailsSettings.java | 7 ++++++- .../android/settings/users/UserDialogs.java | 21 +++++++++++++++++++ .../android/settings/users/UserSettings.java | 7 ++++++- 3 files changed, 33 insertions(+), 2 deletions(-) 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;