Features / Support & admin

Settings

General, diagnostics and legal options: change language, load more data, force sync, report sync issues, backup and legal links.

FactsheetSupport & admin
Who uses it
CadreUnit In-Charge / FMT L1
How you get here
Side menu > Settings.
APIs
3 calls today, 6 App Service operations
Offline
Most items work offline; Force sync, report upload and web links need internet.

Screens

ScreenWhat it doesSource
SettingsSections General / Diagnostics / Legal and the version.app/src/main/java/org/platformcommons/urvi/view/home/SettingsActivity.kt
Open source licensesDialog listing libraries and licences.app/src/main/java/org/platformcommons/urvi/view/license/LicenseFragment.kt

What it captures

FieldTypeRequiredValidationOptions from
Change languagespinnerYesPreselected to the current locale; Next restarts Home.English, Telugu, Tamil sorted by name

Rules

Conditions from the code, rewritten as plain decision rules.

WhenThen
Settings opensAn immediate sync is triggered.
Load more data is tappedLog the analytics event LOAD_MORE.
Load more data, Unit user, and any queued item has never been attemptedShow "Please sync before loading more data." with Force sync; otherwise open Unit data download in load-more mode.
Load more data, Cadre user, and the sync queue is not emptyAsk "There are sync items pending. Do you want to load more data?" (Yes / Cancel).
Load more data is confirmed by a CadreOpen Data download in load-more mode.
Notifications is tappedOpen the NOTIFICATION_WEB_URL page in the browser (falls back to a built-in URL).
Firebase Remote Config showForceSync is onShow Force sync, which runs a full sync with a progress dialog.
Force sync failsShow the matching message: session expired (re-login), sync already running, internet not available, or a generic error.
Report sync issues is tapped and the queue is emptyToast "No sync issues found".
Report sync issues is tapped and the queue has itemsOffer Force sync, Report sync issues (send queue, then zip all app files if any item has failed attempts, otherwise ask to force sync first) and Send sync data (zip specific databases under the same rule).
Backup is tappedToast "Backup is in progress. Please check PlusOne directory in storage" and zip app data to storage.

API contracts

Each call opens to its use case, headers, request and response bodies, and errors.

Today: callUseReplaced by
PATCH /gateway/urvi-app-service/api/v1/user-device-sessions/users/{userId}?remarks=Expire all device sessions of the user.
POST /sync-service/api/v1/data/soUpload a snapshot of the whole offline queue for support.
SDK Firebase Remote ConfigRead the show_force_sync flag (show_analytics_tab and current_season_value are fetched but unused).
App Service v2: operationUse
POST /auth/logoutLog out and revoke tokens
GET /configTyped config bundle (ETag)
GET /farmers/changesDelta sync: upserts and tombstones since a cursor
POST /sync/batchApply an ordered batch of offline mutations
GET /sync/batches/{batchId}Status of an asynchronously processed batch
POST /telemetryScreen events and sync-health counters (no PII)

Behaviour notes

  • Internet speed test exists but is hidden.
  • Privacy and Terms of use open URLs in the browser.
  • Possible bug · unverified Change language stores the whole language array as JSON in selectedLanguage, breaking server-language lookups.

Improve in the rewrite

  • Merge Force sync and Report sync issues into one diagnostics flow with clear outcomes.
  • Show sync status inline instead of toasts.