feat(v1.8.0): IMPL_020 Note & Checklist Sorting

- Add SortOption enum for note sorting (Updated, Created, Title, Type)
- Add SortDirection enum with ASCENDING/DESCENDING and toggle()
- Add ChecklistSortOption enum for in-editor sorting (Manual, Alphabetical, Unchecked/Checked First)
- Implement persistent note sort preferences in SharedPreferences
- Add SortDialog for main screen with sort option and direction selection
- Add ChecklistSortDialog for editor screen with current sort option state
- Implement sort logic in MainViewModel with combined sortedNotes StateFlow
- Implement sort logic in NoteEditorViewModel with auto-sort for MANUAL and UNCHECKED_FIRST
- Add separator display logic for MANUAL and UNCHECKED_FIRST sort options
- Add 16 sorting-related strings (English and German)
- Update Constants.kt with sort preference keys
- Update MainScreen.kt, NoteEditorScreen.kt with sort UI integration
This commit is contained in:
inventory69
2026-02-10 11:30:06 +01:00
parent 539987f2ed
commit 96c819b154
13 changed files with 613 additions and 16 deletions

View File

@@ -86,6 +86,25 @@
<string name="sync_phase_completed">Sync abgeschlossen</string>
<string name="sync_phase_error">Sync fehlgeschlagen</string>
<!-- 🔀 v1.8.0 (IMPL_020): Sortierung: Notizliste -->
<string name="sort_notes">Notizen sortieren</string>
<string name="sort_ascending">Aufsteigend</string>
<string name="sort_descending">Absteigend</string>
<string name="sort_by_updated">Zuletzt bearbeitet</string>
<string name="sort_by_created">Erstelldatum</string>
<string name="sort_by_name">Name</string>
<string name="sort_by_type">Typ</string>
<string name="close">Schließen</string>
<!-- 🔀 v1.8.0 (IMPL_020): Sortierung: Checkliste -->
<string name="sort_checklist">Checkliste sortieren</string>
<string name="sort_checklist_manual">Manuell</string>
<string name="sort_checklist_alpha_asc">A → Z</string>
<string name="sort_checklist_alpha_desc">Z → A</string>
<string name="sort_checklist_unchecked_first">Unerledigte zuerst</string>
<string name="sort_checklist_checked_first">Erledigte zuerst</string>
<string name="apply">Anwenden</string>
<!-- ============================= -->
<!-- DELETE DIALOGS -->
<!-- ============================= -->