docs: improve status readability and record verification outcomes
This commit is contained in:
13
AGENTS.md
13
AGENTS.md
@@ -113,7 +113,18 @@ Kanbn4Droid is an unofficial app to connect to and manipulate data stored in sel
|
||||
- Tapping on the filter by tag or search buttonswhen either of them is applied disables the active filter.
|
||||
- When a card(s) is selected by a long press, the filter by tag and search buttons get hidden by the select all, move card and delete card buttons until all cards are deselected.
|
||||
- When a card(s) is selected by a long press, the back arrow in the title bar and the back system button remove all selections.
|
||||
- Current status: implemented in `BoardDetailActivity` with `ViewPager2` (one list per page), inline list-title edit, card rendering (title/tags/due date locale formatting and expiry color), FAB flows for both add-list and add-card dialogs, local filter/search behavior (no server roundtrip) with active filter/search icon highlighting, cross-page card selection, selection-mode toolbar action replacement (hide filter/search and show select-all/move/delete), page-scoped select-all, move dialog with list selector, two-step delete confirmation, and back handling that clears selection from both the top-bar back arrow and system back button before navigating. The screen also includes mutation guards while in progress and API-backed reload/reconciliation behavior through `BoardDetailViewModel` and `BoardDetailRepository`. Card move requests try these variants in order for compatibility across Kan.bn API versions: `PUT /api/v1/cards/{cardPublicId}` with `listPublicId`, then a GET+full-body `PUT /api/v1/cards/{cardPublicId}` payload (`title`, `description`, `index`, `listPublicId`, `dueDate`), then `PUT /api/v1/cards/{cardPublicId}` with `listId`, then `PATCH /api/v1/cards/{cardPublicId}` with `listId`. Board detail parsing now prefers public ids (`publicId`/`public_id`) over internal `id` values so follow-up card/list mutations target the correct API identifiers. Label chip border colors are hydrated from the Kan.bn `Get a label by public ID` endpoint (`colourCode`) and cached in-memory by `BoardDetailRepository` so each label color is fetched only once per app process. Selection action icons use local vector drawables (`ic_select_all_grid_24`, `ic_move_cards_horizontal_24`, `ic_delete_24`) with day/night resource variants so dark mode uses light icon fills automatically. Startup blocking dialogs are shown for missing board id and missing session.
|
||||
- Current status: implemented in `BoardDetailActivity` with `ViewPager2` (one list per page), inline list-title edit, and card rendering (title/tags/due date locale formatting and expiry color).
|
||||
- FAB flows are implemented for both add-list and add-card dialogs.
|
||||
- Filter/search behavior is local (no server roundtrip), and active filter/search icons are highlighted.
|
||||
- Cross-page card selection is implemented. In selection mode, toolbar actions are replaced (filter/search hidden; select-all/move/delete shown).
|
||||
- Select-all is page-scoped, move uses a list selector dialog, and delete uses two-step confirmation.
|
||||
- Back handling clears selection from both the top-bar back arrow and the system back button before navigation.
|
||||
- The screen includes mutation guards while in progress and API-backed reload/reconciliation behavior through `BoardDetailViewModel` and `BoardDetailRepository`.
|
||||
- Card move requests try these variants for Kan.bn API compatibility: `PUT /api/v1/cards/{cardPublicId}` with `listPublicId`, then GET+full-body `PUT /api/v1/cards/{cardPublicId}` payload (`title`, `description`, `index`, `listPublicId`, `dueDate`), then `PUT /api/v1/cards/{cardPublicId}` with `listId`, then `PATCH /api/v1/cards/{cardPublicId}` with `listId`.
|
||||
- Board detail parsing prefers public ids (`publicId`/`public_id`) over internal `id` values so follow-up card/list mutations target correct API identifiers.
|
||||
- Label chip border colors are hydrated from Kan.bn `Get a label by public ID` (`colourCode`) and cached in-memory by `BoardDetailRepository` so each label color is fetched only once per app process.
|
||||
- Selection action icons use local vector drawables (`ic_select_all_grid_24`, `ic_move_cards_horizontal_24`, `ic_delete_24`) with day/night variants so dark mode uses light icon fills automatically.
|
||||
- Startup blocking dialogs are shown for missing board id and missing session.
|
||||
|
||||
**Card detail view**
|
||||
- The view shows the card's title in bold letters. Tapping on the card's title allows editing it.
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
# 2026-03-16 Board Detail Add/Create/Filter Implementation
|
||||
|
||||
## Execution Verification
|
||||
|
||||
Recorded at: 2026-03-16T15:56:23-04:00
|
||||
|
||||
- `./gradlew test` - PASS
|
||||
- `./gradlew connectedDebugAndroidTest` - PASS
|
||||
- `./gradlew assembleDebug` - PASS
|
||||
Reference in New Issue
Block a user