diff --git a/src/activities/ActivityManager.cpp b/src/activities/ActivityManager.cpp index 2d04efa1..593e9d45 100644 --- a/src/activities/ActivityManager.cpp +++ b/src/activities/ActivityManager.cpp @@ -7,6 +7,8 @@ #include #include +#include + #include "CrossPointState.h" #include "OpdsServerStore.h" #include "SdCardFontGlobals.h" @@ -390,7 +392,11 @@ void ActivityManager::popActivity() { bool ActivityManager::preventAutoSleep() const { return currentActivity && currentActivity->preventAutoSleep(); } -bool ActivityManager::isReaderActivity() const { return currentActivity && currentActivity->isReaderActivity(); } +bool ActivityManager::isReaderActivity() const { + if (currentActivity && currentActivity->isReaderActivity()) return true; + return std::any_of(stackActivities.begin(), stackActivities.end(), + [](const auto& activity) { return activity->isReaderActivity(); }); +} bool ActivityManager::skipLoopDelay() const { return currentActivity && currentActivity->skipLoopDelay(); } diff --git a/src/activities/reader/EpubReaderActivity.h b/src/activities/reader/EpubReaderActivity.h index 9186d801..5c54058f 100644 --- a/src/activities/reader/EpubReaderActivity.h +++ b/src/activities/reader/EpubReaderActivity.h @@ -203,7 +203,6 @@ class EpubReaderActivity final : public Activity { void onExit() override; void loop() override; void render(RenderLock&& lock) override; - bool isReaderActivity() const override { return true; } void onButtonAction(CrossPointSettings::BUTTON_ACTION action) override; // Renders the last saved page to the frame buffer without flushing to display. diff --git a/src/activities/reader/XtcReaderChapterSelectionActivity.h b/src/activities/reader/XtcReaderChapterSelectionActivity.h index 75d44215..42040ad5 100644 --- a/src/activities/reader/XtcReaderChapterSelectionActivity.h +++ b/src/activities/reader/XtcReaderChapterSelectionActivity.h @@ -23,5 +23,4 @@ class XtcReaderChapterSelectionActivity final : public Activity { void onExit() override; void loop() override; void render(RenderLock&&) override; - bool isReaderActivity() const override { return true; } };