From e41949557b548a51e9884310dfc5209cf57958f2 Mon Sep 17 00:00:00 2001 From: fy59 Date: Sun, 20 Sep 2026 13:23:08 +0200 Subject: [PATCH] docs(ui): document unified capture interface --- CHANGELOG.md | 16 ++++++++++++++++ docs/android.md | 24 ++++++++++++++++++++++++ docs/current_state.md | 15 +++++++++++++++ docs/tests.md | 16 +++++++++++++--- 4 files changed, 68 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2507f8d..9612999 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,22 @@ Development opened after the stable v0.1.2 release. +- Unified the Android capture interface around compact dark cards, action + tiles, restrained-radius button variants, wrapping selection grids, and + two-column performed-set entry. Home now focuses on session capture, recent + BODY ZONES exposure, synchronization, and measurements; mobile Statistics + navigation was removed without changing stored data or exchange contracts. + Programs now show compact session metadata, completed progress, and explicit + start/resume/completed states using the existing schema-v25 durable Program + execution provenance. Web Program administration gained adaptive cards, a + visible progress bar, and green completed-session treatment while retaining + its revision-guarded trash confirmation and causal deletion behavior. + Android full lint remains at the exact ten-error `main` baseline (one + `NewApi`, one `LocalContextConfigurationRead`, and eight bilingual + `StringFormatMatches` diagnostics); this lot adds no lint error and disables + no rule. Private candidates may override numeric `versionName` and increasing + `versionCode` at build time without changing development defaults. + - Added the loopback-only `/exercices` desktop catalogue administration surface with bounded search/profile/BODY ZONES filtering, detail and read-only equipment presentation, Core-owned creation and editing, complete diff --git a/docs/android.md b/docs/android.md index 8614119..f10e2a5 100644 --- a/docs/android.md +++ b/docs/android.md @@ -57,6 +57,30 @@ It is a native Kotlin/Jetpack Compose application with local SQLite persistence. The desktop remains the canonical long-term history and analytics store. +## Capture-first interface + +The Android interface uses one compact dark design system for cards, action +tiles, buttons, selection states, and destructive actions. Controls share a +restrained corner radius instead of screen-specific pill shapes. The Home +screen is limited to starting or resuming capture, recent BODY ZONES exposure, +synchronization, and body measurements. Analytics and Statistics are not +mobile navigation destinations; the desktop remains their owner. The local +statistics-compatible data and exchange contracts are unchanged. + +Sessions exposes manual capture, prepared drafts, completed history, and +Programs as structured actions. Program cards show status, dates, session +count, and completed progress. Program detail shows each planned session as +`todo`, `in progress`, or `completed`, with type, date, exercise count, and a +start/resume action. Starting continues to use the schema-v25 durable singleton +and stable Program provenance described below. + +The active editor uses side-by-side Training/MAX selection and compact set +cards. Repetitions and load share one row when space permits; the per-set +delete action stays inside the card and retains its confirmation contract. +Exercise filters use wrapping selection tiles, while catalog rows, drafts, +exercise actions, synchronization actions, Settings actions, and latest MAX +entries use the same card/button vocabulary. + ## Interface language (`TRAINLOG_I18N_V0_1_1`) Trainlog version 0.1.2 is synchronized with the desktop TUI as one product diff --git a/docs/current_state.md b/docs/current_state.md index 43f0062..6550001 100644 --- a/docs/current_state.md +++ b/docs/current_state.md @@ -323,6 +323,21 @@ against desktop schema v27 without transferring ownership of Program definitions. Web and Android derive their session state from these persisted identities; no display-field heuristic is used. +Android is capture-first: its drawer no longer exposes Statistics, and Home is +limited to capture, recent BODY ZONES exposure, synchronization, and body +measurements. A shared compact card/button system covers Sessions, Programs, +drafts, exercise catalog/detail/editing, synchronization, Settings, and MAX +presentation. Program list/detail surfaces show completed counts and explicit +todo/in-progress/completed states; the active editor uses exclusive side-by- +side session-type controls and compact two-column set cards. These are +presentation changes only and do not alter schemas or exchange artifacts. +Web Program administration retains revision-guarded deletion and now presents +adaptive cards plus an explicit completed-session progress indicator. +The full Android lint comparison against an isolated clean `main` worktree is +unchanged at ten pre-existing errors: one `NewApi`, one +`LocalContextConfigurationRead`, and eight bilingual `StringFormatMatches` +diagnostics. This UI tranche adds no lint error and changes no lint policy. + The private Program execution rollout installed desktop schema v27 and the signed nondebuggable Android versionCode 17/schema v25 update without uninstalling or clearing application data. A strictly disposable Program was diff --git a/docs/tests.md b/docs/tests.md index 1c45bfd..e555f3e 100644 --- a/docs/tests.md +++ b/docs/tests.md @@ -656,9 +656,19 @@ tagged source state, and the tag, Android `versionName`, Meson project version, TUI product version, asset names, and release title must agree. Private update rollout may set `TRAINLOG_ANDROID_VERSION_CODE` to a positive -integer while keeping `versionName=0.1.2`. This build-only override is used only -to maintain a strictly increasing installed → backup bridge → current APK -chain; it does not change any schema or exchange-format version. +integer and `TRAINLOG_ANDROID_VERSION_NAME=0.1.2` to remain on the installed +stable product line. Both are build-only overrides; the repository development +defaults remain unchanged. They are used only to maintain a strictly increasing +installed → backup bridge → current APK chain and do not change any schema or +exchange-format version. + +For `TRAINLOG_UI_ANDROID_WEB_UNIFICATION_V1`, `lintDebug` was also run from a +detached clean worktree at the exact `main` baseline and from the mission +branch. Both runs report the same ten errors: one `NewApi` diagnostic for +`windowLightNavigationBar`, one `LocalContextConfigurationRead`, and eight +`StringFormatMatches` diagnostics (four bilingual call sites). Comparison by +rule and complete diagnostic message reports zero added and zero removed +errors. No lint rule or severity was changed. ```bash meson setup --reconfigure build