浏览代码

sort clubbed dedepue files in alphabetical order of collection names

ashilkn 2 年之前
父节点
当前提交
145b998294
共有 3 个文件被更改,包括 21 次插入4 次删除
  1. 15 1
      lib/models/duplicate_files.dart
  2. 4 0
      lib/services/collections_service.dart
  3. 2 3
      lib/ui/tools/deduplicate_page.dart

+ 15 - 1
lib/models/duplicate_files.dart

@@ -1,6 +1,7 @@
 import 'dart:convert';
 
 import 'package:photos/models/file.dart';
+import 'package:photos/services/collections_service.dart';
 
 class DuplicateFilesResponse {
   final List<DuplicateItems> duplicates;
@@ -43,9 +44,22 @@ class DuplicateItems {
 class DuplicateFiles {
   final List<File> files;
   final int size;
+  static final collectionsService = CollectionsService.instance;
 
-  DuplicateFiles(this.files, this.size);
+  DuplicateFiles(this.files, this.size) {
+    sortByCollectionName();
+  }
 
   @override
   String toString() => 'DuplicateFiles(files: $files, size: $size)';
+
+  sortByCollectionName() {
+    files.sort((first, second) {
+      final firstName =
+          collectionsService.getCollectionNameByID(first.collectionID);
+      final secondName =
+          collectionsService.getCollectionNameByID(second.collectionID);
+      return firstName.compareTo(secondName);
+    });
+  }
 }

+ 4 - 0
lib/services/collections_service.dart

@@ -787,6 +787,10 @@ class CollectionsService {
     Bus.instance.fire(CollectionUpdatedEvent(toCollectionID, files));
   }
 
+  String getCollectionNameByID(int collectionID) {
+    return getCollectionByID(collectionID).name;
+  }
+
   void _validateMoveRequest(
     int toCollectionID,
     int fromCollectionID,

+ 2 - 3
lib/ui/tools/deduplicate_page.dart

@@ -163,7 +163,7 @@ class _DeduplicatePageState extends State<DeduplicatePage> {
                 }
               }
               return Padding(
-                padding: const EdgeInsets.only(top: 10, bottom: 10),
+                padding: const EdgeInsets.symmetric(vertical: 8),
                 child: _getGridView(
                   _duplicates[index - kHeaderRowCount],
                   index - kHeaderRowCount,
@@ -457,8 +457,7 @@ class _DeduplicatePageState extends State<DeduplicatePage> {
             padding: const EdgeInsets.only(right: 2),
             child: Text(
               CollectionsService.instance
-                  .getCollectionByID(file.collectionID)
-                  .name,
+                  .getCollectionNameByID(file.collectionID),
               style: Theme.of(context).textTheme.caption.copyWith(fontSize: 12),
               overflow: TextOverflow.ellipsis,
             ),