getMessageExtDatas method

void getMessageExtDatas()

Implementation

void getMessageExtDatas() async {
  if (widget.message.msgID == null) {
    return;
  }
  String msgID = widget.message.msgID!;
  TencentCloudChatVoteLogic? originData = Provider.of<TencentCloudChatVoteMessageModel>(
    context,
    listen: false,
  ).getTencentCloudChatVoteLogic(msgID);
  if (originData == null) {
    return;
  }
  String originmsgId = originData.voteData.content.original_msg_id ?? "";
  int originMsgSeq = originData.voteData.content.original_msg_seq ?? 0;

  V2TimValueCallback<List<V2TimMessageExtension>> extRes = await TencentImSDKPlugin.v2TIMManager.getMessageManager().getMessageExtensions(
        msgID: msgID,
      );
  List<V2TimMessageExtension> originExtList = List<V2TimMessageExtension>.from([]);
  if (extRes.code == 0) {
    if (extRes.data != null) {
      if (originmsgId.isNotEmpty && originMsgSeq != 0) {
        // 这是个重复发的消息,需要把原始消息的扩展设置过来
        V2TimValueCallback<List<V2TimMessageExtension>> originExtRes = await TencentImSDKPlugin.v2TIMManager.getMessageManager().getMessageExtensions(
              msgID: originmsgId,
            );
        if (originExtRes.code == 0) {
          if (originExtRes.data != null) {
            if (originExtRes.data!.isNotEmpty) {
              originExtList = originExtRes.data!;
              await TencentImSDKPlugin.v2TIMManager.getMessageManager().setMessageExtensions(
                    msgID: msgID,
                    extensions: originExtRes.data!,
                  );
            }
          }
        }
      }

      // if (extRes.data!.isNotEmpty) {
      List<V2TimMessageExtension> extList = extRes.data!;

      await originData.setMessageExt(
        originExtList.isNotEmpty ? originExtList : extList,
      );
      Provider.of<TencentCloudChatVoteMessageModel>(context, listen: false).updateTencentCloudChatVoteLogic(originData);
      // }
    }
  }
}