searchCloudGroups method

Future<V2TimValueCallback<V2TimGroupSearchResult>> searchCloudGroups({
  1. required V2TimGroupSearchParam searchParam,
})

Implementation

Future<V2TimValueCallback<V2TimGroupSearchResult>> searchCloudGroups({
  required V2TimGroupSearchParam searchParam,
}) async {
  if (!TIMManager.instance.isInitSDK()) {
    return V2TimValueCallback<V2TimGroupSearchResult>(code: TIMErrCode.ERR_SDK_NOT_INITIALIZED.value, desc: "sdk not init");
  }

  String userData = Tools.generateUserData('searchCloudGroups');
  Completer<V2TimValueCallback<V2TimGroupSearchResult>> completer = Completer();

  // 打断点测试
  void handleApiCallback(Map jsonResult) {
    V2TimValueCallback<V2TimGroupSearchResult> result = V2TimValueCallback<V2TimGroupSearchResult>.fromJson(jsonResult);
    completer.complete(result);
  }
  NativeLibraryManager.timApiValueCallback2Future(userData, handleApiCallback);
  // NativeLibraryManager.timValueCallback2Future<V2TimGroupSearchResult>(userData, completer);

  Pointer<Char> pParam = Tools.string2PointerChar(json.encode(searchParam.toJson()));
  Pointer<Void> pUserData = Tools.string2PointerVoid(userData);
  int result = NativeLibraryManager.bindings.DartSearchCloudGroups(pParam, pUserData);
  if (result != TIMResult.TIM_SUCC.value) {
    return V2TimValueCallback<V2TimGroupSearchResult>(code: TIMErrCode.ERR_INVALID_PARAMETERS.value, desc: "invalid parameter");
  }

  return completer.future;
}