feat(v1.8.0): IMPL_017 Checklist Separator & Sorting - Unchecked/Checked Separation

- Separator component: Visual divider between unchecked and checked items
  * Shows count of completed items with denominator styling
  * Prevents accidental drag across group boundaries
  * Smooth transitions with fade/slide animations

- Sorting logic: Maintains unchecked items first, checked items last
  * Stable sort: Relative order within groups is preserved
  * Auto-updates on item toggle and reordering
  * Validates drag moves to same-group only

- UI improvements: Enhanced LazyColumn animations
  * AnimatedVisibility for smooth item transitions
  * Added animateItem() for LazyColumn layout changes
  * Item elevation during drag state

- Comprehensive test coverage
  * 9 unit tests for sorting logic validation
  * Edge cases: empty lists, single items, mixed groups
  * Verifies order reassignment and group separation

Affected components:
- CheckedItemsSeparator: New UI component for visual separation
- NoteEditorViewModel: sortChecklistItems() method with validation
- NoteEditorScreen: Separator integration & animation setup
- ChecklistSortingTest: Complete test suite with 9 test cases
- Localizations: German & English plurals
This commit is contained in:
inventory69
2026-02-09 14:09:18 +01:00
parent 538a705def
commit 900dad76fe
6 changed files with 323 additions and 31 deletions

View File

@@ -505,4 +505,10 @@
<item quantity="one">%d Notiz synchronisiert</item>
<item quantity="other">%d Notizen synchronisiert</item>
</plurals>
<!-- v1.8.0 (IMPL_017): Checklist separator -->
<plurals name="checked_items_count">
<item quantity="one">%d erledigt</item>
<item quantity="other">%d erledigt</item>
</plurals>
</resources>