From 68854812e98c78eb4546e84135048de69c06a38e Mon Sep 17 00:00:00 2001 From: Irene Ying Date: Sat, 17 Jan 2026 13:30:59 -0800 Subject: [PATCH 1/4] Initial push --- src/CrossPointSettings.h | 2 +- src/activities/boot_sleep/SleepActivity.cpp | 24 ++++++++++++++++++++ src/activities/boot_sleep/SleepActivity.h | 1 + src/activities/settings/SettingsActivity.cpp | 2 +- 4 files changed, 27 insertions(+), 2 deletions(-) diff --git a/src/CrossPointSettings.h b/src/CrossPointSettings.h index a5641aa..738b47c 100644 --- a/src/CrossPointSettings.h +++ b/src/CrossPointSettings.h @@ -16,7 +16,7 @@ class CrossPointSettings { CrossPointSettings& operator=(const CrossPointSettings&) = delete; // Should match with SettingsActivity text - enum SLEEP_SCREEN_MODE { DARK = 0, LIGHT = 1, CUSTOM = 2, COVER = 3, BLANK = 4 }; + enum SLEEP_SCREEN_MODE { DARK = 0, LIGHT = 1, CUSTOM = 2, COVER = 3, LAST_SCREEN = 4, BLANK = 5 }; enum SLEEP_SCREEN_COVER_MODE { FIT = 0, CROP = 1 }; // Status bar display type enum diff --git a/src/activities/boot_sleep/SleepActivity.cpp b/src/activities/boot_sleep/SleepActivity.cpp index bf2b585..fdf1459 100644 --- a/src/activities/boot_sleep/SleepActivity.cpp +++ b/src/activities/boot_sleep/SleepActivity.cpp @@ -28,6 +28,10 @@ void SleepActivity::onEnter() { return renderCoverSleepScreen(); } + if (SETTINGS.sleepScreen == CrossPointSettings::SLEEP_SCREEN_MODE::LAST_SCREEN) { + return renderLastScreenSleepScreen(); + } + renderDefaultSleepScreen(); } @@ -268,6 +272,26 @@ void SleepActivity::renderCoverSleepScreen() const { renderDefaultSleepScreen(); } +void SleepActivity::renderLastScreenSleepScreen() const { + const int textWidth = renderer.getTextWidth(UI_12_FONT_ID, "SLEEPING...", EpdFontFamily::BOLD); + constexpr int margin = 20; + const int x = (renderer.getScreenWidth() - textWidth - margin * 2) / 2; + const int w = textWidth + margin * 2; + const int h = renderer.getLineHeight(UI_12_FONT_ID) + margin * 2; + const int y = renderer.getScreenHeight() - h - margin; + + renderer.fillRect(x - 5, y - 5, w + 10, h + 10, true); + renderer.fillRect(x + 5, y + 5, w - 10, h - 10, false); + renderer.drawText(UI_12_FONT_ID, x + margin, y + margin, "SLEEPING...", true, EpdFontFamily::BOLD); + + // Make sleep screen dark unless light is selected in settings + if (SETTINGS.sleepScreen == CrossPointSettings::SLEEP_SCREEN_MODE::DARK) { + // Draw dark sleep image + } + + renderer.displayBuffer(EInkDisplay::HALF_REFRESH); +} + void SleepActivity::renderBlankSleepScreen() const { renderer.clearScreen(); renderer.displayBuffer(EInkDisplay::HALF_REFRESH); diff --git a/src/activities/boot_sleep/SleepActivity.h b/src/activities/boot_sleep/SleepActivity.h index 283220c..56f0d13 100644 --- a/src/activities/boot_sleep/SleepActivity.h +++ b/src/activities/boot_sleep/SleepActivity.h @@ -15,5 +15,6 @@ class SleepActivity final : public Activity { void renderCustomSleepScreen() const; void renderCoverSleepScreen() const; void renderBitmapSleepScreen(const Bitmap& bitmap) const; + void renderLastScreenSleepScreen() const; void renderBlankSleepScreen() const; }; diff --git a/src/activities/settings/SettingsActivity.cpp b/src/activities/settings/SettingsActivity.cpp index efa0b9e..0aed11e 100644 --- a/src/activities/settings/SettingsActivity.cpp +++ b/src/activities/settings/SettingsActivity.cpp @@ -16,7 +16,7 @@ namespace { constexpr int settingsCount = 20; const SettingInfo settingsList[settingsCount] = { // Should match with SLEEP_SCREEN_MODE - SettingInfo::Enum("Sleep Screen", &CrossPointSettings::sleepScreen, {"Dark", "Light", "Custom", "Cover", "None"}), + SettingInfo::Enum("Sleep Screen", &CrossPointSettings::sleepScreen, {"Dark", "Light", "Custom", "Cover", "Last Screen" "None"}), SettingInfo::Enum("Sleep Screen Cover Mode", &CrossPointSettings::sleepScreenCoverMode, {"Fit", "Crop"}), SettingInfo::Enum("Status Bar", &CrossPointSettings::statusBar, {"None", "No Progress", "Full"}), SettingInfo::Enum("Hide Battery %", &CrossPointSettings::hideBatteryPercentage, {"Never", "In Reader", "Always"}), From 0b3e8f1102842f1215dd12ea799aea83cb240962 Mon Sep 17 00:00:00 2001 From: Irene Ying Date: Sat, 17 Jan 2026 14:05:46 -0800 Subject: [PATCH 2/4] Remove Entering Sleep message --- src/activities/boot_sleep/SleepActivity.cpp | 10 +++++----- src/activities/settings/SettingsActivity.cpp | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/activities/boot_sleep/SleepActivity.cpp b/src/activities/boot_sleep/SleepActivity.cpp index fdf1459..375a10d 100644 --- a/src/activities/boot_sleep/SleepActivity.cpp +++ b/src/activities/boot_sleep/SleepActivity.cpp @@ -14,7 +14,11 @@ void SleepActivity::onEnter() { Activity::onEnter(); - renderPopup("Entering Sleep..."); + if(SETTINGS.sleepScreen != CrossPointSettings::SLEEP_SCREEN_MODE::LAST_SCREEN) { + renderPopup("Entering Sleep..."); + } else { + return renderLastScreenSleepScreen(); + } if (SETTINGS.sleepScreen == CrossPointSettings::SLEEP_SCREEN_MODE::BLANK) { return renderBlankSleepScreen(); @@ -28,10 +32,6 @@ void SleepActivity::onEnter() { return renderCoverSleepScreen(); } - if (SETTINGS.sleepScreen == CrossPointSettings::SLEEP_SCREEN_MODE::LAST_SCREEN) { - return renderLastScreenSleepScreen(); - } - renderDefaultSleepScreen(); } diff --git a/src/activities/settings/SettingsActivity.cpp b/src/activities/settings/SettingsActivity.cpp index 0aed11e..732759f 100644 --- a/src/activities/settings/SettingsActivity.cpp +++ b/src/activities/settings/SettingsActivity.cpp @@ -16,7 +16,7 @@ namespace { constexpr int settingsCount = 20; const SettingInfo settingsList[settingsCount] = { // Should match with SLEEP_SCREEN_MODE - SettingInfo::Enum("Sleep Screen", &CrossPointSettings::sleepScreen, {"Dark", "Light", "Custom", "Cover", "Last Screen" "None"}), + SettingInfo::Enum("Sleep Screen", &CrossPointSettings::sleepScreen, {"Dark", "Light", "Custom", "Cover", "Last Screen", "None"}), SettingInfo::Enum("Sleep Screen Cover Mode", &CrossPointSettings::sleepScreenCoverMode, {"Fit", "Crop"}), SettingInfo::Enum("Status Bar", &CrossPointSettings::statusBar, {"None", "No Progress", "Full"}), SettingInfo::Enum("Hide Battery %", &CrossPointSettings::hideBatteryPercentage, {"Never", "In Reader", "Always"}), From 0e6d7dd140d4f8171d8588ca5c4a893a8abd4ae2 Mon Sep 17 00:00:00 2001 From: Irene Ying Date: Sat, 17 Jan 2026 14:23:18 -0800 Subject: [PATCH 3/4] fix formatting issues --- src/activities/boot_sleep/SleepActivity.cpp | 4 ++-- src/activities/settings/SettingsActivity.cpp | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/activities/boot_sleep/SleepActivity.cpp b/src/activities/boot_sleep/SleepActivity.cpp index 375a10d..3a7a03f 100644 --- a/src/activities/boot_sleep/SleepActivity.cpp +++ b/src/activities/boot_sleep/SleepActivity.cpp @@ -14,7 +14,7 @@ void SleepActivity::onEnter() { Activity::onEnter(); - if(SETTINGS.sleepScreen != CrossPointSettings::SLEEP_SCREEN_MODE::LAST_SCREEN) { + if (SETTINGS.sleepScreen != CrossPointSettings::SLEEP_SCREEN_MODE::LAST_SCREEN) { renderPopup("Entering Sleep..."); } else { return renderLastScreenSleepScreen(); @@ -283,7 +283,7 @@ void SleepActivity::renderLastScreenSleepScreen() const { renderer.fillRect(x - 5, y - 5, w + 10, h + 10, true); renderer.fillRect(x + 5, y + 5, w - 10, h - 10, false); renderer.drawText(UI_12_FONT_ID, x + margin, y + margin, "SLEEPING...", true, EpdFontFamily::BOLD); - + // Make sleep screen dark unless light is selected in settings if (SETTINGS.sleepScreen == CrossPointSettings::SLEEP_SCREEN_MODE::DARK) { // Draw dark sleep image diff --git a/src/activities/settings/SettingsActivity.cpp b/src/activities/settings/SettingsActivity.cpp index 732759f..7e1c767 100644 --- a/src/activities/settings/SettingsActivity.cpp +++ b/src/activities/settings/SettingsActivity.cpp @@ -16,7 +16,8 @@ namespace { constexpr int settingsCount = 20; const SettingInfo settingsList[settingsCount] = { // Should match with SLEEP_SCREEN_MODE - SettingInfo::Enum("Sleep Screen", &CrossPointSettings::sleepScreen, {"Dark", "Light", "Custom", "Cover", "Last Screen", "None"}), + SettingInfo::Enum("Sleep Screen", &CrossPointSettings::sleepScreen, + {"Dark", "Light", "Custom", "Cover", "Last Screen", "None"}), SettingInfo::Enum("Sleep Screen Cover Mode", &CrossPointSettings::sleepScreenCoverMode, {"Fit", "Crop"}), SettingInfo::Enum("Status Bar", &CrossPointSettings::statusBar, {"None", "No Progress", "Full"}), SettingInfo::Enum("Hide Battery %", &CrossPointSettings::hideBatteryPercentage, {"Never", "In Reader", "Always"}), From 2a65d109250a033085ebaa0482284168e60f89ec Mon Sep 17 00:00:00 2001 From: Irene Ying Date: Sun, 18 Jan 2026 10:26:02 -0800 Subject: [PATCH 4/4] remove placeholder --- src/activities/boot_sleep/SleepActivity.cpp | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/activities/boot_sleep/SleepActivity.cpp b/src/activities/boot_sleep/SleepActivity.cpp index 3a7a03f..bd47a18 100644 --- a/src/activities/boot_sleep/SleepActivity.cpp +++ b/src/activities/boot_sleep/SleepActivity.cpp @@ -284,11 +284,6 @@ void SleepActivity::renderLastScreenSleepScreen() const { renderer.fillRect(x + 5, y + 5, w - 10, h - 10, false); renderer.drawText(UI_12_FONT_ID, x + margin, y + margin, "SLEEPING...", true, EpdFontFamily::BOLD); - // Make sleep screen dark unless light is selected in settings - if (SETTINGS.sleepScreen == CrossPointSettings::SLEEP_SCREEN_MODE::DARK) { - // Draw dark sleep image - } - renderer.displayBuffer(EInkDisplay::HALF_REFRESH); }