Files
thijooree/docs/thijooree/09-activities.md
T
shihaam a8cd22cbe1
Auto Tag on Version Change / check-version (push) Failing after 13m32s
update docs
2026-06-13 21:30:12 +05:00

2.6 KiB

Activities

The activities screen shows a local log of completed transfers initiated within the app, along with receipt viewing and sharing.


Fragment — ActivitiesFragment

Displays a chronological RecyclerView of locally stored transfer records. These records are written by the app at transfer completion time — they are not fetched from bank APIs.

A search bar at the top filters loaded entries by recipient label / account / remarks (ActivitiesFragment.kt:52-58).

Storage

Backed by util/ReceiptStore — a single encrypted JSON file at filesDir/activities.json (via CacheEncryption). Each entry is a TransferReceiptData plus a savedAt timestamp.

Only successful transfers are saved. The save call is guarded by ok && receipt != null (TransferFragment.kt:1201), so there is no "Failed" status — failures stay as a toast / dialog and never persist.


Activity List

Each row shows:

  • Bank logo
  • Recipient name and account number
  • Transfer amount (hidden as •••• when hide-amounts is active)
  • Date and time

Tapping a row opens TransferReceiptFragment for that record.


Transfer Receipt — TransferReceiptFragment

A full-screen receipt view shown immediately after a successful transfer and accessible later from the activities list.

Receipt Fields

Schema: TransferReceiptData in ui/home/TransferReceiptData.kt.

Field Source
bank "MIB" / "BML" / "FAHIPAY"
amount / currency Entered + source-account currency
fromLabel / fromColorHex / fromProfileImageHash Captured source account display
toLabel / toAccount / toBank Resolved recipient
remarks Free text the user entered
mibReferenceNo / mibTransactionDate Populated for MIB transfers
bmlFromName / bmlReference / bmlTimestamp / bmlMessage Populated for BML transfers

Actions

  • SharecaptureReceiptBitmap() uses PixelCopy over the receipt card, writes a PNG to cacheDir/receipts/, exposes it via FileProvider, and fires ACTION_SEND
  • Save to Gallery — same capture, then writes to MediaStore.Images (Pictures/) on API 29+ or directly to Environment.DIRECTORY_PICTURES on older releases

PixelCopy reads from the window surface, so both actions fail while FLAG_SECURE is active. There is no off-screen rendering fallback.


Empty State

If no local transfer records exist, an empty-state illustration is shown with a prompt to make a transfer.


 


← Contacts     Next → OTP Screen