This commit is contained in:
Neeraj Gupta 2023-12-14 08:58:12 +05:30
parent 82cdd9a7a2
commit 08930a4e69
2 changed files with 13 additions and 13 deletions

View file

@ -4,13 +4,13 @@ import 'package:photos/models/file/file.dart';
import 'package:photos/services/collections_service.dart';
class DuplicateFilesResponse {
final List<DuplicateItems> duplicates;
DuplicateFilesResponse(this.duplicates);
final List<FileWithSameSize> sameSizeFiles;
DuplicateFilesResponse(this.sameSizeFiles);
factory DuplicateFilesResponse.fromMap(Map<String, dynamic> map) {
return DuplicateFilesResponse(
List<DuplicateItems>.from(
map['duplicates']?.map((x) => DuplicateItems.fromMap(x)),
List<FileWithSameSize>.from(
map['duplicates']?.map((x) => FileWithSameSize.fromMap(x)),
),
);
}
@ -19,23 +19,23 @@ class DuplicateFilesResponse {
DuplicateFilesResponse.fromMap(json.decode(source));
@override
String toString() => 'DuplicateFiles(duplicates: $duplicates)';
String toString() => 'DuplicateFiles(sameSizeFiles: $sameSizeFiles)';
}
class DuplicateItems {
class FileWithSameSize {
final List<int> fileIDs;
final int size;
DuplicateItems(this.fileIDs, this.size);
FileWithSameSize(this.fileIDs, this.size);
factory DuplicateItems.fromMap(Map<String, dynamic> map) {
return DuplicateItems(
factory FileWithSameSize.fromMap(Map<String, dynamic> map) {
return FileWithSameSize(
List<int>.from(map['fileIDs']),
map['size'],
);
}
factory DuplicateItems.fromJson(String source) =>
DuplicateItems.fromMap(json.decode(source));
factory FileWithSameSize.fromJson(String source) =>
FileWithSameSize.fromMap(json.decode(source));
@override
String toString() => 'Duplicates(fileIDs: $fileIDs, size: $size)';

View file

@ -26,13 +26,13 @@ class DeduplicationService {
}
final DuplicateFilesResponse dupes = await _fetchDuplicateFileIDs();
final ids = <int>[];
for (final dupe in dupes.duplicates) {
for (final dupe in dupes.sameSizeFiles) {
ids.addAll(dupe.fileIDs);
}
final fileMap = await FilesDB.instance.getFilesFromIDs(ids);
final result = <DuplicateFiles>[];
final missingFileIDs = <int>[];
for (final dupe in dupes.duplicates) {
for (final dupe in dupes.sameSizeFiles) {
final files = <EnteFile>[];
for (final id in dupe.fileIDs) {
final file = fileMap[id];