Preselected to the current locale; Next restarts Home.
English, Telugu, Tamil sorted by name
Rules
Conditions from the code, rewritten as plain decision rules.
When
Then
Settings opens
An immediate sync is triggered.
Load more data is tapped
Log the analytics event LOAD_MORE.
Load more data, Unit user, and any queued item has never been attempted
Show "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 empty
Ask "There are sync items pending. Do you want to load more data?" (Yes / Cancel).
Load more data is confirmed by a Cadre
Open Data download in load-more mode.
Notifications is tapped
Open the NOTIFICATION_WEB_URL page in the browser (falls back to a built-in URL).
Firebase Remote Config showForceSync is on
Show Force sync, which runs a full sync with a progress dialog.
Force sync fails
Show 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 empty
Toast "No sync issues found".
Report sync issues is tapped and the queue has items
Offer 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 tapped
Toast "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.