Bind a CameraX ImageAnalysis use case that runs EdgeDetector on downscaled
YUV frames (throttled ~6/s) and draw the detected document quad as a live
green overlay on the preview, mapped through the FILL_CENTER crop. Preview
switched to TextureView (COMPATIBLE) mode so the Compose overlay renders on
top. Bump versionCode 4 / versionName 0.2.0.
Fixes#4
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Prep for public distribution. All user-facing strings, the README, the Gitea
workflow step names/comments and the keystore example are now English.
Follow-up i18n (string resources + locale files) is tracked in #5.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
After POST /api/documents/post_document/ the client now polls /api/tasks/
until the document is consumed, so the app shows 'Toegevoegd ✓', 'Duplicaat',
or a failure message instead of just 'queued'. A 'Niet wachten' button lets
the user stop waiting (the POST itself is NonCancellable, so the document is
always really sent). Bump versionCode 3 / versionName 0.1.2.
Fixes#3
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Camera: system shutter sound (only when ringer isn't silenced) + brief
white flash overlay on capture, for clear feedback even on silent.
- Settings: snackbar confirmation when saving.
- Export: explain why the Paperless upload button is disabled when unconfigured.
- Bump versionCode 2 / versionName 0.1.1.
Fixes#1, #2
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Add contents:write permission and replace upload-artifact with an API call
that creates/reuses the release for the tag and attaches the signed APK as a
downloadable asset.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The gitea.gompstar.com detour is abandoned; restore runs-on: paperscan and
the plain checkout that build successfully on the x86_64 LXC runner.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Both the ARM64 global runner and the new LXC runner had the ubuntu-latest
label, so Gitea could dispatch the Android build to the incompatible ARM
box. Use a unique 'paperscan' label so only the x86_64 LXC runner matches.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
androidx.security-crypto pulls in Tink, which references compile-only
com.google.errorprone.annotations.* classes; suppress the R8 missing-class
errors so assembleRelease succeeds.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The crop container uses contentAlignment=Center, so the draggable corner
handles were offset from the middle of the box rather than the top-left,
leaving them far from the actual document corners. Anchor them with
align(TopStart) to match the Canvas coordinate space, and add a white
border for visibility.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Native Kotlin/Compose app met CameraX + OpenCV randdetectie/perspectiefcorrectie,
multi-page PDF-export, en Paperless-ngx upload (of Android deelmenu). Alles lokaal.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>