mirror of
https://gitlab.com/comunic/comunicmobile
synced 2025-06-19 08:15:16 +00:00
Add support for server conversation message
This commit is contained in:
@ -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,
|
||||
);
|
||||
}),
|
||||
);
|
||||
}
|
||||
|
33
lib/ui/tiles/server_conversation_message_tile.dart
Normal file
33
lib/ui/tiles/server_conversation_message_tile.dart
Normal file
@ -0,0 +1,33 @@
|
||||
import 'package:comunic/lists/users_list.dart';
|
||||
import 'package:comunic/models/conversation_message.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
/// Server conversation message list
|
||||
///
|
||||
/// @author Pierre hubert
|
||||
|
||||
class ServerConversationMessageTile extends StatelessWidget {
|
||||
final ConversationServerMessage message;
|
||||
final UsersList users;
|
||||
|
||||
const ServerConversationMessageTile({
|
||||
Key key,
|
||||
@required this.message,
|
||||
@required this.users,
|
||||
}) : assert(message != null),
|
||||
assert(users != null),
|
||||
super(key: key);
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Center(
|
||||
child: Text(
|
||||
message.getText(users),
|
||||
style: TextStyle(
|
||||
fontStyle: FontStyle.italic,
|
||||
fontSize: 12,
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user