#pragma once #include #include #include "extractor.hpp" class PatchActivity : public brls::Activity { public: PatchActivity(); ~PatchActivity() override; brls::View* createContentView() override; void onContentAvailable() override; private: enum class Screen { Error, Ready, Extracting, Done }; void showScreen(Screen screen); void startExtraction(); void onExtractTick(); void updateProgressUi(); bool onExtractClicked(brls::View* view); brls::AppletFrame* frame = nullptr; brls::Box* contentBox = nullptr; brls::Label* titleLabel = nullptr; brls::Label* messageLabel = nullptr; brls::Label* detailLabel = nullptr; brls::Label* progressLabel = nullptr; brls::Box* progressTrack = nullptr; brls::Rectangle* progressFill = nullptr; brls::Button* actionButton = nullptr; std::unique_ptr extractor; brls::RepeatingTimer extractTimer; Screen currentScreen = Screen::Ready; };