Skip to content

Latest commit

 

History

History
56 lines (36 loc) · 1.77 KB

task_outline.md

File metadata and controls

56 lines (36 loc) · 1.77 KB

Export to CSV Feature Implementation

1. Update Data Model and ViewModel

  • 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

2. UI Updates

  • 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

3. CSV Export Functionality

  • Create a CsvExporter utility class
  • Implement CSV generation logic
  • Add functionality to save the CSV file to device storage

4. User Interaction

  • 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

5. Navigation and Screen Management

  • Decide on navigation approach (separate screen vs. in-place UI changes)
  • Implement chosen navigation method

6. Testing

  • Unit tests for CSV generation logic
  • UI tests for selection and export functionality

7. Permissions and Error Handling

  • Implement necessary permissions for file writing
  • Add error handling and user feedback for export process

8. Localization

  • Add new strings for CSV export feature to localization files

9. Documentation

  • Update README with new CSV export feature
  • Add in-code documentation for new classes and methods

Discussion Points

  • 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