acceptGroupApplication method

Future<V2TimCallback> acceptGroupApplication({
  1. required String groupID,
  2. String? reason,
  3. required String fromUser,
  4. required String toUser,
  5. int? addTime,
  6. GroupApplicationTypeEnum? type,
  7. V2TimGroupApplication? application,
})

Implementation

Future<V2TimCallback> acceptGroupApplication({
  required String groupID,
  String? reason,
  required String fromUser,
  required String toUser,
  int? addTime,
  GroupApplicationTypeEnum? type,
  V2TimGroupApplication? application,
}) async {
  if (!TIMManager.instance.isInitSDK()) {
    return V2TimCallback(code: TIMErrCode.ERR_SDK_NOT_INITIALIZED.value, desc: "sdk not init");
  }

  String userData = Tools.generateUserData('acceptGroupApplication');

  V2TimGroupApplication adjustApplication = V2TimGroupApplication(groupID: groupID, fromUser: fromUser, toUser: toUser, addTime: addTime, type: type?.index ?? 0, handleStatus: 0, handleResult: 0);
  if (application != null && application.authentication.isNotEmpty) {
    adjustApplication = application;
    adjustApplication.groupID = groupID;
    adjustApplication.fromUser = fromUser;
    adjustApplication.toUser = toUser;
    adjustApplication.addTime = addTime ?? application.addTime;
    adjustApplication.type = type?.index ?? application.type;

    Completer<V2TimCallback> completer = Completer();
    NativeLibraryManager.timCallback2Future(userData, completer);

    V2TimGroupHandleApplicationParam param = V2TimGroupHandleApplicationParam(isAccept: true, reason: reason ?? '', application: adjustApplication);
    Pointer<Char> pParam = Tools.string2PointerChar(json.encode(param.toJson()));
    Pointer<Void> pUserData = Tools.string2PointerVoid(userData);
    NativeLibraryManager.bindings.DartHandleGroupPendency(pParam, pUserData);

    return completer.future;
  }

  // 兼容旧版本的处理
  return handleGroupApplication(groupID: groupID, fromUser: fromUser, toUser: toUser, addTime: addTime ?? 0, type: type, isAccept: true, userData: userData);
}