This commit is contained in:
otsmr 2025-03-31 20:21:59 +02:00
parent 0a0559bd0c
commit b756682f7c
2 changed files with 20 additions and 27 deletions

View file

@ -41,9 +41,8 @@ Future tryTransmitMessages() async {
), ),
); );
} }
failed[key] = retransmit[key];
} else { } else {
// in case of error do nothing. As the message is not removed the app will try again when relaunched failed[key] = retransmit[key];
} }
} }
Box box = await getMediaStorage(); Box box = await getMediaStorage();

View file

@ -304,9 +304,6 @@ Future sendImage(
metadata.messageIds = {}; metadata.messageIds = {};
metadata.messageSendAt = DateTime.now(); metadata.messageSendAt = DateTime.now();
String stateId = prepareState.sha2Hash.toString();
States states = States(metadata: metadata, prepareState: prepareState);
// at this point it is safe inform the user about the process of sending the image.. // at this point it is safe inform the user about the process of sending the image..
for (final userId in metadata.userIds) { for (final userId in metadata.userIds) {
int? messageId = await twonlyDatabase.messagesDao.insertMessage( int? messageId = await twonlyDatabase.messagesDao.insertMessage(
@ -334,32 +331,33 @@ Future sendImage(
} }
} }
{ String stateId = prepareState.sha2Hash.toString();
Box storage = await getMediaStorage();
{
Map<String, dynamic> allMediaFiles = await getStoredMediaUploads();
allMediaFiles[stateId] = jsonEncode(
States(metadata: metadata, prepareState: prepareState).toJson(),
);
(await getMediaStorage()).put("mediaUploads", jsonEncode(allMediaFiles));
}
uploadMediaState(stateId, prepareState, metadata);
}
Future<Map<String, dynamic>> getStoredMediaUploads() async {
Box storage = await getMediaStorage();
String? mediaFilesJson = storage.get("mediaUploads"); String? mediaFilesJson = storage.get("mediaUploads");
Map<String, dynamic> allMediaFiles = {}; Map<String, dynamic> allMediaFiles = {};
if (mediaFilesJson != null) { if (mediaFilesJson != null) {
allMediaFiles = jsonDecode(mediaFilesJson); allMediaFiles = jsonDecode(mediaFilesJson);
} }
return allMediaFiles;
allMediaFiles[stateId] = jsonEncode(states.toJson());
storage.put("mediaUploads", jsonEncode(allMediaFiles));
}
uploadMediaState(stateId, prepareState, metadata);
} }
Future retransmitMediaFiles() async { Future retransmitMediaFiles() async {
Box storage = await getMediaStorage(); Map<String, dynamic> allMediaFiles = await getStoredMediaUploads();
String? mediaFilesJson = storage.get("mediaUploads"); if (allMediaFiles.isEmpty) return;
if (mediaFilesJson == null) {
return;
}
Map<String, dynamic> allMediaFiles = jsonDecode(mediaFilesJson);
bool allSuccess = true; bool allSuccess = true;
@ -400,14 +398,10 @@ Future<bool> uploadMediaState(
} }
{ {
Box storage = await getMediaStorage(); Map<String, dynamic> allMediaFiles = await getStoredMediaUploads();
if (allMediaFiles.isNotEmpty) {
String? mediaFilesJson = storage.get("mediaUploads");
if (mediaFilesJson != null) {
Map<String, dynamic> allMediaFiles = jsonDecode(mediaFilesJson);
allMediaFiles.remove(stateId); allMediaFiles.remove(stateId);
storage.put("mediaUploads", jsonEncode(allMediaFiles)); (await getMediaStorage()).put("mediaUploads", jsonEncode(allMediaFiles));
} }
} }