1
0
Fork 0
mirror of https://github.com/HamletDuFromage/aio-switch-updater.git synced 2025-02-17 22:15:37 +00:00
AIO-switch-updater/source/main_frame.cpp

63 lines
2.2 KiB
C++
Raw Normal View History

2020-09-20 02:21:28 +02:00
#include "main_frame.hpp"
2021-09-11 15:48:13 +02:00
#include <fstream>
#include <json.hpp>
2021-02-10 17:28:47 +01:00
#include "about_tab.hpp"
#include "ams_tab.hpp"
2021-09-15 17:23:37 +02:00
#include "download.hpp"
2021-09-11 15:48:13 +02:00
#include "fs.hpp"
#include "list_download_tab.hpp"
2021-02-10 17:28:47 +01:00
#include "tools_tab.hpp"
#include "utils.hpp"
2021-03-10 21:43:00 +01:00
namespace i18n = brls::i18n;
using namespace i18n::literals;
using json = nlohmann::json;
2021-06-03 22:51:00 +02:00
namespace {
constexpr const char AppTitle[] = APP_TITLE;
constexpr const char AppVersion[] = APP_VERSION;
2021-09-11 15:48:13 +02:00
} // namespace
2021-06-03 22:51:00 +02:00
2020-09-20 02:21:28 +02:00
MainFrame::MainFrame() : TabFrame()
{
2021-02-01 17:01:49 +01:00
this->setIcon("romfs:/gui_icon.png");
2021-06-03 22:51:00 +02:00
this->setTitle(AppTitle);
2021-02-01 17:01:49 +01:00
2021-06-03 22:51:00 +02:00
s64 freeStorage;
std::string tag = util::getLatestTag(TAGS_INFO);
2021-09-11 15:48:13 +02:00
this->setFooterText(fmt::format("menus/main/footer_text"_i18n,
(!tag.empty() && tag != AppVersion) ? AppVersion + "menus/main/new_update"_i18n : AppVersion,
R_SUCCEEDED(fs::getFreeStorageSD(freeStorage)) ? (float)freeStorage / 0x40000000 : -1));
2021-06-03 22:51:00 +02:00
2021-03-16 15:56:46 +01:00
json hideStatus = fs::parseJsonFile(HIDE_TABS_JSON);
2021-09-15 17:23:37 +02:00
nlohmann::ordered_json nxlinks;
download::getRequest(NXLINKS_URL, nxlinks);
bool erista = util::isErista();
2021-02-17 19:00:12 +01:00
2021-09-11 15:48:13 +02:00
if (!util::getBoolValue(hideStatus, "about"))
2021-03-01 19:19:17 +01:00
this->addTab("menus/main/about"_i18n, new AboutTab());
2021-09-11 15:48:13 +02:00
if (!util::getBoolValue(hideStatus, "atmosphere"))
2022-09-06 20:45:26 +02:00
this->addTab("menus/main/update_ams"_i18n, new AmsTab(nxlinks, erista, false));
2021-09-11 15:48:13 +02:00
if (!util::getBoolValue(hideStatus, "cfw"))
this->addTab("menus/main/update_bootloaders"_i18n, new ListDownloadTab(contentType::bootloaders, nxlinks));
2020-09-20 02:21:28 +02:00
2021-09-11 15:48:13 +02:00
if (!util::getBoolValue(hideStatus, "firmwares"))
this->addTab("menus/main/download_firmware"_i18n, new ListDownloadTab(contentType::fw, nxlinks));
2020-09-20 02:21:28 +02:00
2021-09-11 15:48:13 +02:00
if (!util::getBoolValue(hideStatus, "cheats"))
this->addTab("menus/main/download_cheats"_i18n, new ListDownloadTab(contentType::cheats));
2022-09-06 20:45:26 +02:00
if (!util::getBoolValue(hideStatus, "custom"))
this->addTab("menus/main/custom_downloads"_i18n, new AmsTab(nxlinks, erista, true));
2021-09-11 15:48:13 +02:00
if (!util::getBoolValue(hideStatus, "tools"))
2021-09-15 17:50:34 +02:00
this->addTab("menus/main/tools"_i18n, new ToolsTab(tag, util::getValueFromKey(nxlinks, "payloads"), erista, hideStatus));
2021-09-11 15:48:13 +02:00
this->registerAction("", brls::Key::B, [this] { return true; });
2020-09-20 02:21:28 +02:00
}