From 18a22c801467f0e54d00d12f5bd54fe9a6d99ce7 Mon Sep 17 00:00:00 2001 From: ashilkn Date: Thu, 3 Oct 2024 07:51:15 +0530 Subject: [PATCH] [mob][photos] Handle and log failures in curating and applying filters --- .../lib/utils/hierarchical_search_util.dart | 63 +++++++++++-------- 1 file changed, 36 insertions(+), 27 deletions(-) diff --git a/mobile/lib/utils/hierarchical_search_util.dart b/mobile/lib/utils/hierarchical_search_util.dart index bcd9f88c92..7d5fd7e562 100644 --- a/mobile/lib/utils/hierarchical_search_util.dart +++ b/mobile/lib/utils/hierarchical_search_util.dart @@ -1,3 +1,4 @@ +import "package:logging/logging.dart"; import "package:photos/db/files_db.dart"; import "package:photos/models/file/file.dart"; import "package:photos/models/file/file_type.dart"; @@ -14,32 +15,36 @@ Future> getFilteredFiles( final filteredFiles = []; final files = await SearchService.instance.getAllFiles(); - for (EnteFile file in files) { - if (file.uploadedFileID == null || file.uploadedFileID == -1) { - continue; - } - for (HierarchicalSearchFilter filter in filters) { - if (filter.isMatch(file)) { - filter.matchedUploadedIDs.add(file.uploadedFileID!); + try { + for (EnteFile file in files) { + if (file.uploadedFileID == null || file.uploadedFileID == -1) { + continue; + } + for (HierarchicalSearchFilter filter in filters) { + if (filter.isMatch(file)) { + filter.matchedUploadedIDs.add(file.uploadedFileID!); + } } } - } - Set filteredUploadedIDs = {}; - for (int i = 0; i < filters.length; i++) { - if (i == 0) { - filteredUploadedIDs = - filteredUploadedIDs.union(filters[i].getMatchedUploadedIDs()); - } else { - filteredUploadedIDs = - filteredUploadedIDs.intersection(filters[i].getMatchedUploadedIDs()); + Set filteredUploadedIDs = {}; + for (int i = 0; i < filters.length; i++) { + if (i == 0) { + filteredUploadedIDs = + filteredUploadedIDs.union(filters[i].getMatchedUploadedIDs()); + } else { + filteredUploadedIDs = filteredUploadedIDs + .intersection(filters[i].getMatchedUploadedIDs()); + } } - } - final filteredIDtoFile = - await FilesDB.instance.getFilesFromIDs(filteredUploadedIDs.toList()); - for (int id in filteredIDtoFile.keys) { - filteredFiles.add(filteredIDtoFile[id]!); + final filteredIDtoFile = + await FilesDB.instance.getFilesFromIDs(filteredUploadedIDs.toList()); + for (int id in filteredIDtoFile.keys) { + filteredFiles.add(filteredIDtoFile[id]!); + } + } catch (e) { + Logger("HierarchicalSearchUtil").severe("Failed to get filtered files: $e"); } return filteredFiles; @@ -49,13 +54,17 @@ void curateFilters( SearchFilterDataProvider searchFilterDataProvider, List files, ) async { - final albumFilters = - await _curateAlbumFilters(searchFilterDataProvider, files); - final fileTypeFilters = - _curateFileTypeFilters(searchFilterDataProvider, files); + try { + final albumFilters = + await _curateAlbumFilters(searchFilterDataProvider, files); + final fileTypeFilters = + _curateFileTypeFilters(searchFilterDataProvider, files); - searchFilterDataProvider - .clearAndAddRecommendations([...albumFilters, ...fileTypeFilters]); + searchFilterDataProvider + .clearAndAddRecommendations([...albumFilters, ...fileTypeFilters]); + } catch (e) { + Logger("HierarchicalSearchUtil").severe("Failed to curate filters: $e"); + } } Future> _curateAlbumFilters(