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
|