From 0cecf1afc43e3db2c3d23ce27e1fd38022091d75 Mon Sep 17 00:00:00 2001 From: Jaap-Jan de Wit | DodoTech Date: Fri, 16 Oct 2026 14:07:13 +0200 Subject: [PATCH] Android: ask what to connect to on Connections, the same prompt the desktop's empty terminal draws The phone's Connections screen with nothing open had a box that took an address alone, which left a saved machine several screens away. It now draws the desktop's prompt over the same view-model state: "connect to:" takes a saved host's name or user@host[:port], and a password line follows only when one is needed. Names, addresses and refusals are read exactly as on the desktop, and nothing typed here is saved. What a phone changes: the hosts matching so far are thumb-sized buttons that take a host outright, since there is no Tab; CONNECT is always drawn, since the IME's return key may only close the keyboard; BACK, and the system back gesture, step off the password line rather than leaving the screen; and the password's label sits on its own line. The keyboard follows the question onto the password line, but is not raised when the screen opens, where it would cover the recent list. Recent rows now go onto the prompt too. Covered by a new ShellFlowTests case for a tapped match on top of the shared prompt cases; manual check 11.14. --- docs/manual-checks.md | 17 ++++ src/DodoSSH.Client.Android/Theme/Phone.axaml | 24 +++++ .../Views/ConnectPrompt.axaml | 98 +++++++++++++++++++ .../Views/ConnectPrompt.axaml.cs | 45 +++++++++ .../Views/PhoneShell.axaml.cs | 10 ++ .../Views/TerminalScreen.axaml | 58 +++-------- .../ShellFlowTests.cs | 21 ++++ 7 files changed, 226 insertions(+), 47 deletions(-) create mode 100644 src/DodoSSH.Client.Android/Views/ConnectPrompt.axaml create mode 100644 src/DodoSSH.Client.Android/Views/ConnectPrompt.axaml.cs diff --git a/docs/manual-checks.md b/docs/manual-checks.md index 19fa0ce..e7f8f60 100644 --- a/docs/manual-checks.md +++ b/docs/manual-checks.md @@ -2335,6 +2335,23 @@ Android is not delivering the click as a `contextmenu` event, and the gesture ne `WebView` instead of a page one. Neither costs this head anything it has today: a phone without a pointer has no right button to miss. +### 11.14 Connections with nothing open asks what to connect to + +Close every shell, then press **Connections**. Type part of a saved host's name into the `connect to:` line. + +**Pass:** the matching hosts appear under the line as buttons a thumb can hit; tapping one asks for that +host's password on a line of its own under ssh's wording — or connects at once, for a host with a key or a +saved password. Then type `user@host` for a machine that is not saved and press CONNECT: the password line +appears with the keyboard already on it, and BACK — or the system back gesture — steps off it onto the +address rather than leaving the screen. A tap on a RECENT row lands on the prompt and asks whatever it needs +to before anything is dialled. Nothing new appears on HOSTS or in the keychain afterwards. + +**Failure means:** a password line that appears with the keyboard still on the first line is the posted focus +in `ConnectPrompt.axaml.cs` arriving before the box has bounds. Back that leaves Connections from the password +line is `PhoneShell.OnBackRequested`'s prompt step having been reordered below the surface check. The +decisions themselves — which name matches, what is refused, what is saved — are `ShellFlowTests`' prompt +cases, shared with the desktop; this is the rectangles and the keyboard. + --- ## Phase 12 — Shared vaults: the operations that span two accounts diff --git a/src/DodoSSH.Client.Android/Theme/Phone.axaml b/src/DodoSSH.Client.Android/Theme/Phone.axaml index c6b42b7..37d7f8d 100644 --- a/src/DodoSSH.Client.Android/Theme/Phone.axaml +++ b/src/DodoSSH.Client.Android/Theme/Phone.axaml @@ -843,6 +843,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +