sort albums by lower-case natural sort ordering

This commit is contained in:
ashilkn 2022-09-16 10:15:32 +05:30
parent bb79a674ad
commit 2a63b21148
2 changed files with 10 additions and 6 deletions

View file

@ -3,6 +3,7 @@
import 'dart:async'; import 'dart:async';
import 'dart:io'; import 'dart:io';
import 'package:collection/collection.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:logging/logging.dart'; import 'package:logging/logging.dart';
import 'package:photos/core/configuration.dart'; import 'package:photos/core/configuration.dart';
@ -114,10 +115,10 @@ class _CollectionsGalleryWidgetState extends State<CollectionsGalleryWidget>
collectionsWithThumbnail.sort( collectionsWithThumbnail.sort(
(first, second) { (first, second) {
if (sortKey == AlbumSortKey.albumName) { if (sortKey == AlbumSortKey.albumName) {
// alphabetical ASC order return compareAsciiLowerCaseNatural(
return first.collection.name first.collection.name,
.toLowerCase() second.collection.name,
.compareTo(second.collection.name.toLowerCase()); );
} else if (sortKey == AlbumSortKey.newestPhoto) { } else if (sortKey == AlbumSortKey.newestPhoto) {
return second.thumbnail.creationTime return second.thumbnail.creationTime
.compareTo(first.thumbnail.creationTime); .compareTo(first.thumbnail.creationTime);

View file

@ -1,5 +1,6 @@
// @dart=2.9 // @dart=2.9
import 'package:collection/collection.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:logging/logging.dart'; import 'package:logging/logging.dart';
import 'package:photos/core/configuration.dart'; import 'package:photos/core/configuration.dart';
@ -197,8 +198,10 @@ class _CreateCollectionPageState extends State<CreateCollectionPage> {
} }
} }
collectionsWithThumbnail.sort((first, second) { collectionsWithThumbnail.sort((first, second) {
return (first.collection.name.toLowerCase() ?? "") return compareAsciiLowerCaseNatural(
.compareTo((second.collection.name.toLowerCase() ?? "")); first.collection.name ?? "",
second.collection.name ?? "",
);
}); });
return collectionsWithThumbnail; return collectionsWithThumbnail;
} }