refactored room and file sorting to use direct comparators instead of temporary sort strings, removed obsolete 'sort' properties from API models, and improved file list sorting with case-insensitive name comparisons and null-safe date handling

This commit is contained in:
2026-05-17 00:27:17 +02:00
parent e5873f73b9
commit 215911cf29
8 changed files with 27 additions and 77 deletions
+6 -2
View File
@@ -21,12 +21,16 @@ class SortOptions {
SortOption.name: BetterSortOption(
displayName: 'Name',
icon: Icons.sort_by_alpha_outlined,
compare: (a, b) => a.name.compareTo(b.name),
compare: (a, b) => a.name.toLowerCase().compareTo(b.name.toLowerCase()),
),
SortOption.date: BetterSortOption(
displayName: 'Datum',
icon: Icons.history_outlined,
compare: (a, b) => a.modifiedAt!.compareTo(b.modifiedAt!),
compare: (a, b) {
final aMs = a.modifiedAt?.millisecondsSinceEpoch ?? 0;
final bMs = b.modifiedAt?.millisecondsSinceEpoch ?? 0;
return aMs.compareTo(bMs);
},
),
SortOption.size: BetterSortOption(
displayName: 'Größe',
@@ -100,7 +100,6 @@ class ShareChatPicker extends StatelessWidget {
if (rooms == null) return const SizedBox.shrink();
final sorted = rooms
.sortBy(
lastActivity: true,
favoritesToTop: talkSettings.sortFavoritesToTop,
unreadToTop: talkSettings.sortUnreadToTop,
)
-1
View File
@@ -162,7 +162,6 @@ class _ChatListViewState extends State<_ChatListView> {
.val()
.talkSettings;
final sorted = rooms.sortBy(
lastActivity: true,
favoritesToTop: talkSettings.sortFavoritesToTop,
unreadToTop: talkSettings.sortUnreadToTop,
);