multiple bug fixes

This commit is contained in:
otsmr 2025-05-28 23:57:15 +02:00
parent 0485e306e1
commit e7b48ecf63
3 changed files with 16 additions and 19 deletions

View file

@ -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);

View file

@ -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<int?> initMediaUpload() async {
@ -406,7 +409,6 @@ Future<bool> 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;

View file

@ -187,17 +187,11 @@ class ApiProvider {
Future<Map<String, dynamic>> getRetransmission() async {
final box = await getMediaStorage();
Map<String, dynamic>? retransmit = box.get("rawbytes-to-retransmit");
// Map<String, dynamic> 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<Result> getDownloadTokens(
List<int> uploadToken, int recipientsCount) async {
Future<Result> getDownloadTokens(List<int> 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<Result> downloadDone(List<int> token) async {