mirror of
				https://gitlab.com/comunic/comunicmobile
				synced 2025-11-04 12:14:11 +00:00 
			
		
		
		
	Handles new messages events
This commit is contained in:
		@@ -227,10 +227,7 @@ class ConversationsHelper {
 | 
			
		||||
    ConversationMessagesList list = ConversationMessagesList();
 | 
			
		||||
    response.getArray().forEach((f) {
 | 
			
		||||
      list.add(
 | 
			
		||||
        _apiToConversationMessage(
 | 
			
		||||
          conversationID: conversationID,
 | 
			
		||||
          map: f,
 | 
			
		||||
        ),
 | 
			
		||||
        apiToConversationMessage(f),
 | 
			
		||||
      );
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
@@ -331,6 +328,11 @@ class ConversationsHelper {
 | 
			
		||||
    return SendMessageResult.SUCCESS;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /// Save / Update a  message into the database
 | 
			
		||||
  Future<void> saveMessage(ConversationMessage msg) async {
 | 
			
		||||
    await _conversationMessagesDatabaseHelper.insertOrUpdate(msg);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /// Update a message content
 | 
			
		||||
  Future<bool> updateMessage(int id, String newContent) async {
 | 
			
		||||
    final response = await APIRequest(
 | 
			
		||||
@@ -383,13 +385,12 @@ class ConversationsHelper {
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /// Turn an API response into a ConversationMessage object
 | 
			
		||||
  ConversationMessage _apiToConversationMessage({
 | 
			
		||||
    @required int conversationID,
 | 
			
		||||
    @required Map<String, dynamic> map,
 | 
			
		||||
  }) {
 | 
			
		||||
  static ConversationMessage apiToConversationMessage(
 | 
			
		||||
    Map<String, dynamic> map,
 | 
			
		||||
  ) {
 | 
			
		||||
    return ConversationMessage(
 | 
			
		||||
      id: map["ID"],
 | 
			
		||||
      conversationID: conversationID,
 | 
			
		||||
      conversationID: map["convID"],
 | 
			
		||||
      userID: map["ID_user"],
 | 
			
		||||
      timeInsert: map["time_insert"],
 | 
			
		||||
      message: DisplayedString(map["message"]),
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,7 @@
 | 
			
		||||
import 'dart:async';
 | 
			
		||||
 | 
			
		||||
import 'package:comunic/models/comment.dart';
 | 
			
		||||
import 'package:comunic/models/conversation_message.dart';
 | 
			
		||||
import 'package:event_bus/event_bus.dart';
 | 
			
		||||
 | 
			
		||||
/// Events helper
 | 
			
		||||
@@ -45,6 +46,13 @@ class DeletedCommentEvent {
 | 
			
		||||
  DeletedCommentEvent(this.commentID);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/// New conversation message
 | 
			
		||||
class NewConversationMessageEvent {
 | 
			
		||||
  final ConversationMessage msg;
 | 
			
		||||
 | 
			
		||||
  NewConversationMessageEvent(this.msg);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class EventsHelper {
 | 
			
		||||
  static EventBus _mgr = EventBus();
 | 
			
		||||
 
 | 
			
		||||
@@ -2,6 +2,7 @@ import 'dart:async';
 | 
			
		||||
import 'dart:convert';
 | 
			
		||||
 | 
			
		||||
import 'package:comunic/helpers/comments_helper.dart';
 | 
			
		||||
import 'package:comunic/helpers/conversations_helper.dart';
 | 
			
		||||
import 'package:comunic/helpers/events_helper.dart';
 | 
			
		||||
import 'package:comunic/models/api_request.dart';
 | 
			
		||||
import 'package:comunic/models/config.dart';
 | 
			
		||||
@@ -137,6 +138,12 @@ class WebSocketHelper {
 | 
			
		||||
        EventsHelper.emit(DeletedCommentEvent(msg.data));
 | 
			
		||||
        break;
 | 
			
		||||
 | 
			
		||||
      // Created new conversation message
 | 
			
		||||
      case "new_conv_message":
 | 
			
		||||
        EventsHelper.emit(NewConversationMessageEvent(
 | 
			
		||||
            ConversationsHelper.apiToConversationMessage(msg.data)));
 | 
			
		||||
        break;
 | 
			
		||||
 | 
			
		||||
      default:
 | 
			
		||||
        throw Exception("Unknown message type: ${msg.title}");
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user