Methods
(static) abandonQuickConnectDialog(returnFocusToPickeropt) → {void}
Take the code dialog down WITHOUT delivering a result, and put focus back where it came from.
abandonDialog, not cancelOpenDialog: we ARE the owner, and a result delivered back into this scope would re-enter the teardown we are in the middle of.
The re-focus is the part that is easy to miss. abandonDialog() removes the node and restores nothing — correct for its other callers, which are all onDestroy, where the view is going away and there is no focus to hand back. This screen STAYS ON THE AIR, and what comes next (the failure alert, or the save-credentials confirm) DERIVES its returnFocusTo from whatever holds focus at that instant. Measured on device: after an abandon that derivation collapses to the scene root, so dismissing the next dialog would hand focus to nothing. See the abandonDialog characterization in tests/source/unit/utils/dialogs.spec.bs.
Safe when no dialog is open: focus is already on the button row, so this is a no-op on the paths that fail before a dialog ever opens.
returnFocusToPicker is FALSE from onDestroy, and that is not a nicety: this view is being replaced, so re-focusing our own button row there could take focus off the view that replaces us. A destroyed view has nothing to hand focus back to, which is the case abandonDialog's no-restore behaviour is built for.
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
returnFocusToPicker | boolean | <optional> | true |
- Type:
- void
(static) applySplashscreen(serverSplashEnabled) → {void}
Apply splash background based on enabled flag Uses forceBackdrop parameter to show splashscreen before user login
| Name | Type | Description |
|---|---|---|
serverSplashEnabled | boolean |
- Type:
- void
(static) askToSaveQuickConnectCredentials() → {void}
Signed in, but nothing is persisted yet. Ask the same question LoginScene asks with its "save credentials" checkbox, in the standard confirm dialog — the app is holding a live session either way, so a cancel is a legitimate "no", not a failure.
- Type:
- void
(static) endQuickConnect(returnFocusToPickeropt) → {void}
Stop polling and drop the dialog + session state. Safe to call repeatedly, and safe to call with no flow in progress.
returnFocusToPicker is false for exactly one caller — onDestroy. See abandonQuickConnectDialog for why the two cases differ.
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
returnFocusToPicker | boolean | <optional> | true |
- Type:
- void
(static) exchangeQuickConnect() → {void}
Approved: trade the secret for an access token.
- Type:
- void
(static) handleQuickConnectPoll(outcome) → {void}
Act on one poll outcome. The classification itself is pure and unit-tested — see quickConnectPollOutcome in source/utils/quickConnect.bs for the measured server behaviour behind it.
| Name | Type | Description |
|---|---|---|
outcome | string |
- Type:
- void
(static) init() → {void}
- Type:
- void
(static) loadSplashscreen() → {void}
Load splashscreen if enabled on server Always fetches fresh branding config from server
- Type:
- void
(static) onButtonSelected(event) → {void}
Manual-login / Quick Connect buttons → intents the loginRouter coordinator handles.
| Name | Type | Description |
|---|---|---|
event | object |
- Type:
- void
(static) onDestroy() → {void}
onDestroy: Full teardown releasing all resources before component removal Called automatically via JRScreen.beforeViewClose when sgRouter permanently closes this view. Note: onScreenHidden already cleared the backdrop; this handles task/ref cleanup.
- Type:
- void
(static) onItemContentChanged() → {void}
- Type:
- void
(static) onKeyEvent(key, press) → {boolean}
| Name | Type | Description |
|---|---|---|
key | string | |
press | boolean |
- Type:
- boolean
(static) onQuickConnectDialogResult() → {void}
The user dismissed the code dialog. The only outcome it can produce on its own.
- Type:
- void
(static) onSaveQuickConnectCredentialsResult() → {void}
- Type:
- void
(static) onScreenHidden() → {void}
JRScreen hook called when the screen is hidden by the screen manager
- Type:
- void
(static) onScreenShown() → {void}
JRScreen hook called when the screen is displayed by the screen manager
- Type:
- void
(static) onUserSelected(event) → {void}
A user tile was picked. Resolve its id from the rendered list (UserRow fires the username), publish both, and emit the userSelected intent (was CreateUserSelectGroup returning the username to LoginFlow's public-user branch).
| Name | Type | Description |
|---|---|---|
event | object |
- Type:
- void
(static) openQuickConnectDialog(session) → {void}
Show the code and start polling for approval.
| Name | Type | Description |
|---|---|---|
session | object |
- Type:
- void
(static) pollQuickConnect() → {void}
Ask the server whether the code has been approved yet. Fires on the timer, so the request is never in flight twice.
- Type:
- void
(static) probeQuickConnectAvailability() → {void}
Probe the server's /QuickConnect/Enabled endpoint and remove the QC button if the server reports it disabled. Render-thread promise (#551 Batch 1, 3b pattern) — replaces the former QuickConnectEnabledTask (createObject + observeFieldScoped on responseCode). Fail-open: only a definitive false removes the button; any non-ok HTTP response, transport failure, or timeout leaves it visible.
- Type:
- void
(static) redraw() → {void}
- Type:
- void
(static) removeQuickConnectButton(reason) → {void}
Remove the Quick Connect button and re-center the remaining buttons. Safe to call repeatedly - removeChild is a no-op once the node is detached.
| Name | Type | Description |
|---|---|---|
reason | string |
- Type:
- void
(static) reportQuickConnectFailure(reason) → {void}
Report a Quick Connect failure in the standard alert dialog.
The three reasons get three different messages because only one of them tells the user to stop: DISABLED means the server has the feature switched off, while UNAVAILABLE means try again shortly and SPENT means get a fresh code. The classification is pure and version-matrixed (source/utils/quickConnect.bs); this function only maps it to a string.
Presented AFTER endQuickConnect has taken the code dialog down, never over it: presentOverlayDialog supersedes an incumbent overlay, so showing the alert first would cancel the code dialog and re-enter onQuickConnectDialogResult.
| Name | Type | Description |
|---|---|---|
reason | string |
- Type:
- void
(static) startQuickConnect() → {void}
Quick Connect pressed. Start a request and open the dialog once we have a code.
- Type:
- void