A minimal Android ticket manager for storing and displaying QR codes and barcodes. Built for GrapheneOS — no Google Play Services required.
- Import tickets from
.pkpassfiles, images, and PDFs - Scan barcodes directly with the camera (ML Kit bundled)
- Manual barcode entry
- Tickets grouped by date with swipe-to-delete
- Auto-brightness when viewing a ticket
- Supports QR, PDF417, Aztec, Code 128, Data Matrix, EAN-13, EAN-8
- Android 8.0+ (API 26)
- JDK 17
- Android SDK with compileSdk 35
git clone https://github.com/simon-something/qr-handle.git
cd qr-handle
./gradlew assembleDebugThe APK will be at app/build/outputs/apk/debug/app-debug.apk.
Via ADB:
adb install app/build/outputs/apk/debug/app-debug.apkIf upgrading and you get a signature mismatch error:
adb uninstall com.qrhandle
adb install app/build/outputs/apk/debug/app-debug.apk- Kotlin + Jetpack Compose (Material 3)
- Room (local database)
- CameraX + ML Kit Barcode Scanning (bundled model)
- ZXing (barcode generation + file-based decoding)
- Navigation Compose