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

Add support for server conversation message

This commit is contained in:
2021-03-10 19:08:18 +01:00
parent 08c77340a0
commit 2989e98c50
7 changed files with 131 additions and 28 deletions

View File

@ -8,6 +8,7 @@ import 'package:comunic/lists/users_list.dart';
import 'package:comunic/models/conversation_message.dart';
import 'package:comunic/models/new_conversation_message.dart';
import 'package:comunic/ui/tiles/conversation_message_tile.dart';
import 'package:comunic/ui/tiles/server_conversation_message_tile.dart';
import 'package:comunic/ui/widgets/safe_state.dart';
import 'package:comunic/ui/widgets/scroll_watcher.dart';
import 'package:comunic/utils/files_utils.dart';
@ -134,7 +135,7 @@ class _ConversationScreenState extends SafeState<ConversationScreen> {
await _applyNewMessages(messages);
} catch (e, s) {
print("Failed to load messages! $e => $s");
debugPrint("Failed to load messages! $e => $s", wrapWidth: 4096);
_errorLoading();
}
}
@ -178,7 +179,7 @@ class _ConversationScreenState extends SafeState<ConversationScreen> {
//Then get information about users
final usersToGet =
findMissingFromList(_usersInfo.usersID, messages.getUsersID()).toSet();
findMissingFromSet(_usersInfo.usersID.toSet(), messages.getUsersID());
final users = await _usersHelper.getList(usersToGet);
@ -314,14 +315,19 @@ class _ConversationScreenState extends SafeState<ConversationScreen> {
reverse: true,
itemCount: _messages.length,
itemBuilder: (c, i) {
return ConversationMessageTile(
message: _messages.elementAt(i),
userInfo: _usersInfo.getUser(_messages[i].userID),
isLastMessage: _isLastMessage(i),
isFirstMessage: _isFirstMessage(i),
onRequestMessageUpdate: _updateMessage,
onRequestMessageDelete: _deleteMessage,
);
return _messages[i].isServerMessage
? ServerConversationMessageTile(
message: _messages[i].serverMessage,
users: _usersInfo,
)
: ConversationMessageTile(
message: _messages.elementAt(i),
userInfo: _usersInfo.getUser(_messages[i].userID),
isLastMessage: _isLastMessage(i),
isFirstMessage: _isFirstMessage(i),
onRequestMessageUpdate: _updateMessage,
onRequestMessageDelete: _deleteMessage,
);
}),
);
}