Features / Onboarding & setup

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

ScreenWhat it doesSource
Launcher splashThemed 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 dialogSpinner 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

FieldTypeRequiredValidationOptions from
Languagesingle choice listYesMust 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.

WhenThen
The language-selected flag is already trueSkip the language screen and go straight to the splash/login logic.
The language-selected flag is falseShow the language list; Next saves selectedLanguage, applies the locale and opens SplashActivity.
The user has not yet finished VO selection or unit setupThe flag is still false, so the language screen appears again on every launch.
The user changes language in Settings and presses NextThe locale is applied, data labels are refreshed and Home restarts with a cleared back stack.
The user logs out or the app is wipedThe 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: operationUse
GET /configTyped 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.