diff --git a/mobile/lib/services/machine_learning/face_ml/face_clustering/face_clustering_service.dart b/mobile/lib/services/machine_learning/face_ml/face_clustering/face_clustering_service.dart index 1b8d9c3bd..1a635b0f0 100644 --- a/mobile/lib/services/machine_learning/face_ml/face_clustering/face_clustering_service.dart +++ b/mobile/lib/services/machine_learning/face_ml/face_clustering/face_clustering_service.dart @@ -498,19 +498,8 @@ class FaceClusteringService { } } - // Sort the faceInfos based on fileCreationTime, in ascending order, so oldest faces are first if (fileIDToCreationTime != null) { - faceInfos.sort((a, b) { - if (a.fileCreationTime == null && b.fileCreationTime == null) { - return 0; - } else if (a.fileCreationTime == null) { - return 1; - } else if (b.fileCreationTime == null) { - return -1; - } else { - return a.fileCreationTime!.compareTo(b.fileCreationTime!); - } - }); + _sortFaceInfosOnCreationTime(faceInfos); } // Sort the faceInfos such that the ones with null clusterId are at the end @@ -796,19 +785,8 @@ class FaceClusteringService { ); } - // Sort the faceInfos based on fileCreationTime, in ascending order, so oldest faces are first if (fileIDToCreationTime != null) { - faceInfos.sort((a, b) { - if (a.fileCreationTime == null && b.fileCreationTime == null) { - return 0; - } else if (a.fileCreationTime == null) { - return 1; - } else if (b.fileCreationTime == null) { - return -1; - } else { - return a.fileCreationTime!.compareTo(b.fileCreationTime!); - } - }); + _sortFaceInfosOnCreationTime(faceInfos); } if (faceInfos.isEmpty) { @@ -996,19 +974,8 @@ class FaceClusteringService { ); } - // Sort the faceInfos based on fileCreationTime, in ascending order, so oldest faces are first if (fileIDToCreationTime != null) { - faceInfos.sort((a, b) { - if (a.fileCreationTime == null && b.fileCreationTime == null) { - return 0; - } else if (a.fileCreationTime == null) { - return 1; - } else if (b.fileCreationTime == null) { - return -1; - } else { - return a.fileCreationTime!.compareTo(b.fileCreationTime!); - } - }); + _sortFaceInfosOnCreationTime(faceInfos); } // Get the embeddings @@ -1027,3 +994,20 @@ class FaceClusteringService { return clusteredFaceIDs; } } + +/// Sort the faceInfos based on fileCreationTime, in descending order, so newest faces are first +void _sortFaceInfosOnCreationTime( + List faceInfos, +) { + faceInfos.sort((b, a) { + if (a.fileCreationTime == null && b.fileCreationTime == null) { + return 0; + } else if (a.fileCreationTime == null) { + return 1; + } else if (b.fileCreationTime == null) { + return -1; + } else { + return a.fileCreationTime!.compareTo(b.fileCreationTime!); + } + }); +} diff --git a/mobile/lib/services/machine_learning/face_ml/face_ml_service.dart b/mobile/lib/services/machine_learning/face_ml/face_ml_service.dart index 9bfa54f1e..47464b8e9 100644 --- a/mobile/lib/services/machine_learning/face_ml/face_ml_service.dart +++ b/mobile/lib/services/machine_learning/face_ml/face_ml_service.dart @@ -590,8 +590,8 @@ class FaceMlService { allFaceInfoForClustering.add(faceInfo); } } - // sort the embeddings based on file creation time, oldest first - allFaceInfoForClustering.sort((a, b) { + // sort the embeddings based on file creation time, newest first + allFaceInfoForClustering.sort((b, a) { return fileIDToCreationTime[a.fileID]! .compareTo(fileIDToCreationTime[b.fileID]!); });