getMessageAbstract static method
String
getMessageAbstract(
- MessageInfo? messageInfo,
- BuildContext context, {
- bool showMergedTitle = false,
Implementation
static String getMessageAbstract(MessageInfo? messageInfo, BuildContext context, {bool showMergedTitle = false}) {
if (messageInfo == null) return '';
if (!context.mounted) {
return '';
}
AtomicLocalizations? localizations = AtomicLocalizations.of(context);
switch (messageInfo.messageType) {
case MessageType.text:
return messageInfo.messageBody?.text ?? '';
case MessageType.image:
return localizations.messageTypeImage;
case MessageType.sound:
return localizations.messageTypeVoice;
case MessageType.file:
return localizations.messageTypeFile;
case MessageType.video:
return localizations.messageTypeVideo;
case MessageType.face:
return localizations.messageTypeSticker;
case MessageType.custom:
final customMessage = messageInfo.messageBody?.customMessage;
if (customMessage == null) {
return localizations.messageTypeCustom;
}
CallingMessageDataProvider provider = CallingMessageDataProvider(messageInfo, context);
if (provider.isCallingSignal) {
return provider.content;
}
final customInfo = ChatUtil.jsonData2Dictionary(customMessage.data);
if (customInfo != null && customInfo['businessID'] == 'group_create') {
final sender = customInfo['opUser'] ?? '';
final cmd = customInfo['cmd'] is int ? customInfo['cmd'] : 0;
if (cmd == 1) {
return '$sender ${localizations.createCommunity}';
} else {
return '$sender ${localizations.createGroupTips}';
}
}
return localizations.messageTypeCustom;
case MessageType.system:
return getSystemInfoDisplayString(messageInfo.messageBody?.systemMessage ?? [], context);
case MessageType.merged:
if (showMergedTitle) {
final title = messageInfo.messageBody?.mergedMessage?.title;
if (title != null && title.isNotEmpty) {
return title;
}
}
return '[${localizations.chatHistory}]';
default:
return '';
}
}