Language selection
On first run the user picks the app language (English, Telugu or Tamil) before logging in. The language can be changed later from Settings.
FactsheetOnboarding & setup
- Who uses it
- CadreUnit In-Charge / FMT L1
- How you get here
- Shown automatically after the launcher splash (NewSplashActivity) until setup is finished; later via Side menu > Settings > Change language.
- APIs
- 0 calls today, 1 App Service operations
- Offline
- Fully offline.
Screens
| Screen | What it does | Source |
|---|---|---|
| Launcher splash | Themed splash only; immediately opens Select Language. | app/src/main/java/org/platformcommons/urvi/view/splash/NewSplashActivity.kt |
| Select Language (first run) | Pick a language from a list and press Next. | app/src/main/java/org/platformcommons/urvi/view/splash/SelectLanguageActivity.kt |
| Change language dialog | Spinner of languages opened from Settings; restarts Home in the new language. | app/src/main/java/org/platformcommons/urvi/view/splash/SelectLanguageFragment.kt |
What it captures
| Field | Type | Required | Validation | Options from |
|---|---|---|---|---|
| Language | single choice list | Yes | Must pick one before Next, otherwise toast "Please select your language". Saved as en, te or ta. | Hard-coded list: English (en), తెలుగు (te), தமிழ் (ta) |
Rules
Conditions from the code, rewritten as plain decision rules.
| When | Then |
|---|---|
| The language-selected flag is already true | Skip the language screen and go straight to the splash/login logic. |
| The language-selected flag is false | Show the language list; Next saves selectedLanguage, applies the locale and opens SplashActivity. |
| The user has not yet finished VO selection or unit setup | The flag is still false, so the language screen appears again on every launch. |
| The user changes language in Settings and presses Next | The locale is applied, data labels are refreshed and Home restarts with a cleared back stack. |
| The user logs out or the app is wiped | The chosen language is kept and the language-selected flag is set to true. |
API contracts
Each call opens to its use case, headers, request and response bodies, and errors.
| App Service v2: operation | Use |
|---|---|
GET /config | Typed config bundle (ETag) |
Behaviour notes
- The language-selected flag is only set after VO selection, unit setup or logout, not on this screen.
- Possible bug · unverified Settings > Change language saves the whole array (e.g. ["te","తెలుగు"]) as JSON in selectedLanguage, so server-language content (village names, instructions, assessments) falls back to English while the UI is in Telugu.
- Possible bug · unverified SelectLanguageActivity never finishes, so Back from the next screen returns to it.
Improve in the rewrite
- Store the language as a single code in one place and set the language-selected flag as soon as the user picks it.
- Finish the language screen after Next so Back does not return to it.