[mob][photos] Remove duplicates and don't show files in ignored collections in Hierarchical search gallery

This commit is contained in:
ashilkn
2024-10-24 11:52:44 +05:30
parent 2ec911da06
commit d45cb08fec
2 changed files with 17 additions and 1 deletions

View File

@@ -1516,6 +1516,8 @@ class FilesDB {
Future<List<EnteFile>> getFilesFromIDs(
List<int> ids, {
bool asc = false,
bool dedupeByUploadId = false,
Set<int> collectionsToIgnore = const {},
}) async {
final order = (asc ? 'ASC' : 'DESC');
if (ids.isEmpty) {
@@ -1531,7 +1533,17 @@ class FilesDB {
'SELECT * FROM $filesTable WHERE $columnUploadedFileID IN ($inParam) ORDER BY $columnCreationTime $order',
);
return convertToFiles(results);
final files = convertToFiles(results);
final result = await applyDBFilters(
files,
DBFilterOptions(
ignoredCollectionIDs: collectionsToIgnore,
dedupeUploadID: dedupeByUploadId,
),
);
return result;
}
Future<Map<int, EnteFile>> getFilesFromGeneratedIDs(List<int> ids) async {

View File

@@ -35,6 +35,8 @@ Future<List<EnteFile>> getFilteredFiles(
final filteredFiles = <EnteFile>[];
final files = await SearchService.instance.getAllFiles();
final resultsNeverComputedFilters = <HierarchicalSearchFilter>[];
final ignoredCollections =
CollectionsService.instance.archivedOrHiddenCollectionIds();
logger.info("Getting filtered files for Filters: $filters");
for (HierarchicalSearchFilter filter in filters) {
@@ -101,6 +103,8 @@ Future<List<EnteFile>> getFilteredFiles(
filteredFiles.addAll(
await FilesDB.instance.getFilesFromIDs(
filteredUploadedIDs.toList(),
dedupeByUploadId: true,
collectionsToIgnore: ignoredCollections,
),
);
} catch (e) {