getMessageAbstract static method
Implementation
static String getMessageAbstract(MessageInfo? messageInfo, BuildContext context) {
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);
default:
return '';
}
}