From 9600b26359faf12d79ebdf0cb63b2b2d6dadf23d Mon Sep 17 00:00:00 2001 From: laurenspriem Date: Thu, 21 Aug 2025 15:10:40 +0530 Subject: [PATCH] More stable sort --- .../lib/ui/tools/similar_images_page.dart | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/mobile/apps/photos/lib/ui/tools/similar_images_page.dart b/mobile/apps/photos/lib/ui/tools/similar_images_page.dart index c1222f7fcb..01a4434f0c 100644 --- a/mobile/apps/photos/lib/ui/tools/similar_images_page.dart +++ b/mobile/apps/photos/lib/ui/tools/similar_images_page.dart @@ -424,12 +424,24 @@ class _SimilarImagesPageState extends State { _similarFilesList.sort((a, b) => b.totalSize.compareTo(a.totalSize)); break; case SortKey.distanceAsc: - _similarFilesList - .sort((a, b) => a.furthestDistance.compareTo(b.furthestDistance)); + _similarFilesList.sort((a, b) { + final distanceComparison = + a.furthestDistance.compareTo(b.furthestDistance); + if (distanceComparison != 0) { + return distanceComparison; + } + return b.totalSize.compareTo(a.totalSize); + }); break; case SortKey.distanceDesc: - _similarFilesList - .sort((a, b) => b.furthestDistance.compareTo(a.furthestDistance)); + _similarFilesList.sort((a, b) { + final distanceComparison = + b.furthestDistance.compareTo(a.furthestDistance); + if (distanceComparison != 0) { + return distanceComparison; + } + return b.totalSize.compareTo(a.totalSize); + }); break; case SortKey.count: _similarFilesList