feat(scan): add camera capture for Android with toggle between upload and live camera

- Add CameraCapture component with live viewfinder via getUserMedia
- Support rear/environment camera (default) with switch to front/user
- Capture to JPEG 92% quality via canvas, reuse existing upload flow
- Toggle between 'Unggah' (file upload) and 'Kamera' (live capture) modes
- Error handling for denied/not found/not readable in Bahasa Indonesia
- Add patch script for AndroidManifest CAMERA permission (gen/ is gitignored)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
MythEclipse
2026-06-15 20:54:11 +07:00
co-authored by Claude
parent c881e6a2b2
commit a36b74a1cf
3 changed files with 305 additions and 27 deletions
+20
View File
@@ -0,0 +1,20 @@
#!/usr/bin/env bash
# Patches the generated AndroidManifest.xml to add CAMERA permission.
# Run after `tauri android init` to apply.
set -euo pipefail
MANIFEST="gen/android/app/src/main/AndroidManifest.xml"
if [ ! -f "$MANIFEST" ]; then
echo "ERROR: $MANIFEST not found. Run 'tauri android init' first." >&2
exit 1
fi
if grep -q 'android.permission.CAMERA' "$MANIFEST"; then
echo "CAMERA permission already present in AndroidManifest.xml"
exit 0
fi
echo "Adding CAMERA permission to AndroidManifest.xml..."
sed -i 's|<uses-permission android:name="android.permission.INTERNET" />|<uses-permission android:name="android.permission.INTERNET" />\n <uses-permission android:name="android.permission.CAMERA" />\n <uses-feature android:name="android.hardware.camera" android:required="false" />\n <uses-feature android:name="android.hardware.camera.autofocus" android:required="false" />|' "$MANIFEST"
echo "Done."