diff --git a/nx/include/switch/applets/psel.h b/nx/include/switch/applets/psel.h index 1911f1f0..4b637786 100644 --- a/nx/include/switch/applets/psel.h +++ b/nx/include/switch/applets/psel.h @@ -23,6 +23,7 @@ typedef enum { PselUiMode_LicenseRequirementsForNetworkService = 10, ///< [6.0.0+] LicenseRequirementsForNetworkService PselUiMode_LicenseRequirementsForNetworkServiceWithUserContextImpl = 11, ///< [7.0.0+] LicenseRequirementsForNetworkServiceWithUserContextImpl PselUiMode_UserCreatorForImmediateNaLoginTest = 12, ///< [7.0.0+] UserCreatorForImmediateNaLoginTest + PselUiMode_UserQualificationPromoter = 13, ///< [13.0.0+] UserQualificationPromoter } PselUiMode; /// UI message text to display with ::PselUiMode_UserSelector. Invalid values are handled as ::PselUserSelectionPurpose_General. @@ -200,3 +201,10 @@ Result pselShowUserCreatorForStarter(void); * @param[in] user Input user ID. */ Result pselShowNintendoAccountNnidLinker(AccountUid user); + +/** + * @brief Shows the applet for UserQualificationPromoter. + * @note Only available on [13.0.0+]. + * @param[in] user Input user ID. + */ +Result pselShowUserQualificationPromoter(AccountUid user); diff --git a/nx/source/applets/psel.c b/nx/source/applets/psel.c index 090c6a24..829b475b 100644 --- a/nx/source/applets/psel.c +++ b/nx/source/applets/psel.c @@ -191,3 +191,16 @@ Result pselShowNintendoAccountNnidLinker(AccountUid user) { } return rc; } + +Result pselShowUserQualificationPromoter(AccountUid user) { + if (hosversionBefore(13,0,0)) + return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer); + + PselUiSettings ui; + Result rc = pselUiCreate(&ui, PselUiMode_UserQualificationPromoter); + if(R_SUCCEEDED(rc)) { + pselUiAddUser(&ui, user); + rc = pselUiShow(&ui, NULL); + } + return rc; +}