diff --git a/lib/src/providers/api/api.dart b/lib/src/providers/api/api.dart index 6773e02..9e3e25d 100644 --- a/lib/src/providers/api/api.dart +++ b/lib/src/providers/api/api.dart @@ -184,7 +184,7 @@ Future<(String, RetransmitMessage)?> encryptMessage( Future encryptAndSendMessageAsync(int? messageId, int userId, MessageJson msg, {PushKind? pushKind}) async { (String, RetransmitMessage)? stateData = - await encryptMessage(messageId, userId, msg); + await encryptMessage(messageId, userId, msg, pushKind: pushKind); if (stateData != null) { final (stateId, message) = stateData; sendRetransmitMessage(stateId, message); diff --git a/lib/src/providers/api/media_send.dart b/lib/src/providers/api/media_send.dart index 815b8e8..a5c4753 100644 --- a/lib/src/providers/api/media_send.dart +++ b/lib/src/providers/api/media_send.dart @@ -75,7 +75,10 @@ Future retryMediaUpload({int maxRetries = 3}) async { if (mediaFile.uploadTokens != null) { /// the file was already uploaded. /// notify the server to remove the upload + apiProvider.getDownloadTokens(mediaFile.uploadTokens!.uploadToken, 0); } + await twonlyDatabase.mediaUploadsDao + .deleteMediaUpload(mediaFile.mediaUploadId); Logger("media_send.dart").shout( "upload can be removed, the finalized function was never called..."); continue; @@ -90,9 +93,9 @@ Future retryMediaUpload({int maxRetries = 3}) async { }); if (maxRetries == 0) return; // retry upload - Future.delayed(const Duration(milliseconds: 1000), () { - retryMediaUpload(maxRetries: maxRetries - 1); - }); + // Future.delayed(const Duration(milliseconds: 1000), () { + // retryMediaUpload(maxRetries: maxRetries - 1); + // }); } Future initMediaUpload() async { @@ -406,7 +409,6 @@ Future handleMediaUpload(int mediaUploadId) async { final response = await http.Response.fromStream(streamedResponse); if (response.statusCode == 200) { - Logger("media_send.dart").info("Uploaded: $response"); if (response.body.length != 64) { Logger("media_send.dart").info("Got invalid upload token."); return false; diff --git a/lib/src/providers/api_provider.dart b/lib/src/providers/api_provider.dart index a60a4fc..5ab7716 100644 --- a/lib/src/providers/api_provider.dart +++ b/lib/src/providers/api_provider.dart @@ -187,17 +187,11 @@ class ApiProvider { Future> getRetransmission() async { final box = await getMediaStorage(); - Map? retransmit = box.get("rawbytes-to-retransmit"); - // Map retransmit = {}; - // if (retransmitJson != null) { - // try { - // retransmit = jsonDecode(retransmitJson); - // } catch (e) { - // Logger("api.dart").shout("Could not decode the rawbytes messages: $e"); - // await box.delete("rawbytes-to-retransmit"); - // } - // } - return retransmit ?? {}; + try { + return box.get("rawbytes-to-retransmit"); + } catch (e) { + return {}; + } } Future retransmitRawBytes() async { @@ -413,14 +407,15 @@ class ApiProvider { return await sendRequestSync(req); } - Future getDownloadTokens( - List uploadToken, int recipientsCount) async { + Future getDownloadTokens(List uploadToken, int recipientsCount, + {bool ensureRetransmission = false}) async { var get = ApplicationData_UploadDone() ..uploadToken = uploadToken ..recipientsCount = recipientsCount; var appData = ApplicationData()..uploaddone = get; var req = createClientToServerFromApplicationData(appData); - return await sendRequestSync(req); + return await sendRequestSync(req, + ensureRetransmission: ensureRetransmission); } Future downloadDone(List token) async {