1
0
mirror of https://gitlab.com/comunic/comunicmobile synced 2025-07-03 15:13:29 +00:00

Cache conversation messages

This commit is contained in:
2019-04-27 08:42:27 +02:00
parent eb5b6d6fae
commit c9eb57586f
5 changed files with 93 additions and 14 deletions

View File

@ -1,3 +1,4 @@
import 'package:comunic/helpers/database/conversation_messages_database_helper.dart';
import 'package:comunic/helpers/database/conversations_database_helper.dart';
import 'package:comunic/helpers/users_helper.dart';
import 'package:comunic/lists/conversation_messages_list.dart';
@ -19,6 +20,8 @@ enum SendMessageResult { SUCCESS, MESSAGE_REJECTED, FAILED }
class ConversationsHelper {
final ConversationsDatabaseHelper _conversationsDatabaseHelper =
ConversationsDatabaseHelper();
final ConversationMessagesDatabaseHelper _conversationMessagesDatabaseHelper =
ConversationMessagesDatabaseHelper();
/// Download the list of conversations from the server
Future<ConversationsList> downloadList() async {
@ -152,12 +155,16 @@ class ConversationsHelper {
response.getArray().forEach((f) {
list.add(ConversationMessage(
id: f["ID"],
conversationID: conversationID,
userID: f["ID_user"],
timeInsert: f["time_insert"],
message: f["message"],
imageURL: f["image_path"]));
});
// Save messages in the cache
_conversationMessagesDatabaseHelper.insertOrUpdateAll(list);
return list;
}
@ -173,20 +180,18 @@ class ConversationsHelper {
);
//Check for image
if(message.hasImage)
request.addFile("image", message.image);
if (message.hasImage) request.addFile("image", message.image);
//Send the message
APIResponse response;
if(!message.hasImage)
if (!message.hasImage)
response = await request.exec();
else
response = await request.execWithFiles();
if(response.code == 401)
if (response.code == 401)
return SendMessageResult.MESSAGE_REJECTED;
else if(response.code != 200)
return SendMessageResult.FAILED;
else if (response.code != 200) return SendMessageResult.FAILED;
return SendMessageResult.SUCCESS;
}