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

View file

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