feat: browse records and attach photos from record Actions #15

Merged
james.maes merged 2 commits from feature/gs1-record-photos into main 2026-11-05 12:55:49 +00:00
Owner

Summary

Adds permitted-table browsing and record details to the existing scanner app. Tables provide search, exact text filters, counts and stable paging; returning from a record preserves context. Records have grouped fields, related-record tabs, persistent identity, localized values and Actions → Add photo with Take photo / Choose photo.

Saved photos show parent-scoped status, approved thumbnails/previews and pending review. Existing upload retry, device/session authorization, rotation/navigation guards and logout cleanup are preserved. Also carries GS1 AIM metadata support for the companion Echo duplication work.

Validation

  • 232 shared-library/scanner unit tests; zero failures/errors/skips.
  • Scanner lint: 0 errors / 0 warnings; debug/E2E/instrumentation builds pass.
  • Eight native runner guard tests pass.
  • Isolated MC9400 native UI-to-server tests pass rich records, search/filter/Back, camera/gallery persistence, parent-scoped gallery, approved previews, rotation and forced logout. Requests match the published semantic API. Process-photo regression also passes.
  • Existing TC22 updated in place; signer and installed bytes verified. Actual UI pass confirms Actions/chooser, tabs, dates/currency and returning to page two.

The final date-only correction received unit/lint/build and actual TC22 checks after the native suite. Synthetic camera/gallery inputs do not claim a new physical camera or GS1 print/rescan pass.

Actual TC22 screenshots and implementation boundaries.

Compatibility and rollout

Uses existing semantic metadata/query/get/count and registered Record Files operations; no parallel business API or generic screen engine. Same normal TC22 application, server address, login and enrollment. No production APK release, signing change or Maven publication requested. Companion scanner demo changes provide rich synthetic data and the owner download configuration.

## Summary Adds permitted-table browsing and record details to the existing scanner app. Tables provide search, exact text filters, counts and stable paging; returning from a record preserves context. Records have grouped fields, related-record tabs, persistent identity, localized values and **Actions → Add photo** with Take photo / Choose photo. Saved photos show parent-scoped status, approved thumbnails/previews and pending review. Existing upload retry, device/session authorization, rotation/navigation guards and logout cleanup are preserved. Also carries GS1 AIM metadata support for the companion Echo duplication work. ## Validation - [x] 232 shared-library/scanner unit tests; zero failures/errors/skips. - [x] Scanner lint: 0 errors / 0 warnings; debug/E2E/instrumentation builds pass. - [x] Eight native runner guard tests pass. - [x] Isolated MC9400 native UI-to-server tests pass rich records, search/filter/Back, camera/gallery persistence, parent-scoped gallery, approved previews, rotation and forced logout. Requests match the published semantic API. Process-photo regression also passes. - [x] Existing TC22 updated in place; signer and installed bytes verified. Actual UI pass confirms Actions/chooser, tabs, dates/currency and returning to page two. The final date-only correction received unit/lint/build and actual TC22 checks after the native suite. Synthetic camera/gallery inputs do not claim a new physical camera or GS1 print/rescan pass. [Actual TC22 screenshots and implementation boundaries](https://git.kof22.com/QRun-IO/qqq-android/src/branch/feature/gs1-record-photos/docs/RECORD-UX-2026-11-05.md). ## Compatibility and rollout Uses existing semantic metadata/query/get/count and registered Record Files operations; no parallel business API or generic screen engine. Same normal TC22 application, server address, login and enrollment. No production APK release, signing change or Maven publication requested. Companion scanner demo changes provide rich synthetic data and the owner download configuration.
james.maes added 1 commit 2026-11-05 12:24:48 +00:00
feat: browse mobile records and attach photos through record actions
QRun-IO/ci-policy: ci / fork-guard (pull_request) Skipped
QRun-IO/ci-policy: native / fork-deny (pull_request) Skipped
QRun-IO/ci-policy: native / dotnet-0 (pull_request) Skipped
QRun-IO/ci-policy: ci / Scoped workflow [workflow 60e5a80ed7a5a67877bfb3e129b1929c83464b6e] (pull_request) Successful in 7s
QRun-IO/ci-policy: ci / head-profile (pull_request) Skipped
QRun-IO/ci-policy: ci / repository-policy (pull_request) Skipped
QRun-IO/ci-policy: native / native-result (pull_request) Successful in 12s
QRun-IO/ci-policy: ci / application-template-0 (pull_request) Skipped
QRun-IO/ci-policy: ci / gradle-1 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-core-2-head (pull_request) Skipped
QRun-IO/ci-policy: ci / java-docker-3 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-docker-3-head (pull_request) Skipped
QRun-IO/ci-policy: ci / java-docker-4 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-frontend-browser-5 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-maven-6 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-maven-6-head (pull_request) Skipped
QRun-IO/ci-policy: ci / java-maven-7 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-maven-7-head (pull_request) Skipped
QRun-IO/ci-policy: ci / node-8 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-9 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-10 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-playwright-11 (pull_request) Skipped
QRun-IO/ci-policy: ci / repository-policy-12 (pull_request) Skipped
QRun-IO/ci-policy: ci / source-config-13 (pull_request) Skipped
QRun-IO/ci-policy: ci / source-config-14 (pull_request) Skipped
QRun-IO/ci-policy: ci / original-business (pull_request) Skipped
QRun-IO/ci-policy: ci / original-mcp (pull_request) Skipped
QRun-IO/ci-policy: ci / original-voyage (pull_request) Skipped
QRun-IO/ci-policy: ci / original-cli (pull_request) Skipped
QRun-IO/ci-policy: ci / not-enrolled (pull_request) Skipped
QRun-IO/ci-policy: ci / shared-pipeline (pull_request) Skipped
QRun-IO/ci-policy: Shared Android CI / gate (pull_request) Canceled after 0s
QRun-IO/ci-policy: Shared Android CI / secrets (pull_request) Canceled after 0s
QRun-IO/ci-policy: Shared Android CI / package (pull_request) Canceled after 0s
QRun-IO/ci-policy: Shared Android CI / android-test (pull_request) Canceled after 0s
QRun-IO/ci-policy: ci / ci-result (pull_request) Canceled after 0s
QRun-IO/ci-policy: Shared Android CI / unit-test (pull_request) Canceled after 4m31s
QRun-IO/ci-policy: ci / android-0 (pull_request) Canceled after 4m31s
476210ae22
Preserve table search, filters and paging; add grouped details, related-record tabs, formatted values and parent-scoped saved photo previews. Retain upload guards across rotation and support GS1 AIM metadata.

