Operator settings tour
The ExpressCharge iOS Settings screen behaves differently depending on whether you’re signed in as an operator or a customer. This runbook is the guided tour for operator-mode Settings: what each card shows, which controls actually do something, and where to go when a row is telling you a device is unhealthy. Read it once when onboarding a new iPhone to your fleet, then refer back when triaging a device that’s misbehaving in the field.
Prerequisites
Section titled “Prerequisites”- You’re signed in to ExpressCharge on the iPhone with an operator
account (the app reads
state.ownerUser.roleand sets theisCustomerAccountflag tofalse). - The iPhone has been through first-run setup and paired to your org.
- You’re on the Settings tab.
Procedure
Section titled “Procedure”-
Open Settings and confirm operator mode
Tap the Settings tab. The screen title reads “Settings” and you should see — top to bottom — an Account card, a Connectivity card, Permissions, Device, About, Diagnostics, and Sign Out.
If the Diagnostics row is missing, you’re in customer mode. Sign out and sign back in with an operator account; the Diagnostics link is gated on
!isCustomerAccount.Screenshot pending
ExpressCharge iOS Settings screen in operator mode showing all cards
-
Read the Account card
The Account card shows the signed-in operator’s display name, a plan badge, and the owner’s Public ID on the right. Tap-and-hold the Public ID to copy it — useful when filing a support ticket or correlating against the admin web console.
-
Check Connectivity
The Connectivity card is your at-a-glance device-health readout. The pill in the header is one of Online, Connecting, Reconnecting, or Offline, sourced from
coordinator.deviceState?.connectionStatus.In operator mode this card shows two extra rows that customers don’t see:
- Last sync — relative timestamp of the last heartbeat. A dash means the device has never synced this session.
- Reconnects — count of WebSocket reconnects since launch. A steadily climbing number means flaky connectivity worth chasing.
Below the divider is the inline Connectivity check — tap Run check to fire a fresh round-trip self-test without leaving Settings.
-
Audit Permissions
The Permissions card has two status rows and, on devices with the scanner capability, a third toggle row:
- Notifications — iOS-level authorization. Reads Allowed, Denied, Ask, Provisional, or Ephemeral.
- Push registration — separate from the iOS permission. This is whether APNs has handed back a token and the server has accepted it. Possible states are Registered, Waiting, Not authorised, or Failed.
- Scan request notifications — per-device toggle that mirrors the
admin web console’s
notifications.scanRequestsetting. Forced off and disabled when Push registration isn’t Registered.
If Notifications is Denied or Ask, an Open iOS Settings button appears at the bottom — it deep-links into the system Settings app for ExpressCharge so the user can flip the switch.
If Push registration is Failed, a Retry Registration button appears instead. Tapping it calls
UIApplication.registerForRemoteNotifications()and the app waits for the APNs callback to update the row. -
Review and rename Device
The Device card in operator mode exposes everything customer mode hides:
- Name — editable. Tap the field, type a new label, and hit Return to commit. The rename is local-first and pushes to the server on submit.
- Model / iOS — read-only system info.
- App — full build version (operator mode shows
BuildConfig.appVersion; customer mode only showsshortVersion). - Device ID — copyable. Tap the row to copy; a toast confirms. This is the value to quote when filing escalations.
-
Open Diagnostics when you need more
The Diagnostics row navigates into the full Diagnostics sheet — log buffers, sync-run inspector, raw connection state, manual test sync. Anything not surfaced on the main Settings screen lives there. See the Diagnostics runbook for the contents.
Verify
Section titled “Verify”You’ve toured Settings correctly when:
- The Connectivity pill matches the device’s actual state on the web admin console (cross-check on the chargers page where this device’s last heartbeat is shown).
- The Push registration row reads Registered — meaning the iPhone has a token uploaded to your server. If it’s stuck on Waiting for more than a minute, the APNs handshake hasn’t completed.
- The Device ID you copied appears in the web admin console under the device record.
If something goes wrong
Section titled “If something goes wrong”Audit and reversibility
Section titled “Audit and reversibility”The Retry Registration button is safe to tap repeatedly — it only re-runs the APNs handshake. Device renames write a new label server-side; the previous label is recoverable from the device’s audit history.
Related
Section titled “Related”- Diagnostics sheet runbook
- Operator iOS sign-in
- Scan-arm and per-device notification behaviour