simon-something/qr-handle

GrapheneOS ticket manager with QR codes

★ 0Forks 0KotlinGitHub ↗Compare

README

QR Handle

A minimal Android ticket manager for storing and displaying QR codes and barcodes. Built for GrapheneOS — no Google Play Services required.

Features

  • Import tickets from .pkpass files, 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

Requirements

  • Android 8.0+ (API 26)
  • JDK 17
  • Android SDK with compileSdk 35

Build

git clone https://github.com/simon-something/qr-handle.git
cd qr-handle
./gradlew assembleDebug

The APK will be at app/build/outputs/apk/debug/app-debug.apk.

Install

Via ADB:

adb install app/build/outputs/apk/debug/app-debug.apk

If upgrading and you get a signature mismatch error:

adb uninstall com.qrhandle
adb install app/build/outputs/apk/debug/app-debug.apk

Tech stack

  • Kotlin + Jetpack Compose (Material 3)
  • Room (local database)
  • CameraX + ML Kit Barcode Scanning (bundled model)
  • ZXing (barcode generation + file-based decoding)
  • Navigation Compose

Contributors

simon-something

Issues