From 30b14f2ecffd516d89ac4af0cdde953de9c444cc Mon Sep 17 00:00:00 2001 From: Zach Nelson Date: Wed, 13 May 2026 08:26:56 -0500 Subject: [PATCH] refactor: Removed SdCardFontGlobals.h (#1962) ## Summary First of several changes to decouple and clean up SD card fonts integration. This change eliminates SdCardFontGlobals.h: - Simply declare the `extern SdCardFontSystem sdFontSystem` in SdCardFontSystem.h. - `ActivityManager::goToReader` should not care about loading SD card fonts. Instead do the same work in `ReaderActivity::onEnter`, after the previous activity has exited and after ReaderActivity has validated the file path. --- ### AI Usage While CrossPoint doesn't have restrictions on AI tools in contributing, please be transparent about their usage as it helps set the right context for reviewers. Did you use AI tools to help write this code? _**NO**_ --- src/SdCardFontGlobals.h | 12 ------------ src/SdCardFontSystem.h | 3 +++ src/activities/ActivityManager.cpp | 2 -- src/activities/reader/ReaderActivity.cpp | 3 +++ src/activities/settings/FontDownloadActivity.cpp | 2 +- src/activities/settings/SettingsActivity.cpp | 2 +- src/main.cpp | 2 -- src/network/CrossPointWebServer.cpp | 1 - 8 files changed, 8 insertions(+), 19 deletions(-) delete mode 100644 src/SdCardFontGlobals.h diff --git a/src/SdCardFontGlobals.h b/src/SdCardFontGlobals.h deleted file mode 100644 index fec123a0..00000000 --- a/src/SdCardFontGlobals.h +++ /dev/null @@ -1,12 +0,0 @@ -#pragma once - -#include "SdCardFontSystem.h" - -class GfxRenderer; - -// Global SD card font system instance (defined in main.cpp). -extern SdCardFontSystem sdFontSystem; - -// Ensure the correct SD card font family is loaded for current settings. -// Defined in main.cpp; call before entering the reader or after settings change. -extern void ensureSdFontLoaded(); diff --git a/src/SdCardFontSystem.h b/src/SdCardFontSystem.h index f0535343..6b8aef7f 100644 --- a/src/SdCardFontSystem.h +++ b/src/SdCardFontSystem.h @@ -50,3 +50,6 @@ class SdCardFontSystem { SdCardFontManager manager_; std::atomic registryDirty_{false}; }; + +// Global SD card font system instance (defined in main.cpp). +extern SdCardFontSystem sdFontSystem; diff --git a/src/activities/ActivityManager.cpp b/src/activities/ActivityManager.cpp index c81e6b95..96c3c7d0 100644 --- a/src/activities/ActivityManager.cpp +++ b/src/activities/ActivityManager.cpp @@ -5,7 +5,6 @@ #include #include "OpdsServerStore.h" -#include "SdCardFontGlobals.h" #include "boot_sleep/BootActivity.h" #include "boot_sleep/SleepActivity.h" #include "browser/OpdsBookBrowserActivity.h" @@ -194,7 +193,6 @@ void ActivityManager::goToBrowser() { } void ActivityManager::goToReader(std::string path) { - ensureSdFontLoaded(); replaceActivity(std::make_unique(renderer, mappedInput, std::move(path))); } diff --git a/src/activities/reader/ReaderActivity.cpp b/src/activities/reader/ReaderActivity.cpp index 989e6d22..6894ee70 100644 --- a/src/activities/reader/ReaderActivity.cpp +++ b/src/activities/reader/ReaderActivity.cpp @@ -6,6 +6,7 @@ #include "CrossPointSettings.h" #include "Epub.h" #include "EpubReaderActivity.h" +#include "SdCardFontSystem.h" #include "Txt.h" #include "TxtReaderActivity.h" #include "Xtc.h" @@ -103,6 +104,8 @@ void ReaderActivity::onEnter() { return; } + sdFontSystem.ensureLoaded(renderer); + currentBookPath = initialBookPath; if (isBmpFile(initialBookPath)) { onGoToBmpViewer(initialBookPath); diff --git a/src/activities/settings/FontDownloadActivity.cpp b/src/activities/settings/FontDownloadActivity.cpp index 0acba062..27abc575 100644 --- a/src/activities/settings/FontDownloadActivity.cpp +++ b/src/activities/settings/FontDownloadActivity.cpp @@ -9,7 +9,7 @@ #include #include "MappedInputManager.h" -#include "SdCardFontGlobals.h" +#include "SdCardFontSystem.h" #include "activities/network/WifiSelectionActivity.h" #include "activities/util/ConfirmationActivity.h" #include "components/UITheme.h" diff --git a/src/activities/settings/SettingsActivity.cpp b/src/activities/settings/SettingsActivity.cpp index adf99acd..afd707c6 100644 --- a/src/activities/settings/SettingsActivity.cpp +++ b/src/activities/settings/SettingsActivity.cpp @@ -13,7 +13,7 @@ #include "MappedInputManager.h" #include "OpdsServerListActivity.h" #include "OtaUpdateActivity.h" -#include "SdCardFontGlobals.h" +#include "SdCardFontSystem.h" #include "SdFirmwareUpdateActivity.h" #include "SettingsList.h" #include "StatusBarSettingsActivity.h" diff --git a/src/main.cpp b/src/main.cpp index a273534c..27fb4a07 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -197,8 +197,6 @@ void enterDeepSleep() { powerManager.startDeepSleep(gpio); } -void ensureSdFontLoaded() { sdFontSystem.ensureLoaded(renderer); } - void setupDisplayAndFonts() { display.begin(); renderer.begin(); diff --git a/src/network/CrossPointWebServer.cpp b/src/network/CrossPointWebServer.cpp index 60e4e9e2..33a1348d 100644 --- a/src/network/CrossPointWebServer.cpp +++ b/src/network/CrossPointWebServer.cpp @@ -13,7 +13,6 @@ #include "CrossPointSettings.h" #include "FontInstaller.h" #include "OpdsServerStore.h" -#include "SdCardFontGlobals.h" #include "SdCardFontSystem.h" #include "SettingsList.h" #include "WebDAVHandler.h"