From a8b4a5e85645e665f37aafd6456055461b3ad568 Mon Sep 17 00:00:00 2001 From: Aaron Tulino Date: Mon, 18 Aug 2025 19:13:40 -0700 Subject: [PATCH] fix(mobile): sort local album by most recently modified (#21038) Sort with SQL instead Co-authored-by: Alex --- .../infrastructure/repositories/local_album.repository.dart | 3 ++- mobile/lib/providers/infrastructure/album.provider.dart | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/mobile/lib/infrastructure/repositories/local_album.repository.dart b/mobile/lib/infrastructure/repositories/local_album.repository.dart index db72dddc57..19495317d5 100644 --- a/mobile/lib/infrastructure/repositories/local_album.repository.dart +++ b/mobile/lib/infrastructure/repositories/local_album.repository.dart @@ -8,7 +8,7 @@ import 'package:immich_mobile/infrastructure/repositories/db.repository.dart'; import 'package:immich_mobile/utils/database.utils.dart'; import 'package:platform/platform.dart'; -enum SortLocalAlbumsBy { id, backupSelection, isIosSharedAlbum, name, assetCount } +enum SortLocalAlbumsBy { id, backupSelection, isIosSharedAlbum, name, assetCount, newestAsset } class DriftLocalAlbumRepository extends DriftDatabaseRepository { final Drift _db; @@ -40,6 +40,7 @@ class DriftLocalAlbumRepository extends DriftDatabaseRepository { SortLocalAlbumsBy.isIosSharedAlbum => OrderingTerm.asc(_db.localAlbumEntity.isIosSharedAlbum), SortLocalAlbumsBy.name => OrderingTerm.asc(_db.localAlbumEntity.name), SortLocalAlbumsBy.assetCount => OrderingTerm.desc(assetCount), + SortLocalAlbumsBy.newestAsset => OrderingTerm.desc(_db.localAlbumEntity.updatedAt), }); } query.orderBy(orderings); diff --git a/mobile/lib/providers/infrastructure/album.provider.dart b/mobile/lib/providers/infrastructure/album.provider.dart index da0f9bc9ce..029d912155 100644 --- a/mobile/lib/providers/infrastructure/album.provider.dart +++ b/mobile/lib/providers/infrastructure/album.provider.dart @@ -18,7 +18,7 @@ final localAlbumServiceProvider = Provider( ); final localAlbumProvider = FutureProvider>( - (ref) => LocalAlbumService(ref.watch(localAlbumRepository)).getAll(), + (ref) => LocalAlbumService(ref.watch(localAlbumRepository)).getAll(sortBy: {SortLocalAlbumsBy.newestAsset}), ); final localAlbumThumbnailProvider = FutureProvider.family(