use remoteDb
This commit is contained in:
@@ -1509,26 +1509,6 @@ class FilesDB with SqlDbBase {
|
||||
return result;
|
||||
}
|
||||
|
||||
///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"]) {
|
||||
|
||||
@@ -16,4 +16,17 @@ extension CollectionFileRead on RemoteDB {
|
||||
);
|
||||
return rows.map((row) => row["collection_id"] as int).toSet();
|
||||
}
|
||||
|
||||
Future<Map<int, int>> getCollectionIdToFileCount(List<int> file_ids) async {
|
||||
final rows = await sqliteDB.getAll(
|
||||
"SELECT collection_id, COUNT(*) as count FROM collection_files WHERE file_id IN (${file_ids.join(",")}) GROUP BY collection_id",
|
||||
);
|
||||
final Map<int, int> collectionIdToFileCount = {};
|
||||
for (var row in rows) {
|
||||
final collectionId = row["collection_id"] as int;
|
||||
final count = row["count"] as int;
|
||||
collectionIdToFileCount[collectionId] = count;
|
||||
}
|
||||
return collectionIdToFileCount;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ import "package:photos/core/configuration.dart";
|
||||
import "package:photos/core/constants.dart";
|
||||
import "package:photos/db/files_db.dart";
|
||||
import "package:photos/db/ml/db.dart";
|
||||
import "package:photos/db/remote/read/collection_files.dart";
|
||||
import "package:photos/generated/l10n.dart";
|
||||
import "package:photos/models/file/extensions/file_props.dart";
|
||||
import "package:photos/models/file/file.dart";
|
||||
@@ -217,20 +218,13 @@ Future<List<AlbumFilter>> _curateAlbumFilters(
|
||||
List<EnteFile> files,
|
||||
) async {
|
||||
final albumFilters = <AlbumFilter>[];
|
||||
final idToOccurrence = <int, int>{};
|
||||
final uploadedIDs = <int>[];
|
||||
for (EnteFile file in files) {
|
||||
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 idToOccurrence = await remoteDB.getCollectionIdToFileCount(uploadedIDs);
|
||||
for (int id in idToOccurrence.keys) {
|
||||
final collection = CollectionsService.instance.getCollectionByID(id);
|
||||
if (collection == null) {
|
||||
|
||||
Reference in New Issue
Block a user