feat: Add NTP clock sync to Clock settings

Adds a "Sync Clock" action in Settings > Clock that connects to WiFi
(auto-connecting to saved networks or prompting for selection) and
performs a blocking NTP time sync. Shows the synced time on success
with an auto-dismiss countdown, or an error on failure.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
cottongin
2026-02-21 02:19:38 -05:00
parent 4dadea1a03
commit 3d51dfeeb7
14 changed files with 201 additions and 1 deletions

View File

@@ -398,6 +398,8 @@ enum class StrId : uint16_t {
STR_INDEXING_POPUP,
STR_INDEXING_STATUS_TEXT,
STR_INDEXING_STATUS_ICON,
STR_SYNC_CLOCK,
STR_TIME_SYNCED,
// Sentinel - must be last
_COUNT
};

View File

@@ -341,3 +341,5 @@ STR_INDEXING_DISPLAY: "Zobrazení indexování"
STR_INDEXING_POPUP: "Popup"
STR_INDEXING_STATUS_TEXT: "Text stavového řádku"
STR_INDEXING_STATUS_ICON: "Ikona stavového řádku"
STR_SYNC_CLOCK: "Sync Clock"
STR_TIME_SYNCED: "Time synced!"

View File

@@ -362,3 +362,5 @@ STR_INDEXING_DISPLAY: "Indexing Display"
STR_INDEXING_POPUP: "Popup"
STR_INDEXING_STATUS_TEXT: "Status Bar Text"
STR_INDEXING_STATUS_ICON: "Status Bar Icon"
STR_SYNC_CLOCK: "Sync Clock"
STR_TIME_SYNCED: "Time synced!"

View File

@@ -341,3 +341,5 @@ STR_INDEXING_DISPLAY: "Affichage indexation"
STR_INDEXING_POPUP: "Popup"
STR_INDEXING_STATUS_TEXT: "Texte barre d'état"
STR_INDEXING_STATUS_ICON: "Icône barre d'état"
STR_SYNC_CLOCK: "Sync Clock"
STR_TIME_SYNCED: "Time synced!"

View File

@@ -341,3 +341,5 @@ STR_INDEXING_DISPLAY: "Indexierungsanzeige"
STR_INDEXING_POPUP: "Popup"
STR_INDEXING_STATUS_TEXT: "Statusleistentext"
STR_INDEXING_STATUS_ICON: "Statusleistensymbol"
STR_SYNC_CLOCK: "Sync Clock"
STR_TIME_SYNCED: "Time synced!"

View File

@@ -341,3 +341,5 @@ STR_INDEXING_DISPLAY: "Exibição de indexação"
STR_INDEXING_POPUP: "Popup"
STR_INDEXING_STATUS_TEXT: "Texto da barra"
STR_INDEXING_STATUS_ICON: "Ícone da barra"
STR_SYNC_CLOCK: "Sync Clock"
STR_TIME_SYNCED: "Time synced!"

View File

@@ -316,3 +316,5 @@ STR_UPLOAD: "Încărcare"
STR_BOOK_S_STYLE: "Stilul cărţii"
STR_EMBEDDED_STYLE: "Stil încorporat"
STR_OPDS_SERVER_URL: "URL server OPDS"
STR_SYNC_CLOCK: "Sync Clock"
STR_TIME_SYNCED: "Time synced!"

View File

@@ -341,3 +341,5 @@ STR_INDEXING_DISPLAY: "Отображение индексации"
STR_INDEXING_POPUP: "Popup"
STR_INDEXING_STATUS_TEXT: "Текст в строке"
STR_INDEXING_STATUS_ICON: "Иконка в строке"
STR_SYNC_CLOCK: "Sync Clock"
STR_TIME_SYNCED: "Time synced!"

View File

@@ -341,3 +341,5 @@ STR_INDEXING_DISPLAY: "Mostrar indexación"
STR_INDEXING_POPUP: "Popup"
STR_INDEXING_STATUS_TEXT: "Texto barra estado"
STR_INDEXING_STATUS_ICON: "Icono barra estado"
STR_SYNC_CLOCK: "Sync Clock"
STR_TIME_SYNCED: "Time synced!"

View File

@@ -341,3 +341,5 @@ STR_INDEXING_DISPLAY: "Indexeringsvisning"
STR_INDEXING_POPUP: "Popup"
STR_INDEXING_STATUS_TEXT: "Statusfältstext"
STR_INDEXING_STATUS_ICON: "Statusfältsikon"
STR_SYNC_CLOCK: "Sync Clock"
STR_TIME_SYNCED: "Time synced!"