forked from shihaam/thijooree
71 lines
2.6 KiB
Markdown
71 lines
2.6 KiB
Markdown
# 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
|
|
|
|
- **Share** — `captureReceiptBitmap()` 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](08-contacts.md) **Next →** [OTP Screen](10-otp-screen.md)
|