getGroupMembersInfo method

Future<V2TimValueCallback<List<V2TimGroupMemberFullInfo>>> getGroupMembersInfo({
  1. required String groupID,
  2. required List<String> memberList,
})

Implementation

Future<V2TimValueCallback<List<V2TimGroupMemberFullInfo>>>
    getGroupMembersInfo({
  required String groupID,
  required List<String> memberList,
}) async {
  if (!TIMManager.instance.isInitSDK()) {
    return V2TimValueCallback<List<V2TimGroupMemberFullInfo>>(code: TIMErrCode.ERR_SDK_NOT_INITIALIZED.value, desc: "sdk not init");
  }

  String userData = Tools.generateUserData('getGroupMembersInfo');
  Completer<V2TimValueCallback<List<V2TimGroupMemberFullInfo>>> completer = Completer();
  void handleApiCallback(Map jsonResult) {
    V2TimValueCallback<V2TimGroupMemberInfoResult> result = V2TimValueCallback<V2TimGroupMemberInfoResult>.fromJson(jsonResult);
    var resultList = result.data?.memberInfoList ?? [];
    List<V2TimGroupMemberFullInfo> memberInfoList = resultList.where((element) => element != null).cast<V2TimGroupMemberFullInfo>().toList();
    completer.complete(V2TimValueCallback<List<V2TimGroupMemberFullInfo>>(code: result.code, desc: result.desc, data: memberInfoList));
  }
  NativeLibraryManager.timApiValueCallback2Future(userData, handleApiCallback);

  GroupGetMemberInfoListParam param = GroupGetMemberInfoListParam(groupID: groupID, filter: GroupMemberFilterTypeEnum.V2TIM_GROUP_MEMBER_FILTER_ALL, memberList: memberList);
  Pointer<Char> pJsonParam = Tools.string2PointerChar(json.encode(param.toJson()));
  Pointer<Void> pUserData = Tools.string2PointerVoid(userData);
  NativeLibraryManager.bindings.DartGetGroupMemberList(pJsonParam, pUserData);

  return completer.future;
}