mirror of
https://github.com/ente-io/ente.git
synced 2025-08-08 07:28:26 +00:00
[mob][photos] Improve curation of album filter recommendation
This commit is contained in:
parent
468386ede6
commit
1258558be8
@ -1578,6 +1578,26 @@ class FilesDB {
|
||||
return collectionIDsOfFile;
|
||||
}
|
||||
|
||||
///Each collectionIDs in list aren't necessarily unique
|
||||
Future<List<int>> getAllCollectionIDsOfFiles(
|
||||
List<int> uploadedFileIDs,
|
||||
) async {
|
||||
final db = await instance.sqliteAsyncDB;
|
||||
final inParam = uploadedFileIDs.join(',');
|
||||
|
||||
final results = await db.getAll(
|
||||
'''
|
||||
SELECT $columnCollectionID FROM $filesTable
|
||||
WHERE $columnUploadedFileID IN ($inParam) AND $columnCollectionID != -1
|
||||
''',
|
||||
);
|
||||
final collectionIDsOfFiles = <int>[];
|
||||
for (var result in results) {
|
||||
collectionIDsOfFiles.add(result['collection_id'] as int);
|
||||
}
|
||||
return collectionIDsOfFiles;
|
||||
}
|
||||
|
||||
List<EnteFile> convertToFilesForIsolate(Map args) {
|
||||
final List<EnteFile> files = [];
|
||||
for (final result in args["result"]) {
|
||||
|
@ -1,3 +1,4 @@
|
||||
import "package:photos/db/files_db.dart";
|
||||
import "package:photos/models/file/file.dart";
|
||||
import "package:photos/models/search/hierarchical/album_filter.dart";
|
||||
import "package:photos/services/collections_service.dart";
|
||||
@ -6,29 +7,22 @@ import "package:photos/ui/viewer/gallery/state/search_filter_data_provider.dart"
|
||||
void curateAlbumFilters(
|
||||
SearchFilterDataProvider searchFilterDataProvider,
|
||||
List<EnteFile> files,
|
||||
) {
|
||||
) async {
|
||||
final albumFilters = <AlbumFilter>[];
|
||||
final idToOccurrence = <int, int>{};
|
||||
final uploadedIDs = <int>[];
|
||||
for (EnteFile file in files) {
|
||||
final collectionID = file.collectionID;
|
||||
if (collectionID == null) {
|
||||
continue;
|
||||
if (file.uploadedFileID != null && file.uploadedFileID != -1) {
|
||||
uploadedIDs.add(file.uploadedFileID!);
|
||||
}
|
||||
}
|
||||
final collectionIDsOfFiles =
|
||||
await FilesDB.instance.getAllCollectionIDsOfFiles(uploadedIDs);
|
||||
|
||||
for (int collectionID in collectionIDsOfFiles) {
|
||||
idToOccurrence[collectionID] = (idToOccurrence[collectionID] ?? 0) + 1;
|
||||
}
|
||||
|
||||
// final sortedIds = idToOccurrence.keys.toList()
|
||||
// ..sort((a, b) => idToOccurrence[b]!.compareTo(idToOccurrence[a]!));
|
||||
|
||||
// for (int id in sortedIds) {
|
||||
// final collection = CollectionsService.instance.getCollectionByID(id);
|
||||
// if (collection == null) {
|
||||
// continue;
|
||||
// }
|
||||
// albumFilters
|
||||
// .add(AlbumFilter(collectionID: id, albumName: collection.displayName));
|
||||
// }
|
||||
|
||||
for (int id in idToOccurrence.keys) {
|
||||
final collection = CollectionsService.instance.getCollectionByID(id);
|
||||
if (collection == null) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user