Skip to content

Fix/transaction details#225

Merged
a1denvalu3 merged 20 commits intomainfrom
fix/transaction-details
Mar 18, 2026
Merged

Fix/transaction details#225
a1denvalu3 merged 20 commits intomainfrom
fix/transaction-details

Conversation

@swedishfrenchpress
Copy link
Copy Markdown
Collaborator

@swedishfrenchpress swedishfrenchpress commented Mar 15, 2026

Transaction Details Overhaul

Video Walkthrough

https://drive.proton.me/urls/54ZY89XJ1C#VMHxHhpoSNpT

Summary

  • Redesigned the Transaction Details screen with improved layout, typography hierarchy, and support for all transaction types (send, receive, withdraw)
  • Added total balance to the top of activity screen
  • Added withdraw transactions to the Activity list and Transaction Details, including "Sent To" destination display
  • Implemented "Label Transaction" feature allowing users to tag transactions with custom labels, persisted across sessions
  • Added CSV export functionality to activity

Changes

Transaction Details Screen

  • Rebuilt activity_transaction_detail.xml layout with cleaner structure and improved typography hierarchy (primary amount large/bold, secondary amount medium, date small)
  • Added overflow menu with "Label Transaction" and "Print Receipt" options
  • Fixed invoice/Cashu request fields displaying in smaller font than other detail values
  • Fixed mint field showing raw URL instead of display name
  • Styled the dropdown/popup menu to match the app's design system
  • Added dark mode support for transaction detail theming

Withdraw Transaction Support

  • Withdraw transactions now appear in the Activity history list with proper send/receive directional icons
  • Transaction Details shows "Sent To" row with the withdraw destination address
  • "Print Receipt" is hidden for withdraw transactions

Label Transaction Feature

  • Users can label any transaction via the overflow menu dialog
  • Labels persist in SharedPreferences alongside existing payment history data
  • Labels display on both the Transaction Details screen and as a subtitle in the Activity list
  • Existing update methods preserve labels when modifying transaction state
  • Translations added for EN, PT, and ES

Activity Screen

  • Updated PaymentsHistoryAdapter with multi-view-type support (month headers + transaction items)
  • Improved transaction row layout with directional arrow icons and status badges
  • Added total balance to top of activity section

QA

  • Verify transaction details display correctly for all types: receive (Lightning, Cashu), send, and withdraw
  • Verify fiat amounts and exchange rates display using transaction-time price
  • Verify mint names (not raw URLs) display across all transaction types
  • Test labeling a transaction, closing and reopening — label should persist
  • Test removing a label (clear text and save)
  • Verify labels appear as subtitles in the Activity list
  • Test CSV export then re-import — SATS, VAT, Inventory fields should roundtrip correctly
  • Verify dark mode renders correctly on Transaction Details
  • Verify PT and ES translations for label-related strings

@github-project-automation github-project-automation bot moved this to Backlog in Numo Mar 15, 2026
@swedishfrenchpress swedishfrenchpress marked this pull request as ready for review March 15, 2026 22:58
@swedishfrenchpress
Copy link
Copy Markdown
Collaborator Author

@a1denvalu3 ready for review. i completed all the QA test in the PR description and updated the PR description to reflect the changes.

Comment on lines +234 to +251
PaymentHistoryEntry(
id = w.id,
token = w.token ?: "",
amount = -w.amountSats, // Negative = outgoing
date = Date(w.timestamp),
rawUnit = "sat",
rawEntryUnit = "sat",
enteredAmount = w.amountSats,
bitcoinPrice = null,
mintUrl = w.mintUrl,
paymentRequest = w.destination.ifBlank { w.lightningAddress },
rawStatus = when (w.status) {
WithdrawHistoryEntry.STATUS_COMPLETED -> PaymentHistoryEntry.STATUS_COMPLETED
WithdrawHistoryEntry.STATUS_PENDING -> PaymentHistoryEntry.STATUS_PENDING
else -> PaymentHistoryEntry.STATUS_COMPLETED
},
paymentType = PaymentHistoryEntry.TYPE_LIGHTNING,
)
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We're converting a withdrawal entry to a PaymentHistoryEntry very loosely. The answer would be to create a History entry that is a union between a payment history entry and a withdrawal history entry.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i ran your feedback through opus and pushed a fix in this commit: f3a09c8

i also tested the export functionality after building a version with this commit. it works. the csv export looks a bit cleaner: numo_activity_export_2026-03-16 (1).csv

image

@a1denvalu3
Copy link
Copy Markdown
Collaborator

Conflicts with the main branch

@swedishfrenchpress
Copy link
Copy Markdown
Collaborator Author

swedishfrenchpress commented Mar 16, 2026

@a1denvalu3 i found a glitch while testing. labels adding to withdrawals are not being saved. i'll work on a fix for this asap.

@swedishfrenchpress
Copy link
Copy Markdown
Collaborator Author

@a1denvalu3 i fixed the withdrawal label issue (c92e9a9) and pushed a small color update to the delete transaction action (6816279). I think this is ready for review.

I also tested the csv export. the labels are all showing for the transactions that have labels.

swedishfrenchpress and others added 19 commits March 18, 2026 13:39
The opencode.json config file was accidentally added to the repo.
This is a local tool configuration and should not be tracked.

Co-Authored-By: Claude Opus 4.6 <[email protected]>
…istoryEntry interface

Withdrawals were being shoehorned into PaymentHistoryEntry with fake/empty fields.
Now both types implement a shared HistoryEntry interface and are used directly
in the history list, CSV export, and transaction detail flows.
@a1denvalu3 a1denvalu3 force-pushed the fix/transaction-details branch from 6816279 to 4c50f96 Compare March 18, 2026 13:54
@a1denvalu3 a1denvalu3 merged commit 44677c3 into main Mar 18, 2026
3 checks passed
@github-project-automation github-project-automation bot moved this from Backlog to Done in Numo Mar 18, 2026
@a1denvalu3 a1denvalu3 deleted the fix/transaction-details branch March 18, 2026 21:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants