getMessageAbstract static method

String getMessageAbstract(
  1. MessageInfo? messageInfo,
  2. BuildContext context
)

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 '';
  }
}