addFriend method

Future<V2TimValueCallback<V2TimFriendOperationResult>> addFriend({
  1. required String userID,
  2. String? remark,
  3. String? friendGroup,
  4. String? addWording,
  5. String? addSource,
  6. required FriendTypeEnum addType,
})

Implementation

Future<V2TimValueCallback<V2TimFriendOperationResult>> addFriend({
  required String userID,
  String? remark,
  String? friendGroup,
  String? addWording,
  String? addSource,
  required FriendTypeEnum addType,
}) async {
  if (!TIMManager.instance.isInitSDK()) {
    return V2TimValueCallback<V2TimFriendOperationResult>(code: TIMErrCode.ERR_SDK_NOT_INITIALIZED.value, desc: "sdk not init");
  }

  String userData = Tools.generateUserData('addFriend');
  Completer<V2TimValueCallback<V2TimFriendOperationResult>> completer = Completer();
  NativeLibraryManager.timValueCallback2Future<V2TimFriendOperationResult>(userData, completer);

  V2TimFriendAddFriendParam param = V2TimFriendAddFriendParam(
    userID: userID,
    remark: remark,
    friendGroup: friendGroup,
    addWording: addWording,
    addSource: addSource,
    addType: addType,
  );

  Pointer<Char> pJsonParam = Tools.string2PointerChar(json.encode(param.toJson()));
  Pointer<Void> pUserData = Tools.string2PointerVoid(userData);
  NativeLibraryManager.bindings.DartAddFriend(pJsonParam, pUserData);

  return completer.future;
}