mirror of
https://gitlab.com/comunic/comunicmobile
synced 2025-06-19 00:05:16 +00:00
Add support for server conversation message
This commit is contained in:
@ -1,6 +1,8 @@
|
||||
import 'package:comunic/helpers/serialization/base_serialization_helper.dart';
|
||||
import 'package:comunic/lists/users_list.dart';
|
||||
import 'package:comunic/models/displayed_content.dart';
|
||||
import 'package:comunic/utils/account_utils.dart' as account;
|
||||
import 'package:comunic/utils/intl_utils.dart';
|
||||
import 'package:meta/meta.dart';
|
||||
|
||||
/// Single conversation message
|
||||
@ -88,6 +90,33 @@ class ConversationServerMessage {
|
||||
throw Exception("Unsupported server message type!");
|
||||
}
|
||||
|
||||
String getText(UsersList list) {
|
||||
switch (type) {
|
||||
case ConversationServerMessageType.USER_CREATED_CONVERSATION:
|
||||
return tr("%1% created the conversation",
|
||||
args: {"1": list.getUser(userID).fullName});
|
||||
|
||||
case ConversationServerMessageType.USER_ADDED_ANOTHER_USER:
|
||||
return tr("%1% added %2% to the conversation", args: {
|
||||
"1": list.getUser(userWhoAdded).fullName,
|
||||
"2": list.getUser(userAdded).fullName,
|
||||
});
|
||||
|
||||
case ConversationServerMessageType.USER_LEFT_CONV:
|
||||
return tr("%1% left the conversation", args: {
|
||||
"1": list.getUser(userID).fullName,
|
||||
});
|
||||
|
||||
case ConversationServerMessageType.USER_REMOVED_ANOTHER_USER:
|
||||
return tr("%1% removed %2% from the conversation", args: {
|
||||
"1": list.getUser(userWhoRemoved).fullName,
|
||||
"2": list.getUser(userRemoved).fullName,
|
||||
});
|
||||
}
|
||||
|
||||
throw Exception("Unsupported message type!");
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() => {
|
||||
"type": type.toString(),
|
||||
"userID": userID,
|
||||
@ -126,7 +155,7 @@ class ConversationMessage extends SerializableElement<ConversationMessage> {
|
||||
@required this.serverMessage,
|
||||
}) : assert(id != null),
|
||||
assert(convID != null),
|
||||
assert(userID != null),
|
||||
assert(userID != null || serverMessage != null),
|
||||
assert(timeSent != null),
|
||||
assert(message != null || file != null || serverMessage != null);
|
||||
|
||||
@ -142,6 +171,8 @@ class ConversationMessage extends SerializableElement<ConversationMessage> {
|
||||
|
||||
bool get isOwner => account.userID() == userID;
|
||||
|
||||
bool get isServerMessage => serverMessage != null;
|
||||
|
||||
/// Get the list of the ID of the users implied in this message
|
||||
Set<int> get usersID {
|
||||
if (userID != null) return Set()..add(userID);
|
||||
@ -160,7 +191,7 @@ class ConversationMessage extends SerializableElement<ConversationMessage> {
|
||||
"convID": convID,
|
||||
"userID": userID,
|
||||
"timeSent": timeSent,
|
||||
"message": message,
|
||||
"message": message.content,
|
||||
"file": file?.toJson(),
|
||||
"serverMessage": serverMessage?.toJson(),
|
||||
};
|
||||
|
Reference in New Issue
Block a user