Skip to content

Expense screen UI improvements and animations - #191

Open
JolandaVerhoef wants to merge 4 commits into
mainfrom
feature/expenses-ui-polish
Open

JolandaVerhoef wants to merge 4 commits into
mainfrom
feature/expenses-ui-polish

Conversation

@JolandaVerhoef

Copy link
Copy Markdown
Collaborator
  • Embed shimmer loading item inside LazyColumn to eliminate layout popping
  • Add Modifier.animateItem() on expense cards for smooth item insertions and removals
  • Add animated total spent counter with animateFloatAsState
  • Add receipt scanning shortcuts (top app bar action & recent expenses header pill)
  • Expand expense category matching to recognize common travel, dining, and lodging synonyms

- Embed shimmer loading item inside LazyColumn to eliminate layout popping
- Add Modifier.animateItem() on expense cards for smooth item insertions and removals
- Add animated total spent counter with animateFloatAsState
- Add receipt scanning shortcuts (top app bar action & recent expenses header pill)
- Expand expense category matching to recognize common travel, dining, and lodging synonyms
… and animation polish

- Isolate animated total spent counter into TotalSpentDisplay to prevent full-screen recompositions
- Memoize totalSpent calculation with remember(expenses)
- Remember onScanReceiptClick callback and guard against isProcessing state
- Disable TopAppBar scan action and header scan pill while processing is active
- Use Surface(onClick) on header scan pill for bounded ripples and accessibility
- Add Modifier.animateItem() to ShimmerExpenseItem for smooth entry and exit transitions
- Trim category string during normalization
…unch guard, and add unit tests

- Remove explicit tint on TopAppBar scan icon to let IconButton disabled state manage opacity
- Add in-flight camera launch guard to prevent race condition on rapid double-tap
- Add disabled container and content color handling to header scan Surface pill
- Cache LazyColumn fading edge gradient with drawWithCache to avoid allocations per frame
- Migrate deprecated centerAlignedTopAppBarColors to topAppBarColors
- Add unit tests for CurrencyConverter (conversions, fallback, case-insensitivity, currency symbols)
- Add unit tests for ManageExpensesViewModel (filtering, insert, delete, capability delegation)
…ys, and assistant scan guard

- Trim currency code in CurrencyConverter.convertToUsd and getSymbol
- Disable scan buttons while isAssistantProcessingExpense is active
- Key mutableStateOf in ExpenseDetailSheet by expense.id to prevent stale fields on updates
- Add unit tests for CurrencyConverter whitespace handling
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant