49 lines
1.5 KiB
Markdown
49 lines
1.5 KiB
Markdown
# Profile Picture
|
|
|
|
Fahipay profile pictures are **stored locally** by the app. There is no Fahipay endpoint involved.
|
|
|
|
The official Fahipay app exposes `GET https://fahipay.mv/images/profiles/picture/?t={timestamp}` (a 302 redirect to the actual image), but this client never calls it — Fahipay accounts get a user-set picture saved on the device only.
|
|
|
|
---
|
|
|
|
## Storage
|
|
|
|
`util/ProfileImageStore.kt` — keyed file storage under `filesDir/profile_images/`.
|
|
|
|
| Bank | Key |
|
|
|---|---|
|
|
| Fahipay | `fahipay_{loginId}` |
|
|
| BML | `bml_{profileId}` |
|
|
| MIB | (n/a — fetched from server via [P41](../mibapi/02-login.md)) |
|
|
|
|
Helpers:
|
|
|
|
```kotlin
|
|
ProfileImageStore.fahipayKey(loginId) // "fahipay_abc123"
|
|
ProfileImageStore.save(context, key, bitmap)
|
|
ProfileImageStore.load(context, key) // Bitmap?
|
|
ProfileImageStore.delete(context, key)
|
|
```
|
|
|
|
Files are JPEGs at quality 90. The filename is the key with non-alphanumerics replaced by `_`.
|
|
|
|
---
|
|
|
|
## UI entry points
|
|
|
|
Set/replace/remove a Fahipay profile picture from **Settings → Logins** (`ui/home/SettingsLoginsFragment.kt`). The pencil icon next to a Fahipay login opens a chooser:
|
|
|
|
- Pick from gallery (`ACTION_OPEN_DOCUMENT` image/*)
|
|
- Take a photo (camera launcher, temp file at `cacheDir/profile_photo_tmp.jpg`)
|
|
- Remove current picture
|
|
|
|
Saved images are surfaced anywhere the account is shown — accounts list, contact picker, receipts — via a `localProfileImageLoader` that resolves the key with `ProfileImageStore.load`.
|
|
|
|
---
|
|
|
|
|
|
|
|
---
|
|
|
|
[← Transaction History](05-history.md)
|