iOS: per-setting sync table with sync icons, dropdowns, colour resets
Generalise the two-tier SettingsSync into a server-driven flag map: each syncable key has an account-wide flag (fetched from the server); pull applies only on-flagged keys, push (read-modify-write) sends only on-flagged keys plus the flag map. Per-row link icon toggles a setting's sync; a global switch flips all. Enabling a flag adopts this device's current value as the shared one. - AppSettings: fix bg_color mapping (was background_color), add cache_months, month_view_paged, sync_flags - SettingsView: uniform rows (sync icon | name | value), ContrastSelector and the button pickers replaced by menu dropdowns, every colour gets a reset to a canonical default, global "sync all" toggle; account settings (privacy, group calendar, hide profile) kept in their own block; language and text/line contrast kept device-local (iOS-specific) - unify default line colour to #3A3A52 across views Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -81,6 +81,13 @@ private let strings: [String: [String: String]] = [
|
||||
"settings.sync": "Einstellungen synchronisieren",
|
||||
"settings.sync.desc": "Darstellung mit dem Server abgleichen",
|
||||
"settings.sync.footer": "Wenn aktiv, werden Farben, Kontraste und Stundenhöhe mit dem Server abgeglichen (der Server hat Vorrang). Ansicht, erster Wochentag und das Ausgrauen vergangener Termine werden immer synchronisiert – auch wenn der Schalter aus ist.",
|
||||
"settings.sync_all": "Alle synchronisieren",
|
||||
"settings.sync_all.desc": "Diese Einstellungen zwischen deinen Geräten teilen",
|
||||
"settings.sync_this": "Zwischen Geräten synchronisieren",
|
||||
"settings.reset": "Zurücksetzen",
|
||||
"settings.appearance": "Ansicht",
|
||||
"settings.device": "Nur auf diesem Gerät",
|
||||
"settings.device.footer": "Diese Einstellungen gelten nur auf diesem Gerät und werden nicht synchronisiert.",
|
||||
|
||||
"settings.cache.header": "Vorladen",
|
||||
"settings.cache.title": "Vorladen",
|
||||
@@ -440,6 +447,13 @@ private let strings: [String: [String: String]] = [
|
||||
"settings.sync": "Sync settings",
|
||||
"settings.sync.desc": "Keep appearance in sync with the server",
|
||||
"settings.sync.footer": "When on, colors, contrasts and hour height sync with the server (the server wins). View, first weekday and dimming past events always sync – even when the switch is off.",
|
||||
"settings.sync_all": "Sync all",
|
||||
"settings.sync_all.desc": "Share these settings across your devices",
|
||||
"settings.sync_this": "Sync across devices",
|
||||
"settings.reset": "Reset",
|
||||
"settings.appearance": "View",
|
||||
"settings.device": "This device only",
|
||||
"settings.device.footer": "These settings apply to this device only and are not synced.",
|
||||
|
||||
"settings.cache.header": "Preloading",
|
||||
"settings.cache.title": "Preloading",
|
||||
|
||||
Reference in New Issue
Block a user