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
28 lines
1.2 KiB
Markdown
28 lines
1.2 KiB
Markdown
# NTP Sync Clock Feature
|
|
|
|
## Task
|
|
Add a "Sync Clock" action to the Clock settings category that connects to WiFi and performs NTP time synchronization.
|
|
|
|
## Changes Made
|
|
|
|
### New Files
|
|
- **src/activities/settings/NtpSyncActivity.h** - Activity class extending `ActivityWithSubactivity` with states: WIFI_SELECTION, SYNCING, SUCCESS, FAILED
|
|
- **src/activities/settings/NtpSyncActivity.cpp** - Full implementation:
|
|
- Launches `WifiSelectionActivity` with auto-connect enabled
|
|
- On WiFi connect: blocking `waitForNtpSync(8000ms)`
|
|
- Shows synced time on success; auto-dismisses after 5 seconds
|
|
- Failed state requires manual Back press
|
|
- Clean WiFi teardown in `onExit()`
|
|
|
|
### Modified Files
|
|
- **src/activities/settings/SettingsActivity.h** - Added `SyncClock` to `SettingAction` enum
|
|
- **src/activities/settings/SettingsActivity.cpp** - Added include, switch case handler, and action in `rebuildClockActions()`
|
|
- **lib/I18n/translations/*.yaml** (all 9 files) - Added `STR_SYNC_CLOCK` and `STR_TIME_SYNCED` string keys
|
|
- **lib/I18n/I18nKeys.h, I18nStrings.h, I18nStrings.cpp** - Regenerated from YAML
|
|
|
|
## Build Result
|
|
SUCCESS - RAM: 32.7%, Flash: 70.7%
|
|
|
|
## Follow-up Items
|
|
- Non-English translations use English fallback values; translators can update later
|