1
0
mirror of https://gitlab.com/comunic/comunicmobile synced 2025-06-19 08:15:16 +00:00

Handles messages update events

This commit is contained in:
2020-04-19 14:16:35 +02:00
parent 2746623b8d
commit 88ba2d303e
6 changed files with 31 additions and 38 deletions

View File

@ -342,9 +342,7 @@ class ConversationsHelper {
if (response.code != 200) return false;
// Update the message content locally
return await _conversationMessagesDatabaseHelper.updateMessageContent(
id: id, newContent: newContent);
return true;
}
/// Delete permanently a message specified by its [id]

View File

@ -2,7 +2,6 @@ import 'package:comunic/helpers/database/database_contract.dart';
import 'package:comunic/helpers/database/model_database_helper.dart';
import 'package:comunic/lists/conversation_messages_list.dart';
import 'package:comunic/models/conversation_message.dart';
import 'package:meta/meta.dart';
/// Conversation messages database helper
///
@ -35,26 +34,4 @@ class ConversationMessagesDatabaseHelper
finalList.addAll(list);
return finalList;
}
/// Update the content of a message
Future<bool> updateMessageContent({
@required int id,
@required String newContent,
}) async {
assert(id != null);
assert(newContent != null);
final message = await get(id);
if(message == null)
return false;
// Update the conversation message using the map
final map = message.toMap();
map[ConversationsMessagesTableContract.C_MESSAGE] = newContent;
await insertOrUpdate(ConversationMessage.fromMap(map));
return true; // Success
}
}

View File

@ -53,6 +53,13 @@ class NewConversationMessageEvent {
NewConversationMessageEvent(this.msg);
}
/// Updated conversation message
class UpdatedConversationMessageEvent {
final ConversationMessage msg;
UpdatedConversationMessageEvent(this.msg);
}
class EventsHelper {
static EventBus _mgr = EventBus();

View File

@ -144,6 +144,12 @@ class WebSocketHelper {
ConversationsHelper.apiToConversationMessage(msg.data)));
break;
// Update conversation message content
case "updated_conv_message":
EventsHelper.emit(UpdatedConversationMessageEvent(
ConversationsHelper.apiToConversationMessage(msg.data)));
break;
default:
throw Exception("Unknown message type: ${msg.title}");
}