// \brief Show gamepad keypad twice to get and confirm a user-entered password string. // \param strNewPassword String to preload into the keyboard accumulator. Overwritten with user input if return=true. // \return true if successful display and user input entry/re-entry. false if unsuccessful display, no user input, or canceled editing. bool CGUIDialogGamepad::ShowAndVerifyNewPassword(std::string& strNewPassword) { // Prompt user for password input std::string strUserInput; if (ShowAndVerifyInput(strUserInput, "12340", "12330", "12331", "", true, true)) { // TODO: Show error to user saying the password entry was blank CGUIDialogOK::ShowAndGetInput(CVariant{12357}, CVariant{12358}); // Password is empty/blank return false; } if (strUserInput.empty()) // user canceled out return false; // Prompt again for password input, this time sending previous input as the password to verify if (!ShowAndVerifyInput(strUserInput, "12341", "12330", "12331", "", false, true)) { // TODO: Show error to user saying the password re-entry failed CGUIDialogOK::ShowAndGetInput(CVariant{12357}, CVariant{12344}); // Password do not match return false; } // password entry and re-entry succeeded strNewPassword = strUserInput; return true; }
// \brief Show numeric keypad twice to get and confirm a user-entered password string. // \param strNewPassword String to preload into the keyboard accumulator. Overwritten with user input if return=true. // \return true if successful display and user input entry/re-entry. false if unsuccessful display, no user input, or canceled editing. bool CGUIDialogNumeric::ShowAndVerifyNewPassword(CStdString& strNewPassword) { // Prompt user for password input CStdString strUserInput = ""; if (!ShowAndVerifyInput(strUserInput, g_localizeStrings.Get(12340), false)) { // Show error to user saying the password entry was blank CGUIDialogOK::ShowAndGetInput(12357, 12358, 0, 0); // Password is empty/blank return false; } if (strUserInput.empty()) // user canceled out return false; // Prompt again for password input, this time sending previous input as the password to verify if (!ShowAndVerifyInput(strUserInput, g_localizeStrings.Get(12341), true)) { // Show error to user saying the password re-entry failed CGUIDialogOK::ShowAndGetInput(12357, 12344, 0, 0); // Password do not match return false; } // password entry and re-entry succeeded strNewPassword = strUserInput; return true; }
// \brief Show numeric keypad and verify user input against strPassword. // \param strPassword Value to compare against user input. // \param strHeading String shown on dialog title. Converts to localized string if contains a positive integer. // \param iRetries If greater than 0, shows "Incorrect password, %d retries left" on dialog line 2, else line 2 is blank. // \return 0 if successful display and user input. 1 if unsuccessful input. -1 if no user input or canceled editing. int CGUIDialogNumeric::ShowAndVerifyPassword(CStdString& strPassword, const CStdString& strHeading, int iRetries) { CStdString strTempHeading = strHeading; if (0 < iRetries) { // Show a string telling user they have iRetries retries left strTempHeading = StringUtils::Format("%s. %s %i %s", strHeading.c_str(), g_localizeStrings.Get(12342).c_str(), iRetries, g_localizeStrings.Get(12343).c_str()); } // make a copy of strPassword to prevent from overwriting it later CStdString strPassTemp = strPassword; if (ShowAndVerifyInput(strPassTemp, strTempHeading, true)) return 0; // user entered correct password if (strPassTemp.empty()) return -1; // user canceled out return 1; // user must have entered an incorrect password }
// \brief Show gamepad keypad and replace aTextString with user input. // \param aTextString String to preload into the keyboard accumulator. Overwritten with user input if return=true. // \param dlgHeading String shown on dialog title. Converts to localized string if contains a positive integer. // \param bHideUserInput Masks user input as asterisks if set as true. Currently not yet implemented. // \return true if successful display and user input. false if unsuccessful display, no user input, or canceled editing. bool CGUIDialogGamepad::ShowAndGetInput(std::string& aTextString, const std::string &dlgHeading, bool bHideUserInput) { // Prompt user for input std::string strUserInput; if (ShowAndVerifyInput(strUserInput, dlgHeading, aTextString, "", "", true, bHideUserInput)) { // user entry was blank return false; } if (strUserInput.empty()) // user canceled out return false; // We should have a string to return aTextString = strUserInput; return true; }
// \brief Show gamepad keypad and verify user input against strPassword. // \param strPassword Value to compare against user input. // \param dlgHeading String shown on dialog title. Converts to localized string if contains a positive integer. // \param iRetries If greater than 0, shows "Incorrect password, %d retries left" on dialog line 2, else line 2 is blank. // \return 0 if successful display and user input. 1 if unsuccessful input. -1 if no user input or canceled editing. int CGUIDialogGamepad::ShowAndVerifyPassword(std::string& strPassword, const std::string& dlgHeading, int iRetries) { std::string strLine2; if (0 < iRetries) { // Show a string telling user they have iRetries retries left strLine2 = StringUtils::Format("%s %i %s", g_localizeStrings.Get(12342).c_str(), iRetries, g_localizeStrings.Get(12343).c_str()); } // make a copy of strPassword to prevent from overwriting it later std::string strPassTemp = strPassword; if (ShowAndVerifyInput(strPassTemp, dlgHeading, g_localizeStrings.Get(12330), g_localizeStrings.Get(12331), strLine2, true, true)) { // user entered correct password return 0; } if (strPassTemp.empty()) // user canceled out return -1; // user must have entered an incorrect password return 1; }