feat(app): scan a printed seed label back into its record
Closes the physical↔digital loop the labels opened: the QR on a printed envelope (tane://seed, already encoded by seed_label_codec) can now be scanned from the inventory bar. A known label opens its variety; an unknown one asks before adding anything, then creates the variety (species linked by exact scientific name when bundled) with a lot carrying the label's year and origin. Scanner is pure ZXing (zxing_barcode_scanner, MIT) — no ML Kit, no Play Services, F-Droid-safe, the stack Ğ1nkgo ships. Mobile-only; other platforms don't show the button (OCR precedent). The post-scan flow is a plain function (handleScannedPayload) so it's widget-tested without a camera.
This commit is contained in:
parent
bb5b3d4a43
commit
f1aa8f8e66
18 changed files with 1130 additions and 42 deletions
|
|
@ -125,11 +125,31 @@ listing (titles, descriptions, changelogs, screenshots) is read straight from
|
|||
|
||||
## Publish to F-Droid (official repo)
|
||||
|
||||
F-Droid builds and signs from source after a merge request to `fdroiddata`. The
|
||||
build recipe is kept in-repo at [`fdroid/org.comunes.tane.yml`](fdroid/org.comunes.tane.yml).
|
||||
F-Droid builds from source after a merge request to `fdroiddata`. The build recipe
|
||||
is kept in-repo at [`fdroid/org.comunes.tane.yml`](fdroid/org.comunes.tane.yml).
|
||||
Copy it to `metadata/org.comunes.tane.yml` in a fork of fdroiddata, validate with
|
||||
`fdroid lint` / `fdroid build -l org.comunes.tane`, then open the MR. F-Droid signs
|
||||
with its own key, so the F-Droid and Play builds have different signatures.
|
||||
`fdroid lint` / `fdroid build -l org.comunes.tane`, then open the MR
|
||||
([43144](https://gitlab.com/fdroid/fdroiddata/-/merge_requests/43144)).
|
||||
|
||||
**Reproducible, developer-signed.** The recipe pins `AllowedAPKSigningKeys` (the
|
||||
SHA-256 of the tane-upload certificate) and a `binary:` URL per ABI. F-Droid
|
||||
rebuilds each split, and if its output matches our signed reference APK
|
||||
byte-for-byte it publishes **our** APK — so F-Droid and Play share the same
|
||||
signature and users can move between stores without reinstalling. The reference
|
||||
APKs are the per-ABI splits the release workflow attaches to the Forgejo release
|
||||
on `git.comunes.org` (`.forgejo/workflows/release.yml`).
|
||||
|
||||
To (re)compute the fingerprint from the keystore:
|
||||
|
||||
```bash
|
||||
keytool -list -v -keystore .../tane-upload.jks -alias tane-upload \
|
||||
| sed -n 's/.*SHA256: //p' | tr -d ':' | tr 'A-Z' 'a-z'
|
||||
```
|
||||
|
||||
Before pushing the MR, confirm reproducibility in the fdroiddata fork:
|
||||
`fdroid build -l org.comunes.tane` then `fdroid verify org.comunes.tane` must be
|
||||
green against the Forgejo `binary:`. If a split is not reproducible, fall back to
|
||||
F-Droid-signing that version (drop `AllowedAPKSigningKeys`/`binary:`) until fixed.
|
||||
|
||||
## Store metadata
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue