[mob][multipart] Minor refactor

This commit is contained in:
Neeraj Gupta 2024-05-08 15:42:47 +05:30
parent a49b5f55dd
commit 83ff0e9e38
2 changed files with 13 additions and 27 deletions

View file

@ -182,20 +182,6 @@ class UploadLocksDB {
);
}
// For multipart download tracking
Future<bool> doesExists(String localId, String hash, int collectionID) async {
final db = await instance.database;
final rows = await db.query(
_trackUploadTable.table,
where: '${_trackUploadTable.columnLocalID} = ?'
' AND ${_trackUploadTable.columnFileHash} = ?'
' AND ${_trackUploadTable.columnCollectionID} = ?',
whereArgs: [localId, hash, collectionID],
);
return rows.isNotEmpty;
}
Future<({String encryptedFileKey, String fileNonce, String keyNonce})>
getFileEncryptionData(
String localId,
@ -421,7 +407,7 @@ class UploadLocksDB {
});
}
Future<String> getEncryptedFileName(
Future<String?> getEncryptedFileName(
String localId,
String fileHash,
int collectionID,
@ -435,7 +421,7 @@ class UploadLocksDB {
whereArgs: [localId, fileHash, collectionID],
);
if (rows.isEmpty) {
throw Exception("No cached links found for $localId and $fileHash");
return null;
}
final row = rows.first;
return row[_trackUploadTable.columnEncryptedFileName] as String;

View file

@ -456,23 +456,23 @@ class FileUploader {
MediaUploadData? mediaUploadData;
mediaUploadData = await getUploadDataFromEnteFile(file);
var multipartEntryExists = mediaUploadData.hashData?.fileHash != null &&
await _uploadLocks.doesExists(
lockKey,
mediaUploadData.hashData!.fileHash!,
collectionID,
);
final String? existingMultipartEncFileName =
mediaUploadData.hashData?.fileHash != null
? await _uploadLocks.getEncryptedFileName(
lockKey,
mediaUploadData.hashData!.fileHash!,
collectionID,
)
: null;
bool multipartEntryExists = existingMultipartEncFileName != null;
final String uniqueID = const Uuid().v4().toString();
final encryptedFilePath = multipartEntryExists
? '$uploadPrefix${await _uploadLocks.getEncryptedFileName(
lockKey,
mediaUploadData.hashData!.fileHash!,
collectionID,
)}'
? '$uploadPrefix$existingMultipartEncFileName'
: '$uploadPrefix${uniqueID}_file.encrypted';
final encryptedThumbnailPath = '$uploadPrefix${uniqueID}_thumb.encrypted';
var uploadCompleted = false;
// This flag is used to decide whether to clear the iOS origin file cache
// or not.