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 -->
<!-- ============================= -->

View File

@@ -88,6 +88,25 @@
<string name="sync_phase_checking">Checking server…</string>
<string name="sync_phase_uploading">Uploading…</string>
<string name="sync_phase_downloading">Downloading…</string>
<!-- 🔀 v1.8.0 (IMPL_020): Sort: Note List -->
<string name="sort_notes">Sort notes</string>
<string name="sort_ascending">Ascending</string>
<string name="sort_descending">Descending</string>
<string name="sort_by_updated">Last modified</string>
<string name="sort_by_created">Date created</string>
<string name="sort_by_name">Name</string>
<string name="sort_by_type">Type</string>
<string name="close">Close</string>
<!-- 🔀 v1.8.0 (IMPL_020): Sort: Checklist -->
<string name="sort_checklist">Sort checklist</string>
<string name="sort_checklist_manual">Manual</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">Unchecked first</string>
<string name="sort_checklist_checked_first">Checked first</string>
<string name="apply">Apply</string>
<string name="sync_phase_importing_markdown">Importing Markdown…</string>
<string name="sync_phase_saving">Saving…</string>
<string name="sync_phase_completed">Sync complete</string>