| 07-task-sorting |
01 |
ui |
| flutter |
| riverpod |
| shared_preferences |
| sorting |
| localization |
|
| phase |
provides |
| 05-calendar-strip |
calendarDayProvider and CalendarDayState used by sort integration |
|
| phase |
provides |
| 06-task-history |
task domain model and CalendarTaskRow context |
|
|
| TaskSortOption enum (alphabetical, interval, effort) |
| SortPreferenceNotifier with SharedPreferences persistence |
| sortPreferenceProvider (keepAlive Riverpod provider) |
| calendarDayProvider with in-memory sort of dayTasks |
| tasksInRoomProvider with in-memory sort via stream.map |
| German localization strings |
| sortAlphabetical, sortInterval, sortEffort, sortLabel |
|
|
| 07-02-sort-ui |
| any phase using calendarDayProvider or tasksInRoomProvider |
|
| added |
patterns |
|
|
| SortPreferenceNotifier: sync default return, async _loadPersisted() — same pattern as ThemeNotifier |
| In-memory sort helper functions (_sortTasks, _sortTasksRaw) applied after DB stream emit |
| overdueTasks intentionally unsorted — only dayTasks sorted |
|
|
| created |
modified |
| lib/features/tasks/domain/task_sort_option.dart |
| lib/features/tasks/presentation/sort_preference_notifier.dart |
| lib/features/tasks/presentation/sort_preference_notifier.g.dart |
| test/features/tasks/presentation/sort_preference_notifier_test.dart |
|
| lib/features/home/presentation/calendar_providers.dart |
| lib/features/tasks/presentation/task_providers.dart |
| lib/l10n/app_de.arb |
| lib/l10n/app_localizations.dart |
| lib/l10n/app_localizations_de.dart |
|
|
| Default sort is alphabetical — continuity with existing A-Z SQL sort in CalendarDayList |
| overdueTasks are NOT sorted — they stay pinned at the top in existing order |
| Sort stored as string (enum.name) in SharedPreferences — not intEnum, so reordering enum is safe |
| SortPreferenceNotifier uses keepAlive: true — global preference should never be disposed |
|
| SortPreferenceNotifier pattern: sync default + async _loadPersisted() — matches ThemeNotifier |
| In-memory sort via stream.map in StreamProvider — DB SQL sort provides stable baseline, in-memory overrides |
|
|
4min |
2026-03-16 |