- Create an enum for selection modes (e.g.,
NONE
,DELETE
,EXPORT_CSV
) - Update
MainViewModel
to handle the new selection mode - Add a method to get selected transactions for CSV export
- Modify
MainScreen
to handle the new selection mode - Implement a FloatingActionButton for CSV export when transactions are selected
- Add UI elements for selecting all transactions in a given month or day
- Create a
CsvExporter
utility class - Implement CSV generation logic
- Add functionality to save the CSV file to device storage
- Implement long-press gesture to enter selection mode
- Add checkbox UI to
TransactionItem
for selection - Create a dialog or bottom sheet for export options and confirmation
- Decide on navigation approach (separate screen vs. in-place UI changes)
- Implement chosen navigation method
- Unit tests for CSV generation logic
- UI tests for selection and export functionality
- Implement necessary permissions for file writing
- Add error handling and user feedback for export process
- Add new strings for CSV export feature to localization files
- Update README with new CSV export feature
- Add in-code documentation for new classes and methods
- Navigation approach: Separate screen vs. in-place UI changes
- Long-tap behavior: Trigger CSV export mode or default to delete mode
- UI design for selection indicators and export button
- Format and content of exported CSV file