Brand and design · Hi-fi screens · S27 Profile · Settings

Data-binding map: S27 Profile · Settings

Data-binding map of Profile · Settings: every field to its source, and what each required state shows.

Generated by botgumi-design index from ../../screens.json. Edit that file, not this page.

Every field S27 shows and where it comes from.

Field Source (endpoint or local state) Format Fallback
app language api GET /me settings.ui_locale · me.settings.ui_locale (null = follow device); options config.supported_ui_locales "Follow system · English" follow device
app language api GET /config supported_ui_locales
practice languages api GET /me settings.practice_languages · me.settings.practice_languages (first = primary); options config.supported_practice_languages toggles; last one can't be turned off —
practice languages api GET /config supported_practice_languages
reminders api GET /me settings.reminders_enabled · me.settings.reminders_enabled / reminder_time / streak_risk_alert + UNUserNotificationCenter status toggles system-off → settings.notifications_off
reminders api GET /me settings.reminder_time
reminders api GET /me settings.streak_risk_alert
reminders device notification_permission
retention api GET /me settings.audio_retention_days · me.settings.audio_retention_days 7 / 30 / 365 segmented 30
delete data call DELETE /me/training-data · DELETE /v1/me/training-data → {job_id, purge_backups_by}; count from me.stats.completed_sessions alert —
delete data api GET /me stats.completed_sessions
delete account call DELETE /me · DELETE /v1/me → then POST /v1/auth/anonymous (fresh) alert —
delete account call POST /auth/anonymous
version api GET /config rubric_version · Bundle version/build + config.rubric_version caption —
AppStore.showManageSubscriptions store manage_subscriptions · From the board's data-bind; no row in data-binding.md yet.
Bundle version + config.rubric_version device app_version · From the board's data-bind; no row in data-binding.md yet.
Bundle version + config.rubric_version api GET /config rubric_version
DELETE /v1/me → 204 → POST /v1/auth/anonymous (fresh) call DELETE /me · From the board's data-bind; no row in data-binding.md yet.
DELETE /v1/me/training-data → {job_id, purge_backups_by} call DELETE /me/training-data · From the board's data-bind; no row in data-binding.md yet.
PATCH /v1/me {settings.ui_locale: en} call PATCH /me · From the board's data-bind; no row in data-binding.md yet.
PATCH /v1/me {settings.ui_locale: zh-Hans} call PATCH /me · From the board's data-bind; no row in data-binding.md yet.
me.settings.audio_retention_days → PATCH /v1/me api GET /me settings.audio_retention_days · From the board's data-bind; no row in data-binding.md yet.
me.settings.audio_retention_days → PATCH /v1/me call PATCH /me
me.settings.practice_languages[] ∋ en (GET /v1/config → supported_practice_languages) api GET /me settings.practice_languages[] · From the board's data-bind; no row in data-binding.md yet.
me.settings.practice_languages[] ∋ zh-Hans (GET /v1/config → supported_practice_languages) api GET /me settings.practice_languages[] · From the board's data-bind; no row in data-binding.md yet.
me.settings.reminder_time api GET /me settings.reminder_time · From the board's data-bind; no row in data-binding.md yet.
me.settings.streak_risk_alert api GET /me settings.streak_risk_alert · From the board's data-bind; no row in data-binding.md yet.
me.settings.ui_locale (null = follow device) → Accept-Language api GET /me settings.ui_locale · From the board's data-bind; no row in data-binding.md yet.
me.settings.ui_locale = null api GET /me settings.ui_locale · From the board's data-bind; no row in data-binding.md yet.

Binds on the boards

The data-bind values across every state.

  • AppStore.showManageSubscriptions
  • Bundle version + config.rubric_version
  • DELETE /v1/me
  • DELETE /v1/me → 204 → POST /v1/auth/anonymous (fresh)
  • DELETE /v1/me/training-data
  • DELETE /v1/me/training-data → {job_id, purge_backups_by}
  • PATCH /v1/me {settings.ui_locale: en}
  • PATCH /v1/me {settings.ui_locale: zh-Hans}
  • me.settings.audio_retention_days → PATCH /v1/me
  • me.settings.practice_languages
  • me.settings.practice_languages[] ∋ en (GET /v1/config → supported_practice_languages)
  • me.settings.practice_languages[] ∋ zh-Hans (GET /v1/config → supported_practice_languages)
  • me.settings.reminder_time
  • me.settings.reminders_enabled
  • me.settings.streak_risk_alert
  • me.settings.ui_locale (null = follow device) → Accept-Language
  • me.settings.ui_locale = null
  • me.stats.completed_sessions

States

  • Loading: From states.md (Settings): toggles disabled until /me
  • Empty: From states.md (Settings): —
  • Error (retryable / not): From states.md (Settings): PATCH failed → revert toggle + toast · fatal: —
  • Offline: From states.md (Settings): changes queued; retention / delete disabled offline