#pragma once #include #include #include #include #include "../ActivityWithSubactivity.h" #include "RecentBooksStore.h" #include "util/ButtonNavigator.h" class RecentBooksActivity final : public ActivityWithSubactivity { private: ButtonNavigator buttonNavigator; size_t selectorIndex = 0; // Recent tab state std::vector recentBooks; // Long-press state bool ignoreNextConfirmRelease = false; static constexpr unsigned long LONG_PRESS_MS = 700; // Callbacks const std::function onSelectBook; const std::function onGoHome; // Data loading void loadRecentBooks(); void openManageMenu(const std::string& bookPath); public: explicit RecentBooksActivity(GfxRenderer& renderer, MappedInputManager& mappedInput, const std::function& onGoHome, const std::function& onSelectBook) : ActivityWithSubactivity("RecentBooks", renderer, mappedInput), onSelectBook(onSelectBook), onGoHome(onGoHome) {} void onEnter() override; void onExit() override; void loop() override; void render(Activity::RenderLock&&) override; };