handleCustomMessage static method

(String, String?, IconData?) handleCustomMessage(
  1. V2TimMessage message
)

Implementation

static (String, String?, IconData?) handleCustomMessage(
    V2TimMessage message) {
  final customElem = message.customElem;
  String lineOne = "[${tL10n.custom}]";
  String? lineTwo;
  IconData? icon;

  if (customElem?.data == "group_create") {
    lineOne = "Group chat created successfully!";
  }
  if (isVoteMessage(message)) {
    lineOne = "[${tL10n.poll}]";
  }
  if (isRobotMessage(message)) {
    lineOne = "[机器人消息]";
  }
  final callingMessage = CallingMessage.getCallMessage(customElem);
  if (callingMessage != null) {
    // If it's an end message
    final isCallEnd = CallingMessage.isCallEndExist(callingMessage);
    final isVoiceCall = callingMessage.callType == 1;

    String? callTime = "";

    if (isCallEnd) {
      callTime = CallingMessage.getShowTime(callingMessage.callEnd!);
    }

    lineTwo = isCallEnd
        ? tL10n.callDuration(callTime ?? "0")
        : CallingMessage.getActionType(callingMessage);

    lineOne = isVoiceCall ? tL10n.voiceCall : tL10n.videoCall;
    icon = isVoiceCall ? Icons.call : Icons.video_call_outlined;
  }
  if (lineOne == "[${tL10n.custom}]") {
    debugPrint(message.customElem!.toJson().toString());
  }
  return (lineOne, lineTwo, icon);
}