| 68 | } |
| 69 | |
| 70 | void StartupMenuLayout::ReloadMenu() { |
| 71 | this->users_menu->ClearItems(); |
| 72 | |
| 73 | std::vector<AccountUid> user_ids; |
| 74 | UL_RC_ASSERT(acc::ListAccounts(user_ids)); |
| 75 | for(const auto &user_id: user_ids) { |
| 76 | std::string name; |
| 77 | if(R_SUCCEEDED(acc::GetAccountName(user_id, name))) { |
| 78 | auto user_item = pu::ui::elm::MenuItem::New(name); |
| 79 | |
| 80 | u8 *user_icon_buf = nullptr; |
| 81 | size_t user_icon_size = 0; |
| 82 | UL_RC_ASSERT(acc::LoadAccountImage(user_id, user_icon_buf, user_icon_size)); |
| 83 | auto user_icon = pu::sdl2::TextureHandle::New(pu::ui::render::LoadImageFromBuffer(user_icon_buf, user_icon_size)); |
| 84 | delete[] user_icon_buf; |
| 85 | user_item->SetIcon(user_icon); |
| 86 | |
| 87 | user_item->AddOnKey(std::bind(&StartupMenuLayout::user_DefaultKey, this, user_id)); |
| 88 | user_item->SetColor(g_MenuApplication->GetTextColor()); |
| 89 | this->users_menu->AddItem(user_item); |
| 90 | } |
| 91 | } |
| 92 | |
| 93 | auto create_user_item = pu::ui::elm::MenuItem::New(GetLanguageString("startup_add_user")); |
| 94 | create_user_item->SetColor(g_MenuApplication->GetTextColor()); |
| 95 | create_user_item->AddOnKey(std::bind(&StartupMenuLayout::create_DefaultKey, this)); |
| 96 | this->users_menu->AddItem(create_user_item); |
| 97 | |
| 98 | this->users_menu->SetSelectedIndex(0); |
| 99 | } |
| 100 | |
| 101 | } |
no test coverage detected