# Account History Displays the transaction history for a single account. Opened by tapping an account row in the accounts list. --- ## Fragment — `AccountHistoryFragment` Receives the selected `MibAccount` via navigation arguments. --- ## Data Loading On open, the fragment calls the appropriate bank API to fetch the first page of transactions: | Bank | API | |---|---| | MIB | MIB transaction history endpoint (Blowfish-encrypted) | | BML | BML transaction history endpoint (OAuth Bearer) | | Fahipay | Fahipay wallet transaction list | Results are mapped to a common display model and shown in a `RecyclerView`. --- ## Infinite Scroll The list supports **infinite scroll** (pagination). When the user scrolls near the bottom of the loaded items, the next page is automatically fetched and appended. A loading spinner appears at the bottom while a page is in flight. Page state (current page, total pages) is tracked in the fragment's `ViewModel`. If the last page has been reached the spinner is hidden and no further requests are made. --- ## Search / Filter A search bar at the top of the screen filters the loaded transaction list by: - Description / narrative text - Amount string Filtering is performed locally on already-loaded pages — it does not trigger a new API call. Clearing the search bar restores the full list. --- ## Transaction Rows Each row shows: - Transaction date and time - Description / merchant name - Debit or credit indicator - Amount (hidden as `••••` when hide-amounts is active) - Running balance (where available from the bank API) --- ## Image Loading Some MIB transaction entries include merchant logo URLs. These are loaded asynchronously into the row's image view with a generic fallback icon. Images are cached in memory for the session. --- ## Empty State If no transactions exist (new account or API returned empty list) an empty-state message is shown. ---   --- [← Accounts](04-accounts.md)     **Next →** [Transfer History](06-transfer-history.md)