Refactor
This commit is contained in:
@@ -1,15 +1,12 @@
|
||||
import 'package:collection/collection.dart';
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:logging/logging.dart';
|
||||
import 'package:photo_manager/photo_manager.dart';
|
||||
import 'package:photos/db/files_db.dart';
|
||||
import 'package:photos/models/backup_status.dart';
|
||||
import 'package:photos/models/device_collection.dart';
|
||||
import 'package:photos/models/file/file.dart';
|
||||
import 'package:photos/models/file_load_result.dart';
|
||||
import 'package:photos/models/upload_strategy.dart';
|
||||
import 'package:sqflite/sqlite_api.dart';
|
||||
import 'package:tuple/tuple.dart';
|
||||
|
||||
extension DeviceFiles on FilesDB {
|
||||
static final Logger _logger = Logger("DeviceFilesDB");
|
||||
@@ -121,35 +118,6 @@ extension DeviceFiles on FilesDB {
|
||||
return;
|
||||
}
|
||||
|
||||
Future<FileLoadResult> getFilesInDeviceCollection(
|
||||
DeviceCollection deviceCollection,
|
||||
int? ownerID,
|
||||
int startTime,
|
||||
int endTime, {
|
||||
int? limit,
|
||||
bool? asc,
|
||||
}) async {
|
||||
final db = await sqliteAsyncDB;
|
||||
final order = (asc ?? false ? 'ASC' : 'DESC');
|
||||
final String rawQuery = '''
|
||||
SELECT *
|
||||
FROM ${FilesDB.filesTable}
|
||||
WHERE ${FilesDB.columnLocalID} IS NOT NULL AND
|
||||
${FilesDB.columnCreationTime} >= $startTime AND
|
||||
${FilesDB.columnCreationTime} <= $endTime AND
|
||||
(${FilesDB.columnOwnerID} IS NULL OR ${FilesDB.columnOwnerID} =
|
||||
$ownerID ) AND
|
||||
${FilesDB.columnLocalID} IN
|
||||
(SELECT id FROM device_files where path_id = '${deviceCollection.id}' )
|
||||
ORDER BY ${FilesDB.columnCreationTime} $order , ${FilesDB.columnModificationTime} $order
|
||||
''' +
|
||||
(limit != null ? ' limit $limit;' : ';');
|
||||
final results = await db.getAll(rawQuery);
|
||||
final files = convertToFiles(results);
|
||||
final dedupe = deduplicateByLocalID(files);
|
||||
return FileLoadResult(dedupe, files.length == limit);
|
||||
}
|
||||
|
||||
Future<BackedUpFileIDs> getBackedUpForDeviceCollection(
|
||||
String pathID,
|
||||
int ownerID,
|
||||
|
||||
@@ -734,23 +734,6 @@ class FilesDB with SqlDbBase {
|
||||
return FileLoadResult(filteredFiles, files.length == limit);
|
||||
}
|
||||
|
||||
List<EnteFile> deduplicateByLocalID(List<EnteFile> files) {
|
||||
final localIDs = <String>{};
|
||||
final List<EnteFile> deduplicatedFiles = [];
|
||||
for (final file in files) {
|
||||
final id = file.localID;
|
||||
if (id == null) {
|
||||
continue;
|
||||
}
|
||||
if (localIDs.contains(id)) {
|
||||
continue;
|
||||
}
|
||||
localIDs.add(id);
|
||||
deduplicatedFiles.add(file);
|
||||
}
|
||||
return deduplicatedFiles;
|
||||
}
|
||||
|
||||
Future<FileLoadResult> getFilesInCollection(
|
||||
int collectionID,
|
||||
int startTime,
|
||||
|
||||
@@ -196,13 +196,8 @@ class _BackupHeaderWidgetState extends State<BackupHeaderWidget> {
|
||||
}
|
||||
|
||||
Future<List<EnteFile>> _filesInDeviceCollection() async {
|
||||
return (await FilesDB.instance.getFilesInDeviceCollection(
|
||||
widget.deviceCollection,
|
||||
Configuration.instance.getUserID(),
|
||||
galleryLoadStartTime,
|
||||
galleryLoadEndTime,
|
||||
))
|
||||
.files;
|
||||
return await LocalImportService.instance
|
||||
.getAlbumFiles(widget.deviceCollection.id);
|
||||
}
|
||||
|
||||
Future<bool> _hasIgnoredFiles(
|
||||
|
||||
Reference in New Issue
Block a user