acceptFriendApplication method

Future<V2TimValueCallback<V2TimFriendOperationResult>> acceptFriendApplication({
  1. required FriendResponseTypeEnum responseType,
  2. FriendApplicationTypeEnum? type,
  3. required String userID,
})

Implementation

Future<V2TimValueCallback<V2TimFriendOperationResult>> acceptFriendApplication({
  required FriendResponseTypeEnum responseType,
  FriendApplicationTypeEnum? type,
  required String userID,
}) async {
  if (!TIMManager.instance.isInitSDK()) {
    return V2TimValueCallback<V2TimFriendOperationResult>(code: TIMErrCode.ERR_SDK_NOT_INITIALIZED.value, desc: "sdk not init");
  }

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

  int cResponseType = CFriendResponseAction.responseActionAgree;
  switch (responseType) {
    case FriendResponseTypeEnum.V2TIM_FRIEND_ACCEPT_AGREE:
      cResponseType = CFriendResponseAction.responseActionAgree;
      break;
    case FriendResponseTypeEnum.V2TIM_FRIEND_ACCEPT_AGREE_AND_ADD:
      cResponseType = CFriendResponseAction.responseActionAgreeAndAdd;
      break;
    default:
      print('invalid responseType');
      break;
  }

  V2TimFriendApplicationHandleParam param = V2TimFriendApplicationHandleParam(userID: userID, responseType: cResponseType);
  Pointer<Char> pJsonParam = Tools.string2PointerChar(json.encode(param.toJson()));
  Pointer<Void> pUserData = Tools.string2PointerVoid(userData);
  NativeLibraryManager.bindings.DartHandleFriendAddRequest(pJsonParam, pUserData);

  return completer.future;
}