From 2ded76c29ffe375c726b6da10c0d6f9acec5425b Mon Sep 17 00:00:00 2001 From: João Victor Mendes Freire Date: Thu, 13 Oct 2022 17:26:55 +0000 Subject: Fix creating multiple users from same alert dialog Disable the button listeners after the first click to avoid the creation of more than one user per dialog. Bug: 252831574 Test: Manually tested by calling the API from a regular app Change-Id: I6d343ae0a2a4d81d35a85f51a60c88c0c18dba21 --- core/java/com/android/internal/app/ConfirmUserCreationActivity.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/core/java/com/android/internal/app/ConfirmUserCreationActivity.java b/core/java/com/android/internal/app/ConfirmUserCreationActivity.java index 8833512c2217..0a28997885ff 100644 --- a/core/java/com/android/internal/app/ConfirmUserCreationActivity.java +++ b/core/java/com/android/internal/app/ConfirmUserCreationActivity.java @@ -49,6 +49,7 @@ public class ConfirmUserCreationActivity extends AlertActivity private String mAccountType; private PersistableBundle mAccountOptions; private boolean mCanProceed; + private boolean mIsFirstClick; private UserManager mUserManager; @Override @@ -82,6 +83,7 @@ public class ConfirmUserCreationActivity extends AlertActivity ap.mNegativeButtonText = getString(android.R.string.cancel); ap.mNegativeButtonListener = this; } + mIsFirstClick = true; setupAlert(); } @@ -128,7 +130,8 @@ public class ConfirmUserCreationActivity extends AlertActivity @Override public void onClick(DialogInterface dialog, int which) { setResult(RESULT_CANCELED); - if (which == BUTTON_POSITIVE && mCanProceed) { + if (which == BUTTON_POSITIVE && mCanProceed && mIsFirstClick) { + mIsFirstClick = false; Log.i(TAG, "Ok, creating user"); UserInfo user = mUserManager.createUser(mUserName, USER_TYPE, 0); if (user == null) { -- cgit v1.2.3-59-g8ed1b