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 indexfrom../../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.showManageSubscriptionsBundle version + config.rubric_versionDELETE /v1/meDELETE /v1/me → 204 → POST /v1/auth/anonymous (fresh)DELETE /v1/me/training-dataDELETE /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/meme.settings.practice_languagesme.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_timeme.settings.reminders_enabledme.settings.streak_risk_alertme.settings.ui_locale (null = follow device) → Accept-Languageme.settings.ui_locale = nullme.stats.completed_sessions