setGroupCounters method

Future<V2TimValueCallback<Map<String, int>>> setGroupCounters({
  1. required String groupID,
  2. required Map<String, int> counters,
})

Implementation

Future<V2TimValueCallback<Map<String, int>>> setGroupCounters({
  required String groupID,
  required Map<String, int> counters,
}) async {
  if (!TIMManager.instance.isInitSDK()) {
    return V2TimValueCallback<Map<String, int>>(code: TIMErrCode.ERR_SDK_NOT_INITIALIZED.value, desc: "sdk not init");
  }

  String userData = Tools.generateUserData('setGroupCounters');
  Completer<V2TimValueCallback<Map<String, int>>> completer = Completer();
  void handleApiCallback(Map jsonResult) {
    V2TimValueCallback<List<Map<String, int>>> result = V2TimValueCallback<List<Map<String, int>>>.fromJson(jsonResult);
    List<Map<String, int>> jsonResultList = result.data ?? [];
    Map<String, int> counter = Tools.jsonList2Map<int>(jsonResultList, 'group_counter_key', 'group_counter_value');
    completer.complete(V2TimValueCallback<Map<String, int>>(code: result.code, desc: result.desc, data: counter));
  }
  NativeLibraryManager.timApiValueCallback2Future(userData, handleApiCallback);

  var jsonList = Tools.map2JsonList(counters, 'group_counter_key', 'group_counter_value');
  Pointer<Char> pGroupID = Tools.string2PointerChar(groupID);
  Pointer<Char> pCounters = Tools.string2PointerChar(json.encode(jsonList));
  Pointer<Void> pUserData = Tools.string2PointerVoid(userData);
  NativeLibraryManager.bindings.DartSetGroupCounters(pGroupID, pCounters, pUserData);

  return completer.future;
}