How catimaloyalty/android works
Catima is an offline Android loyalty- and membership-card manager. The primary workflow is to add or scan a card, keep it on-device, then find and display it for use; the app also supports card images, grouping, pkpass and other-format import/export, and smartwatch access. The graph includes the Wear OS companion and its Bluetooth sync path. Some app entry-point and import details are represented from the README and file tree only; unsampled implementation links are omitted or marked unverified.
Main entry points: ImportExportActivity.kt Import and export UI · BluetoothServerService.kt Bluetooth server · MainActivity.kt Wear app · BluetoothCardClient.kt Watch sync client
Components 22
Android app
- Card library
app/src/main/java/protect/card_locker/MainActivity.kt - Barcode scanner
app/src/main/java/protect/card_locker/ScanActivity.kt - Barcode parsing
app/src/main/java/protect/card_locker/Utils.java - Card editor
app/src/main/java/protect/card_locker/LoyaltyCardEditActivity.java - Card display
app/src/main/java/protect/card_locker/cardview/LoyaltyCardViewActivity.java - Group management
app/src/main/java/protect/card_locker/ManageGroupsActivity.kt - App settings
app/src/main/java/protect/card_locker/preferences/Settings.java
Card data
- Card model
app/src/main/java/protect/card_locker/LoyaltyCard.java - Card database
app/src/main/java/protect/card_locker/DBHelper.java
Import and export
- Import and export UI
app/src/main/java/protect/card_locker/ImportExportActivity.kt - Pass parser
app/src/main/java/protect/card_locker/PkpassParser.kt - Format importers
app/src/main/java/protect/card_locker/importexport/MultiFormatImporter.java - Format exporters
app/src/main/java/protect/card_locker/importexport/MultiFormatExporter.java
Watch sync
- Bluetooth server
app/src/main/java/protect/card_locker/wearos/BluetoothServerService.kt - Device trust
shared/src/main/java/protect/card_locker/shared/WearBluetoothSecurity.kt - Sync protocol
shared/src/main/java/protect/card_locker/shared/WearBluetoothProtocol.kt
Wear OS app
- Wear app
wear/src/main/java/me/hackerchick/catima/wear/MainActivity.kt - Watch sync client
wear/src/main/java/me/hackerchick/catima/wear/BluetoothCardClient.kt - Watch card repository
wear/src/main/java/me/hackerchick/catima/wear/WearCardRepository.kt - Watch card store
wear/src/main/java/me/hackerchick/catima/wear/WearCardStore.kt - Watch card screens
wear/src/main/java/me/hackerchick/catima/wear/ui/CardListScreen.kt
Other components
- Card holder
Connections 23
- Card holder → Card library: manages cards
- Card holder → Barcode scanner: scans barcode
- Barcode scanner → Barcode parsing: reads barcode
- Card holder → Card editor: edits card
- Card library → Card display: opens card
- Card display → Card database: loads card
app/src/main/java/protect/card_locker/cardview/LoyaltyCardViewActivity.java - Card database → Card model: loads card data
app/src/main/java/protect/card_locker/DBHelper.java - Card holder → Group management: organizes cards
- Card holder → Import and export UI: imports or exports
- Import and export UI → Pass parser: accepts pkpass
- Import and export UI → Format importers: imports formats
- Import and export UI → Format exporters: exports cards
- Card holder → Wear app: uses watch cards
- Wear app → Watch sync client: starts sync
wear/src/main/java/me/hackerchick/catima/wear/MainActivity.kt - Watch sync client → Sync protocol: uses protocol
wear/src/main/java/me/hackerchick/catima/wear/BluetoothCardClient.kt - Watch sync client → Bluetooth server: syncs cards
- Bluetooth server → Sync protocol: dispatches commands
app/src/main/java/protect/card_locker/wearos/BluetoothServerService.kt - Bluetooth server → Device trust: checks trust
app/src/main/java/protect/card_locker/wearos/BluetoothServerService.kt - Bluetooth server → Card database: reads cards
app/src/main/java/protect/card_locker/wearos/BluetoothServerService.kt - Wear app → Watch card repository: uses repository
wear/src/main/java/me/hackerchick/catima/wear/MainActivity.kt - Watch card repository → Watch card store: stores cards
wear/src/main/java/me/hackerchick/catima/wear/WearCardRepository.kt - Wear app → Watch card screens: shows cards
wear/src/main/java/me/hackerchick/catima/wear/MainActivity.kt - Card holder → App settings: configures app