diff --git a/README.md b/README.md index f9a6604..29e12e1 100644 --- a/README.md +++ b/README.md @@ -332,7 +332,7 @@ search box in the titlebar, and session tabs as pills. Its light theme is not bu [`docs/design-import-gaps.md`](docs/design-import-gaps.md) — so the application is dark on both. **A connected phone shows one bar and then the terminal.** The header, the session strip and the bottom -bar are collapsed while a shell is up, and a single 52-pixel row replaces them: back on the left, the +bar are collapsed while a shell is up, and a single 35-pixel row replaces them: back on the left, the sessions as pills, and a `+` on the right offering the three connections this application can make — a shell, a host's files over SFTP, or a bucket. The system back gesture does what the arrow does, and lowers that menu first if it is open. diff --git a/docs/android-port.md b/docs/android-port.md index 77006e0..decf74a 100644 --- a/docs/android-port.md +++ b/docs/android-port.md @@ -511,7 +511,7 @@ go at 360dp: **The surface has since taken the whole screen.** `PhoneShell` collapses the header, the session strip and the bottom bar while a terminal is showing — one binding on `IsShowingPages` each — and the screen - draws a 52-pixel bar in their place: back, the session pills, and a `+` raising a sheet with the three + draws a 35-pixel bar in their place: back, the session pills, and a `+` raising a sheet with the three connections there are. That sheet is the head's first control that could be drawn over the renderer, so it collapses it rather than covering it, exactly as the desktop's palette does; whether Android's WebView actually composites above Avalonia content is still the unverified question recorded below, and diff --git a/docs/design-import-gaps.md b/docs/design-import-gaps.md index 307db2f..e210f3a 100644 --- a/docs/design-import-gaps.md +++ b/docs/design-import-gaps.md @@ -31,7 +31,7 @@ the chrome, hosts and terminals, file transfer, the vault, teams, and preference > | v2 element | What ships instead | > | --- | --- | > | The **FORWARDING** screen: local/remote/dynamic rules, toggles, bytes transferred | **Nothing, said out loud.** `ISshConnection` offers `OpenShellAsync` and nothing else, so there is no tunnel for a rule to run through; `SyncEntityType.PortForward = 9` is still reserved and still unused. The MORE screen carries a paragraph naming the absence, for the reason the desktop keeps TEAMS in its rail. | -> | `23 ms · fwd 5432` on the terminal's connection line | ◆ **The line is gone, and what was real on it moved.** There was never an RTT to draw — SSH.NET measures none — and nothing forwards anything, so what shipped was the account and endpoint actually dialled. In v3 a connected phone draws one 52-pixel bar and then the terminal, so a second 36-pixel row naming the machine is exactly the chrome that surface exists to give back: the address is on the connecting card, where it is read before anything has answered, and the shell's own prompt says it afterwards. The two text-size buttons that shared the line are pinned at the end of the accessory row, outside its scroller, which is what the line was protecting them from. | +> | `23 ms · fwd 5432` on the terminal's connection line | ◆ **The line is gone, and what was real on it moved.** There was never an RTT to draw — SSH.NET measures none — and nothing forwards anything, so what shipped was the account and endpoint actually dialled. In v3 a connected phone draws one 35-pixel bar and then the terminal, so a second 36-pixel row naming the machine is exactly the chrome that surface exists to give back: the address is on the connecting card, where it is read before anything has answered, and the shell's own prompt says it afterwards. The two text-size buttons that shared the line are pinned at the end of the accessory row, outside its scroller, which is what the line was protecting them from. | > | `ED25519` badge and `SHA256:kQ9f…Zw2M` on every keychain card | `Detail`, which is what is genuinely known *about* an item. Unchanged from the first import: no algorithm field, no fingerprint, and computing either means parsing armour the type stores verbatim. | > | An `agent` chip on a key | Omitted. There is no agent of any kind — see the first import's Vault section. | > | Snippet cards footed with `edge-eu-1 · today 10:58 · exit 0` | The command and its badge. Nothing records where a snippet ran, when, or what it returned; the shell it is typed into never reports back. | diff --git a/docs/manual-checks.md b/docs/manual-checks.md index dedb6ff..1bed8a5 100644 --- a/docs/manual-checks.md +++ b/docs/manual-checks.md @@ -947,7 +947,7 @@ scrolling the pills to either end does not move them. With a shell open, scroll the accessory key row to the far left and the far right. **Pass:** `A−` and `A+` stay pinned at the right-hand end throughout, separated from the keys by the -hairline, and both are at least 38 tall. At the smallest and largest sizes the one that can do nothing is +hairline, and both are at least 30 tall. At the smallest and largest sizes the one that can do nothing is visibly disabled rather than silently inert. **Failure means:** they have been folded into the scrolling row — which is the arrangement the connection diff --git a/src/DodoSSH.Client.Android/Views/PhoneShell.axaml b/src/DodoSSH.Client.Android/Views/PhoneShell.axaml index 91ac029..01e1e27 100644 --- a/src/DodoSSH.Client.Android/Views/PhoneShell.axaml +++ b/src/DodoSSH.Client.Android/Views/PhoneShell.axaml @@ -30,7 +30,7 @@ The arithmetic is why. Header 56, strip 46, bar 64, and the terminal's own two rows on top of that: at 360dp the shell was framed by about a third of the display, all of it about somewhere the user was not. - What takes their place is one 52-pixel bar drawn by the surface itself, carrying back on the left and + What takes their place is one 35-pixel bar drawn by the surface itself, carrying back on the left and the sessions and a + across from it. See TerminalScreen.axaml. --> diff --git a/src/DodoSSH.Client.Android/Views/TerminalScreen.axaml b/src/DodoSSH.Client.Android/Views/TerminalScreen.axaml index 6b48e3a..1325691 100644 --- a/src/DodoSSH.Client.Android/Views/TerminalScreen.axaml +++ b/src/DodoSSH.Client.Android/Views/TerminalScreen.axaml @@ -40,8 +40,12 @@ Both are outside the ScrollViewer deliberately. They are the way out of this surface and the way to another host, and a tenth tab must not be able to push either of them off the right-hand edge. + + 35 tall, a third off the 52 it opened at. Every height inside it came down with it — the icon squares + to 34, the pills to 30 — because a bar that shrank around controls that did not would only have moved + the clipping somewhere harder to see. --> - @@ -49,8 +53,12 @@ Back, and it goes to the page this terminal was opened over rather than to Hosts by name. The system back gesture already does exactly that — see PhoneShell.axaml.cs — and an arrow that landed somewhere else would be the second of two answers to one question. + + Height overridden and width left alone. Button.icon is a 44 square, which is taller than this bar; + the 44 that matters is the horizontal one, since nothing in a row of this shape is hard to hit + above or below. --> - @@ -121,8 +139,13 @@ not a claim to make without a screenshot. It is answered here rather than dodged — this is a sheet at the bottom of the screen and opening it collapses the renderer outright, exactly as the palette does on the desktop. Nothing is drawn over the WebView. + + Plain Button.icon, the same as the arrow across from it, rather than the accent variant. The two + are a matched pair at either end of one bar — one leaves this surface, one adds to it — and an + accented + would rank itself above the way out. The accent fill belongs to the floating + on + HOSTS, which is the only action on its screen; this one is not. --> - -