#pragma once #include #include #include #include "../ActivityWithSubactivity.h" #include "util/BookmarkStore.h" #include "util/ButtonNavigator.h" class EpubReaderBookmarkSelectionActivity final : public ActivityWithSubactivity { std::shared_ptr epub; std::vector bookmarks; std::string cachePath; ButtonNavigator buttonNavigator; int selectorIndex = 0; bool deleteConfirmMode = false; bool ignoreNextConfirmRelease = false; int pendingDeleteIndex = 0; const std::function onGoBack; const std::function onSelectBookmark; int getPageItems() const; int getTotalItems() const; std::string getBookmarkPrefix(const Bookmark& bookmark) const; static std::string getPageSuffix(const Bookmark& bookmark); public: explicit EpubReaderBookmarkSelectionActivity(GfxRenderer& renderer, MappedInputManager& mappedInput, const std::shared_ptr& epub, std::vector bookmarks, const std::string& cachePath, const std::function& onGoBack, const std::function& onSelectBookmark) : ActivityWithSubactivity("EpubReaderBookmarkSelection", renderer, mappedInput), epub(epub), bookmarks(std::move(bookmarks)), cachePath(cachePath), onGoBack(onGoBack), onSelectBookmark(onSelectBookmark) {} void onEnter() override; void onExit() override; void loop() override; void render(Activity::RenderLock&&) override; };