Validate with 232 unit tests, clean lint, isolated native semantic acceptance and actual TC22 visual checks.

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
james.maes added 1 commit 2026-11-05 12:29:30 +00:00
docs: link record UX reviews and preserve archive navigation
QRun-IO/ci-policy: native / fork-deny (pull_request) Skipped
QRun-IO/ci-policy: native / dotnet-0 (pull_request) Skipped
QRun-IO/ci-policy: ci / fork-guard (pull_request) Skipped
QRun-IO/ci-policy: native / native-result (pull_request) Successful in 7s
QRun-IO/ci-policy: ci / Scoped workflow [workflow 60e5a80ed7a5a67877bfb3e129b1929c83464b6e] (pull_request) Successful in 11s
QRun-IO/ci-policy: ci / head-profile (pull_request) Skipped
QRun-IO/ci-policy: ci / repository-policy (pull_request) Skipped
QRun-IO/ci-policy: ci / application-template-0 (pull_request) Skipped
QRun-IO/ci-policy: ci / gradle-1 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-core-2-head (pull_request) Skipped
QRun-IO/ci-policy: ci / java-docker-3 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-docker-3-head (pull_request) Skipped
QRun-IO/ci-policy: ci / java-docker-4 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-frontend-browser-5 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-maven-6 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-maven-6-head (pull_request) Skipped
QRun-IO/ci-policy: ci / java-maven-7 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-maven-7-head (pull_request) Skipped
QRun-IO/ci-policy: ci / node-8 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-9 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-10 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-playwright-11 (pull_request) Skipped
QRun-IO/ci-policy: ci / repository-policy-12 (pull_request) Skipped
QRun-IO/ci-policy: ci / source-config-13 (pull_request) Skipped
QRun-IO/ci-policy: ci / source-config-14 (pull_request) Skipped
QRun-IO/ci-policy: ci / original-business (pull_request) Skipped
QRun-IO/ci-policy: ci / original-mcp (pull_request) Skipped
QRun-IO/ci-policy: ci / original-voyage (pull_request) Skipped
QRun-IO/ci-policy: ci / original-cli (pull_request) Skipped
QRun-IO/ci-policy: ci / not-enrolled (pull_request) Skipped
QRun-IO/ci-policy: ci / shared-pipeline (pull_request) Skipped
QRun-IO/ci-policy: Shared Android CI / unit-test (pull_request) Successful in 6m5s
QRun-IO/ci-policy: Shared Android CI / android-test (pull_request) Successful in 14m58s
QRun-IO/ci-policy: Shared Android CI / secrets (pull_request) Successful in 28s
QRun-IO/ci-policy: Shared Android CI / package (pull_request) Successful in 18s
QRun-IO/ci-policy: Shared Android CI / gate (pull_request) Successful in 16s
QRun-IO/ci-policy: ci / android-0 (pull_request) Successful in 22m11s
QRun-IO/ci-policy: ci / ci-result (pull_request) Successful in 9s
ab6e44cddd
Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
james.maes merged commit c782aaaaba into main 2026-11-05 12:55:49 +00:00
Sign in to join this conversation.