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
1.7 KiB
1.7 KiB
Boot NTP Auto-Sync Feature
Task
Add a "Auto Sync on Boot" toggle in Clock Settings that silently syncs time via WiFi/NTP during boot, with no user interaction required and graceful failure handling.
Changes Made
New files
src/util/BootNtpSync.h/src/util/BootNtpSync.cpp-- Background FreeRTOS task that scans WiFi, connects to a saved network, runs NTP sync, then tears down WiFi. Providesstart(),cancel(), andisRunning()API.
Modified files
src/CrossPointSettings.h-- Addeduint8_t autoNtpSync = 0fieldsrc/CrossPointSettings.cpp-- Added persistence (write/read) for the new fieldsrc/SettingsList.h-- Added Toggle entry under Clock categorylib/I18n/translations/*.yaml(all 9 languages) -- AddedSTR_AUTO_NTP_SYNCstringlib/I18n/I18nKeys.h/lib/I18n/I18nStrings.cpp-- Regenerated viagen_i18n.pysrc/main.cpp-- CallsBootNtpSync::start()during setup (non-blocking)src/activities/settings/NtpSyncActivity.cpp-- AddedBootNtpSync::cancel()guardsrc/activities/network/WifiSelectionActivity.cpp-- Added cancel guardsrc/activities/settings/OtaUpdateActivity.cpp-- Added cancel guardsrc/activities/settings/KOReaderAuthActivity.cpp-- Added cancel guardsrc/activities/reader/KOReaderSyncActivity.cpp-- Added cancel guardsrc/activities/network/CrossPointWebServerActivity.cpp-- Added cancel guard
Follow-up Items
- Translations: all non-English languages currently use English fallback for the new string
- The FreeRTOS task uses 4096 bytes of stack; monitor for stack overflow if WiFi scan behavior changes
- WiFi adds ~50-60KB RAM pressure during the sync window (temporary)