# Private QR Scanner Overview

Private QR Scanner is an Android QR code and barcode scanner focused on fast scanning, practical result actions, and local-first privacy. The app is designed for people who want to read codes without ads, tracking, accounts, or unnecessary network access.

## Purpose

The purpose of Private QR Scanner is to give users a simple, trustworthy way to scan QR codes and barcodes in everyday situations. It helps users inspect scanned content before acting on it, copy or share results, open supported content types, and keep an optional local history when they want a record of previous scans.

The app is built around three product principles:

- Privacy first: scanning and parsing happen on the device.
- Low friction: common actions are available directly after a scan.
- User control: history, warnings, scan feedback, and use-case views are configurable.

## Core Features

### QR and Barcode Scanning

Private QR Scanner uses the device camera to scan QR codes and common barcode formats. The scanner includes a live camera preview, center aiming frame, flashlight support, pinch-to-zoom support, and scan stability handling to reduce accidental repeat scans.

### Scan From Image

Users can choose an image from the device and scan QR codes or barcodes inside it. If multiple codes are detected in one image, the app shows a result picker so the user can choose the correct code.

### Practical Result Actions

After a scan, the app shows the scanned content and provides relevant actions. Depending on the content type, users can copy, share, open a link, call a number, send SMS, send email, open Wi-Fi settings, add a contact, or add a calendar event.

### Structured Content Support

The app recognizes common structured QR content, including URLs, phone numbers, SMS, email, Wi-Fi configuration, contacts, and calendar events. Contact QR codes such as vCard and MECARD are parsed into a clearer contact-style view before the user chooses an action.

### Local Security Warnings

For URLs, the app can show a local warning when a link looks unusual or potentially risky. These warnings are calculated on the device and are meant to help users pause and inspect a link before opening it.

### Optional Local History

Scan history is optional and off by default. When enabled, scanned content, content type, and scan time are stored locally on the device. Users can search history, delete individual entries, clear all entries, and export history as TXT, CSV, or JSON.

### Batch Mode

Batch mode lets users scan multiple codes in one continuous flow. Captures are shown newest-first and can be copied or shared. This is useful for faster workflows where the user does not want to leave the scanner after every scan.

### Event and Ticketing View

The Event & Ticketing use-case view supports venue or event workflows. It emphasizes batch scanning, repeated-ticket detection, optional whitelist import, and quick sharing of batch captures for reconciliation.

### Configurable Settings

Users can control whether history is saved, whether local security warnings are enabled, whether scan feedback is active, and which use-case view is shown. The settings screen also includes app information and the privacy policy.

## Privacy Model

Private QR Scanner is designed as a local-first app:

- No ads.
- No analytics.
- No tracking SDKs.
- No developer backend.
- No account creation.
- No Android Internet permission requested by the app.
- Optional scan history stays in app-private storage on the device.

Data can leave the device only when the user chooses an external Android action, such as opening a link, sharing text, sending an email, adding a contact, adding a calendar event, or reviewing the app on Google Play.

See [PRIVACY_POLICY.md](PRIVACY_POLICY.md) for the full privacy policy.

## Primary Use Cases

### Everyday Personal Use

Users can scan restaurant menus, product labels, Wi-Fi QR codes, contact cards, calendar invitations, and website links. The app provides quick result actions while keeping history optional and local.

### Event and Ticketing

Organizers can scan ticket codes, process attendees quickly with batch mode, detect repeated entries, import a whitelist of valid IDs, and share scan batches for follow-up or reconciliation.

## What Makes It Different

Many scanner apps add ads, analytics, account flows, broad permissions, or network-based features. Private QR Scanner is intentionally narrower: it focuses on scanning, inspecting, acting on results, and optionally keeping a local record. That makes it a good fit for users who prefer a simple scanner with a clear privacy posture.
