Submit SSH authentication prompts with the keyboard's Enter #3

Merged
salix merged 1 commit from fix/keyboard-enter-key into main 2026-10-19 09:47:54 +02:00
Owner

What & why

When a server asks for a password, OTP, or a menu choice during connect (SSH keyboard-interactive), the Android prompt ignored the keyboard's Enter — the connection stayed stuck until the Continue button was tapped. This PR wires Enter to submit the prompt and Next to walk multiple challenges, matching every other field in the app.

(No screenshot: no device attached — happy to add one.)

Verify

  • Connect to a host with keyboard-interactive auth, type the answer, press Enter → the prompt submits without tapping Continue
  • With an emulator attached: ./gradlew -p android :app:connectedDebugAndroidTest runs the two new prompt tests
## What & why When a server asks for a password, OTP, or a menu choice during connect (SSH keyboard-interactive), the Android prompt ignored the keyboard's Enter — the connection stayed stuck until the Continue button was tapped. This PR wires Enter to submit the prompt and Next to walk multiple challenges, matching every other field in the app. *(No screenshot: no device attached — happy to add one.)* ## Verify - Connect to a host with keyboard-interactive auth, type the answer, press Enter → the prompt submits without tapping Continue - With an emulator attached: `./gradlew -p android :app:connectedDebugAndroidTest` runs the two new prompt tests
Submit SSH authentication prompts with the keyboard's Enter
All checks were successful
Build Android nightly and check shared core / android (pull_request) Successful in 25m46s
dd9f4ce3fb
The Android keyboard-interactive prompt set only keyboardOptions on its
challenge fields, so the IME's Enter did nothing: the connection kept
waiting until the Continue button was tapped. Every other single-line
field in the app wires Enter through Field/SecretField; this raw
OutlinedTextField was the one gap.

Extract the button's submit into a lambda the keyboard shares: the last
challenge gets ImeAction.Done with onDone, earlier ones get Next with
focus movement, as Field does. Multi-challenge servers still submit
every answer at once, and answers are still cleared when sent or
abandoned.

A device test covers the single-challenge Enter submit and the
two-challenge focus-then-submit flow.
salix merged commit ea9e5423f1 into main 2026-10-19 09:47:54 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
salix/ferry!3
No description provided.