Brings ~55 mod-exclusive files to the upstream-based mod/master-resync branch: Activities (migrated to new ActivityManager pattern): - Clock/Time: SetTimeActivity, SetTimezoneOffsetActivity, NtpSyncActivity - Dictionary: DictionaryDefinitionActivity, DictionarySuggestionsActivity, DictionaryWordSelectActivity, LookedUpWordsActivity - Bookmark: EpubReaderBookmarkSelectionActivity - Book management: BookManageMenuActivity, EndOfBookMenuActivity - OPDS: OpdsServerListActivity, OpdsSettingsActivity - Utility: DirectoryPickerActivity, NumericStepperActivity Utilities (unchanged): - BookManager, BookSettings, BookmarkStore, BootNtpSync - Dictionary, LookupHistory, TimeSync, OpdsServerStore Libraries: PlaceholderCover, TableData, ChapterXPathIndexer Scripts: inject_mod_version, generate_book_icon, preview_placeholder_cover Docs: KOReader sync XPath mapping Migration changes: - ActivityWithSubactivity -> Activity base class - Callback constructors -> finish()/setResult() pattern - enterNewActivity() -> startActivityForResult() - Activity::RenderLock&& -> RenderLock&& These files won't compile yet - they reference mod settings and I18n strings that will be added in subsequent phases. Made-with: Cursor
2.8 KiB
2.8 KiB
Merge Upstream PRs #965, #939, #852, #972, #971, #977, #975
Date: 2026-02-18 Branch: mod/merge-upstream-1
Task
Port 7 upstream PRs from crosspoint-reader/crosspoint-reader into the mod branch.
Status per PR
| PR | Description | Result |
|---|---|---|
| #939 | Fix dangling pointer in MyLibraryActivity | Already ported, no changes needed |
| #852 | HalPowerManager idle CPU freq scaling | Completed partial port (Lock RAII, WiFi check, skipLoopDelay, render locks) |
| #965 | Fix paragraph formatting inside list items | Fully ported |
| #972 | Micro-optimizations to eliminate value copies | Ported (fontMap move, getDataFromBook const ref) |
| #971 | Remove redundant hasPrintableChars pass | Fully ported |
| #977 | Skip unsupported image formats during parsing | Fully ported |
| #975 | Fix UITheme memory leak on theme reload | Fully ported |
Changes Made
PR #852 (partial port completion)
lib/hal/HalPowerManager.h-- AddedLockModeenum,currentLockMode/modeMutexmembers, nestedLockRAII class (non-copyable/non-movable),extern powerManagerdeclarationlib/hal/HalPowerManager.cpp-- Added mutex init inbegin(), WiFi.getMode() check insetPowerSaving(), Lock constructor/destructor, LockMode guardsrc/activities/settings/ClearCacheActivity.h-- AddedskipLoopDelay()overridesrc/activities/settings/OtaUpdateActivity.h-- AddedskipLoopDelay()overridesrc/activities/Activity.cpp-- AddedHalPowerManager::LockinrenderTaskLoop()src/activities/ActivityWithSubactivity.cpp-- AddedHalPowerManager::LockinrenderTaskLoop()
PR #965
lib/Epub/Epub/parsers/ChapterHtmlSlimParser.h-- AddedlistItemUntilDepthmemberlib/Epub/Epub/parsers/ChapterHtmlSlimParser.cpp-- ModifiedstartElementto handle<p>inside<li>without line break; added depth reset inendElement
PR #972
lib/GfxRenderer/GfxRenderer.cpp--std::move(font)ininsertFontsrc/RecentBooksStore.h/.cpp--getDataFromBooknow takesconst std::string&
PR #971
lib/EpdFont/EpdFont.h/.cpp-- RemovedhasPrintableCharsmethodlib/EpdFont/EpdFontFamily.h/.cpp-- RemovedhasPrintableCharsmethodlib/GfxRenderer/GfxRenderer.cpp-- Removed 3 early-return guards callinghasPrintableChars
PR #977
lib/Epub/Epub/parsers/ChapterHtmlSlimParser.cpp-- AddedPARSE_BUFFER_SIZEconstant,isFormatSupportedguard before image extraction, timing instrumentation
PR #975
src/components/UITheme.h-- ChangedcurrentThemetostd::unique_ptr<const BaseTheme>src/components/UITheme.cpp-- Changed allocations tostd::make_unique
Build Result
Build succeeded: RAM 31.1%, Flash 99.5%
Follow-up Items
- PR #972 LyraTheme loop variable change not applicable (our code uses index-based loops)
- Test on device to verify all changes work as expected