From b1462b37b7da7f46f7251ca10e3b0a8a076ee3a8 Mon Sep 17 00:00:00 2001 From: jpirnay Date: Mon, 6 Apr 2026 10:40:04 +0200 Subject: [PATCH 1/3] Make information overlay applicable for custom bitmaps too --- src/activities/boot_sleep/SleepActivity.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/activities/boot_sleep/SleepActivity.cpp b/src/activities/boot_sleep/SleepActivity.cpp index f78c0691..f9475e2c 100644 --- a/src/activities/boot_sleep/SleepActivity.cpp +++ b/src/activities/boot_sleep/SleepActivity.cpp @@ -183,6 +183,10 @@ void SleepActivity::onEnter() { } void SleepActivity::renderCustomSleepScreen() const { + const BookOverlayInfo overlayInfo = (SETTINGS.sleepCoverOverlay != 0 && !APP_STATE.openEpubPath.empty()) + ? getBookOverlayInfo(APP_STATE.openEpubPath) + : BookOverlayInfo{}; + // Check if we have a /.sleep (preferred) or /sleep directory const char* sleepDir = nullptr; auto dir = Storage.open("/.sleep"); @@ -243,7 +247,7 @@ void SleepActivity::renderCustomSleepScreen() const { delay(100); Bitmap bitmap(file, true); if (bitmap.parseHeaders() == BmpReaderError::Ok) { - renderBitmapSleepScreen(bitmap, BookOverlayInfo{}); + renderBitmapSleepScreen(bitmap, overlayInfo); file.close(); dir.close(); return; @@ -261,7 +265,7 @@ void SleepActivity::renderCustomSleepScreen() const { Bitmap bitmap(file, true); if (bitmap.parseHeaders() == BmpReaderError::Ok) { LOG_DBG("SLP", "Loading: /sleep.bmp"); - renderBitmapSleepScreen(bitmap, BookOverlayInfo{}); + renderBitmapSleepScreen(bitmap, overlayInfo); file.close(); return; } From 26dc65735f83dcb1d7a8fed677d4486fd27e69ff Mon Sep 17 00:00:00 2001 From: jpirnay Date: Mon, 6 Apr 2026 10:52:05 +0200 Subject: [PATCH 2/3] Review comments --- src/activities/boot_sleep/SleepActivity.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/activities/boot_sleep/SleepActivity.cpp b/src/activities/boot_sleep/SleepActivity.cpp index f9475e2c..d1ac257b 100644 --- a/src/activities/boot_sleep/SleepActivity.cpp +++ b/src/activities/boot_sleep/SleepActivity.cpp @@ -183,9 +183,10 @@ void SleepActivity::onEnter() { } void SleepActivity::renderCustomSleepScreen() const { - const BookOverlayInfo overlayInfo = (SETTINGS.sleepCoverOverlay != 0 && !APP_STATE.openEpubPath.empty()) - ? getBookOverlayInfo(APP_STATE.openEpubPath) - : BookOverlayInfo{}; + const BookOverlayInfo overlayInfo = + (SETTINGS.sleepCoverOverlay != 0 && APP_STATE.lastSleepFromReader && !APP_STATE.openEpubPath.empty()) + ? getBookOverlayInfo(APP_STATE.openEpubPath) + : BookOverlayInfo{}; // Check if we have a /.sleep (preferred) or /sleep directory const char* sleepDir = nullptr; From e00ac4b63a42bcf765d4e2bb563af49edeb0c49a Mon Sep 17 00:00:00 2001 From: jpirnay Date: Mon, 6 Apr 2026 10:56:01 +0200 Subject: [PATCH 3/3] Only load info when needed --- src/activities/boot_sleep/SleepActivity.cpp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/activities/boot_sleep/SleepActivity.cpp b/src/activities/boot_sleep/SleepActivity.cpp index d1ac257b..e87c54bd 100644 --- a/src/activities/boot_sleep/SleepActivity.cpp +++ b/src/activities/boot_sleep/SleepActivity.cpp @@ -183,10 +183,9 @@ void SleepActivity::onEnter() { } void SleepActivity::renderCustomSleepScreen() const { - const BookOverlayInfo overlayInfo = - (SETTINGS.sleepCoverOverlay != 0 && APP_STATE.lastSleepFromReader && !APP_STATE.openEpubPath.empty()) - ? getBookOverlayInfo(APP_STATE.openEpubPath) - : BookOverlayInfo{}; + const BookOverlayInfo overlayInfo{}; + const bool shouldLoadOverlayInfo = + SETTINGS.sleepCoverOverlay != 0 && APP_STATE.lastSleepFromReader && !APP_STATE.openEpubPath.empty(); // Check if we have a /.sleep (preferred) or /sleep directory const char* sleepDir = nullptr; @@ -248,7 +247,9 @@ void SleepActivity::renderCustomSleepScreen() const { delay(100); Bitmap bitmap(file, true); if (bitmap.parseHeaders() == BmpReaderError::Ok) { - renderBitmapSleepScreen(bitmap, overlayInfo); + const BookOverlayInfo resolvedOverlayInfo = + shouldLoadOverlayInfo ? getBookOverlayInfo(APP_STATE.openEpubPath) : overlayInfo; + renderBitmapSleepScreen(bitmap, resolvedOverlayInfo); file.close(); dir.close(); return; @@ -266,7 +267,9 @@ void SleepActivity::renderCustomSleepScreen() const { Bitmap bitmap(file, true); if (bitmap.parseHeaders() == BmpReaderError::Ok) { LOG_DBG("SLP", "Loading: /sleep.bmp"); - renderBitmapSleepScreen(bitmap, overlayInfo); + const BookOverlayInfo resolvedOverlayInfo = + shouldLoadOverlayInfo ? getBookOverlayInfo(APP_STATE.openEpubPath) : overlayInfo; + renderBitmapSleepScreen(bitmap, resolvedOverlayInfo); file.close(); return; }