Files
Android/docs/CONTENT_PROVIDER.md
2023-07-09 14:03:34 +01:00

3.1 KiB

Content Provider

Catima implements a content provider to allow for external apps to interact with the cards database. Right now, this only provides read-only functionality.

Since runtime permissions are only available since Android 6.0 (API level 23), the content provider is disabled for older android versions in order to prevent unwanted access to the data.

Package Names

There are 3 release channels, with 2 possible package names:

Release Channel Package Name
Google Play me.hackerchick.catima
F-Droid me.hackerchick.catima
Debug Build me.hackerchick.catima.debug

The package names are required for the authority and permissions, as described below.

Authority

The authority for this content provider: <package_name>.contentprovider.cards

Permissions

The content provider requires the following permissions:

  • <package_name>.READ_CARDS - in order to access any of the URIs.

URIs

/version

Returns a single record with the current API version for the content provider.

A major version change implies breaking changes (eg. columns being renamed or removed).

Column Type Description Value
major int The major version 1
minor int The minor version 0

/cards

Column Type Description
_id int Unique card ID
store String Card name
validfrom long Timestamp from which the card is valid (unix epoch millis).
expiry long Expiration timestamp (unix epoch millis).
balance String Current balance, as a string-formatted big decimal.
balancetype String Balance currency code, ISO 4217.
note String A note.
headercolor int Header color, in RGBA.
cardid String Card ID.
barcodeid String Barcode value. If empty, it's the same as the card ID.
barcodetype String The barcode type name, matching com.google.zxing.BarcodeFormat.
starstatus int 1 if starred, 0 if not
lastused long Timestamp of last card usage (unix epoch millis).
archive int 1 if archived, 0 if not

/groups

Column Type Description
_id String Group name (unique)
orderId int Group order, in the UI

/card_groups

Returns the mapping between cards and groups, by ID.

  • A card can be in 0 or more groups.
  • A group can contain 0 or more cards.
Column Type Description
cardId String Card ID
groupId String Group ID