From 4e990c8e35568030578617c0907e043fe3ae5c32 Mon Sep 17 00:00:00 2001 From: WHC Date: Sun, 11 Oct 2026 20:04:24 +0800 Subject: [PATCH] docs/android.md: what a turn does when nobody answers, and md_to_pdf The SAF picker is not 'still to come' any more (v0.9.6 did it): the list keeps the back gesture and the icon glyphs. In its place, what v0.9.7 changed on the phone -- a consent question refused in the background and bounded in the foreground, the bounded GUI hop, the phase in the header, and the window's own md_to_pdf. --- docs/android.md | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/docs/android.md b/docs/android.md index 7acd545..fdea4a6 100644 --- a/docs/android.md +++ b/docs/android.md @@ -197,6 +197,25 @@ have, so the script rewrites the shebang of the build-tools wrappers. start of the turn and released at its end, `run_shell sleep 60` finished with the screen dark, and the service was gone once the turn was over. `CST_APP_NO_SERVICE=1` keeps a test run from touching the phone. -* Still to come: the SAF picker for attaching a picture from another app, the - back gesture, and the icon glyphs -- `ThemeIcon` finds no icon files on the - phone and draws empty boxes where the desktop shows Breeze icons. +* **A turn that asked and got no answer**: a consent question cannot outlive + the app being off screen. `AgentCore::hookPermission()` / `hookAskUser()` + refuse (or drop the question) at once while the app is in the background -- + Qt reports that as `Qt::ApplicationSuspended`, so the worker is never parked + on a dialog nobody can see, and the transcript carries a line saying why. In + the foreground the same two hooks wait two minutes (a permission) or five + (a question) and then answer "no" with a reason instead of waiting for good. + The GUI hop a platform tool makes (`onGuiThread()` in + `app/src/platform/android/AndroidTools.cpp`) pings first and gives up after + three seconds, and the header shows what the turn is doing + (`shell: make -j8`) so a long turn is not mistaken for a stuck one. + `--uitest` covers the window side of all this. +* **Documents**: `md_to_pdf` (the window's own tool, + `app/src/core/PdfTools.cpp`, owner `app:qt`) lays markdown or a workspace + `.md`/`.html` out as an A4 PDF with 15 mm margins and hands it over as a file + card, exactly the way `deliver_file` does; `QPrinter`/PrintSupport is not + used, so the phone gets it too. Qt's PDF engine embeds a font *subset*, which + is why a Chinese page is a few KB rather than the few MB a whole CJK font + would cost (see `app/README.md`). +* Still to come: the back gesture, and the icon glyphs -- `ThemeIcon` finds no + icon files on the phone and draws empty boxes where the desktop shows Breeze + icons.