From 033afd2267bcc3e34da00a2446205b07bc47f6d5 Mon Sep 17 00:00:00 2001 From: xor Date: Sun, 23 Jan 2022 18:45:42 +0100 Subject: [PATCH] Fix system language not showing properly --- uLaunch/include/net/net_Types.hpp | 5 +-- uMenu/source/ui/ui_SettingsMenuLayout.cpp | 49 ++++++++++++----------- 2 files changed, 27 insertions(+), 27 deletions(-) diff --git a/uLaunch/include/net/net_Types.hpp b/uLaunch/include/net/net_Types.hpp index 3544ced8..e8bc7172 100644 --- a/uLaunch/include/net/net_Types.hpp +++ b/uLaunch/include/net/net_Types.hpp @@ -4,13 +4,12 @@ namespace net { - struct NetworkProfileData - { + struct NetworkProfileData { u8 unk[0x117]; char wifi_name[0x20 + 1]; u8 unk2[3]; char wifi_password[0x40 + 1]; }; - static_assert(sizeof(NetworkProfileData) == 0x17c, "Invalid NetworkProfileData"); + static_assert(sizeof(NetworkProfileData) == 0x17C, "Invalid NetworkProfileData"); } \ No newline at end of file diff --git a/uMenu/source/ui/ui_SettingsMenuLayout.cpp b/uMenu/source/ui/ui_SettingsMenuLayout.cpp index f7cd051b..1a8fa538 100644 --- a/uMenu/source/ui/ui_SettingsMenuLayout.cpp +++ b/uMenu/source/ui/ui_SettingsMenuLayout.cpp @@ -15,22 +15,22 @@ extern cfg::Config g_Config; namespace ui { template - inline std::string EncodeForSettings(T t) { + inline std::string EncodeForSettings(const T &t) { return GetLanguageString("set_unknown_value"); } template<> - inline std::string EncodeForSettings(std::string t) { + inline std::string EncodeForSettings(const std::string &t) { return "\"" + t + "\""; } template<> - inline std::string EncodeForSettings(u32 t) { + inline std::string EncodeForSettings(const u32 &t) { return "\"" + std::to_string(t) + "\""; } template<> - inline std::string EncodeForSettings(bool t) { + inline std::string EncodeForSettings(const bool &t) { return t ? GetLanguageString("set_true_value") : GetLanguageString("set_false_value"); } @@ -72,6 +72,7 @@ namespace ui { } void SettingsMenuLayout::Reload() { + // TODO: more settings this->settingsMenu->ClearItems(); this->settingsMenu->SetSelectedIndex(0); @@ -84,38 +85,39 @@ namespace ui { bool viewer_usb_enabled; UL_ASSERT_TRUE(g_Config.GetEntry(cfg::ConfigEntryId::ViewerUsbEnabled, viewer_usb_enabled)); this->PushSettingItem(GetLanguageString("set_viewer_enabled"), EncodeForSettings(viewer_usb_enabled), 1); - auto connectednet = GetLanguageString("set_wifi_none"); + auto connected_wifi_name = GetLanguageString("set_wifi_none"); if(net::HasConnection()) { net::NetworkProfileData data = {}; net::GetCurrentNetworkProfile(&data); - connectednet = data.wifi_name; + connected_wifi_name = data.wifi_name; } - this->PushSettingItem(GetLanguageString("set_wifi_name"), EncodeForSettings(connectednet), 2); + this->PushSettingItem(GetLanguageString("set_wifi_name"), EncodeForSettings(connected_wifi_name), 2); - u64 lcode = 0; - auto ilang = SetLanguage_ENUS; - setGetLanguageCode(&lcode); - setMakeLanguage(lcode, &ilang); - this->PushSettingItem(GetLanguageString("set_console_lang"), EncodeForSettings(os::LanguageNameList[ilang]), 3); - bool console_info_upload = false; + u64 lang_code = 0; + auto lang_val = SetLanguage_ENUS; + setGetSystemLanguage(&lang_code); + setMakeLanguage(lang_code, &lang_val); + const std::string lang_str = os::LanguageNameList[static_cast(lang_val)]; + this->PushSettingItem(GetLanguageString("set_console_lang"), EncodeForSettings(lang_str), 3); + auto console_info_upload = false; setsysGetConsoleInformationUploadFlag(&console_info_upload); this->PushSettingItem(GetLanguageString("set_console_info_upload"), EncodeForSettings(console_info_upload), 4); - bool auto_titles_dl = false; + auto auto_titles_dl = false; setsysGetAutomaticApplicationDownloadFlag(&auto_titles_dl); this->PushSettingItem(GetLanguageString("set_auto_titles_dl"), EncodeForSettings(auto_titles_dl), 5); - bool auto_update = false; + auto auto_update = false; setsysGetAutoUpdateEnableFlag(&auto_update); this->PushSettingItem(GetLanguageString("set_auto_update"), EncodeForSettings(auto_update), 6); - bool wireless_lan = false; + auto wireless_lan = false; setsysGetWirelessLanEnableFlag(&wireless_lan); this->PushSettingItem(GetLanguageString("set_wireless_lan"), EncodeForSettings(wireless_lan), 7); - bool bluetooth = false; + auto bluetooth = false; setsysGetBluetoothEnableFlag(&bluetooth); this->PushSettingItem(GetLanguageString("set_bluetooth"), EncodeForSettings(bluetooth), 8); - bool usb_30 = false; + auto usb_30 = false; setsysGetUsb30EnableFlag(&usb_30); this->PushSettingItem(GetLanguageString("set_usb_30"), EncodeForSettings(usb_30), 9); - bool nfc = false; + auto nfc = false; setsysGetNfcEnableFlag(&nfc); this->PushSettingItem(GetLanguageString("set_nfc"), EncodeForSettings(nfc), 10); SetSysSerialNumber serial = {}; @@ -123,11 +125,10 @@ namespace ui { this->PushSettingItem(GetLanguageString("set_serial_no"), EncodeForSettings(serial.number), -1); u64 mac = 0; net::GetMACAddress(&mac); - auto strmac = net::FormatMACAddress(mac); - this->PushSettingItem(GetLanguageString("set_mac_addr"), EncodeForSettings(strmac), -1); - auto ipstr = net::GetConsoleIPAddress(); - // TODO: strings - this->PushSettingItem("Console IP address", EncodeForSettings(ipstr), -1); + const auto mac_addr_str = net::FormatMACAddress(mac); + this->PushSettingItem(GetLanguageString("set_mac_addr"), EncodeForSettings(mac_addr_str), -1); + const auto ip_str = net::GetConsoleIPAddress(); + this->PushSettingItem("Console IP address", EncodeForSettings(ip_str), -1); } void SettingsMenuLayout::PushSettingItem(const std::string &name, const std::string &value_display, int id) {