From e248758ad9f71e9af107699a69efd9429210be49 Mon Sep 17 00:00:00 2001 From: Neeraj Gupta <254676+ua741@users.noreply.github.com> Date: Tue, 21 Jun 2022 18:13:24 +0530 Subject: [PATCH 1/3] Refactor ImportantItemsFilter logic --- .../filters/important_items_filter.dart | 24 +++++++------------ 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/lib/models/filters/important_items_filter.dart b/lib/models/filters/important_items_filter.dart index 4404f0928..ffd3b4dc4 100644 --- a/lib/models/filters/important_items_filter.dart +++ b/lib/models/filters/important_items_filter.dart @@ -10,25 +10,17 @@ class ImportantItemsFilter implements GalleryItemsFilter { @override bool shouldInclude(File file) { - if (_importantPaths.isEmpty) { - if (Platform.isAndroid) { - if (file.uploadedFileID != null) { - return true; - } - final String folder = basename(file.deviceFolder); - return folder == "Camera" || - folder == "Recents" || - folder == "DCIM" || - folder == "Download" || - folder == "Screenshot"; - } else { - return true; - } - } if (file.uploadedFileID != null) { return true; } - final folder = basename(file.deviceFolder); + final String folder = basename(file.deviceFolder); + if (_importantPaths.isEmpty && Platform.isAndroid) { + return folder == "Camera" || + folder == "Recents" || + folder == "DCIM" || + folder == "Download" || + folder == "Screenshot"; + } return _importantPaths.contains(folder); } } From 03ea93f2778c29b51619d475515f330100ec322e Mon Sep 17 00:00:00 2001 From: Neeraj Gupta <254676+ua741@users.noreply.github.com> Date: Tue, 21 Jun 2022 18:25:39 +0530 Subject: [PATCH 2/3] Hide hidden collections from memories --- lib/db/files_db.dart | 4 +++- lib/services/memories_service.dart | 6 +++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/lib/db/files_db.dart b/lib/db/files_db.dart index 174ab5267..c37552c01 100644 --- a/lib/db/files_db.dart +++ b/lib/db/files_db.dart @@ -580,6 +580,7 @@ class FilesDB { Future> getFilesCreatedWithinDurations( List> durations, + Set ignoredCollectionIDs, ) async { final db = await instance.database; String whereClause = ""; @@ -598,7 +599,8 @@ class FilesDB { where: whereClause, orderBy: '$columnCreationTime ASC', ); - return _convertToFiles(results); + final files = _convertToFiles(results); + return _deduplicatedAndFilterIgnoredFiles(files, ignoredCollectionIDs) } Future> getFilesToBeUploadedWithinFolders( diff --git a/lib/services/memories_service.dart b/lib/services/memories_service.dart index 0179029bb..047f55249 100644 --- a/lib/services/memories_service.dart +++ b/lib/services/memories_service.dart @@ -5,6 +5,7 @@ import 'package:photos/db/files_db.dart'; import 'package:photos/db/memories_db.dart'; import 'package:photos/models/filters/important_items_filter.dart'; import 'package:photos/models/memory.dart'; +import 'package:photos/services/collections_service.dart'; class MemoriesService extends ChangeNotifier { final _logger = Logger("MemoryService"); @@ -70,7 +71,10 @@ class MemoriesService extends ChangeNotifier { date.add(Duration(days: daysAfter)).microsecondsSinceEpoch; durations.add([startCreationTime, endCreationTime]); } - final files = await _filesDB.getFilesCreatedWithinDurations(durations); + final archivedCollectionIds = + CollectionsService.instance.getArchivedCollections(); + final files = await _filesDB.getFilesCreatedWithinDurations( + durations, archivedCollectionIds); final seenTimes = await _memoriesDB.getSeenTimes(); final List memories = []; final filter = ImportantItemsFilter(); From c54fe344ce1c08773cdee64a9dfc3797ac2ec1b6 Mon Sep 17 00:00:00 2001 From: Neeraj Gupta <254676+ua741@users.noreply.github.com> Date: Tue, 21 Jun 2022 18:43:16 +0530 Subject: [PATCH 3/3] avoid fetching hidden memories for memories (duh) --- lib/db/files_db.dart | 7 ++++--- lib/ui/memories_widget.dart | 4 ++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/lib/db/files_db.dart b/lib/db/files_db.dart index c37552c01..52e8d311a 100644 --- a/lib/db/files_db.dart +++ b/lib/db/files_db.dart @@ -580,10 +580,10 @@ class FilesDB { Future> getFilesCreatedWithinDurations( List> durations, - Set ignoredCollectionIDs, + Set ignoredCollectionIDs, ) async { final db = await instance.database; - String whereClause = ""; + String whereClause = "( "; for (int index = 0; index < durations.length; index++) { whereClause += "($columnCreationTime > " + durations[index][0].toString() + @@ -594,13 +594,14 @@ class FilesDB { whereClause += " OR "; } } + whereClause += ") AND $columnMMdVisibility = $kVisibilityVisible"; final results = await db.query( table, where: whereClause, orderBy: '$columnCreationTime ASC', ); final files = _convertToFiles(results); - return _deduplicatedAndFilterIgnoredFiles(files, ignoredCollectionIDs) + return _deduplicatedAndFilterIgnoredFiles(files, ignoredCollectionIDs); } Future> getFilesToBeUploadedWithinFolders( diff --git a/lib/ui/memories_widget.dart b/lib/ui/memories_widget.dart index e63fc7f92..34d225dd9 100644 --- a/lib/ui/memories_widget.dart +++ b/lib/ui/memories_widget.dart @@ -334,8 +334,8 @@ class _FullScreenMemoryState extends State { child: IconButton( icon: Icon( Icons.adaptive.share, - color: Colors.white, - ), //same for both themes + color: Colors.white, //same for both themes + ), onPressed: () { share(context, [file]); },