Public Access
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.
This commit is contained in:
1 parent
089de72834
commit
0cecf1afc4
7 files changed
+226
-47
No files matched your search
@@ -1363,6 +1363,27 @@ public sealed partial class ShellFlowTests : IAsyncLifetime
|
||||
shell.HasPromptRefusal.ShouldBeFalse("typing again clears a refusal about what was typed");
|
||||
}
|
||||
|
||||
/// <remarks>
|
||||
/// A tap on a match takes that host outright — the phone's way of completing a name, where there is no
|
||||
/// Tab — and carries on as Enter would: here, to the host's password, with nothing dialled yet.
|
||||
/// </remarks>
|
||||
[Fact]
|
||||
public async Task ATappedMatchOnThePrompt_TakesThatHost()
|
||||
{
|
||||
var vault = await ReadyToConnectAsync();
|
||||
|
||||
shell.ShowTerminalCommand.Execute(null);
|
||||
shell.PromptText = "prod";
|
||||
|
||||
await shell.ChoosePromptMatchCommand.ExecuteAsync(shell.PromptMatches.ShouldHaveSingleItem());
|
||||
|
||||
shell.PromptText.ShouldBe("prod-db");
|
||||
shell.IsPromptAskingForPassword.ShouldBeTrue();
|
||||
shell.ShowsPromptMatches.ShouldBeFalse("the matches are for the name, not drawn under its password");
|
||||
shell.PromptPasswordLabel.ShouldBe($"{vault.Hosts[0].Address}'s password:");
|
||||
ssh.Requests.ShouldBeEmpty();
|
||||
}
|
||||
|
||||
/// <remarks>
|
||||
/// Two hosts in two vaults can share a name, and the prompt has no room to say which vault each is in, so
|
||||
/// it refuses rather than guessing and points at the palette, which does say.
|
||||
|
||||
Reference in new issue
Block a user