[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})> Future<({String encryptedFileKey, String fileNonce, String keyNonce})>
getFileEncryptionData( getFileEncryptionData(
String localId, String localId,
@@ -421,7 +407,7 @@ class UploadLocksDB {
}); });
} }
Future<String> getEncryptedFileName( Future<String?> getEncryptedFileName(
String localId, String localId,
String fileHash, String fileHash,
int collectionID, int collectionID,
@@ -435,7 +421,7 @@ class UploadLocksDB {
whereArgs: [localId, fileHash, collectionID], whereArgs: [localId, fileHash, collectionID],
); );
if (rows.isEmpty) { if (rows.isEmpty) {
throw Exception("No cached links found for $localId and $fileHash"); return null;
} }
final row = rows.first; final row = rows.first;
return row[_trackUploadTable.columnEncryptedFileName] as String; return row[_trackUploadTable.columnEncryptedFileName] as String;

View File

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