decreaseGroupCounter method

Future<V2TimValueCallback<Map<String, int>>> decreaseGroupCounter({
  1. required String groupID,
  2. required String key,
  3. required int value,
})

Implementation

Future<V2TimValueCallback<Map<String, int>>> decreaseGroupCounter({
required String groupID,
required String key,
required int value,
  }) 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('decreaseGroupCounter');
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);

Pointer<Char> pGroupID = Tools.string2PointerChar(groupID);
Pointer<Char> pKey = Tools.string2PointerChar(key);
Pointer<Void> pUserData = Tools.string2PointerVoid(userData);
NativeLibraryManager.bindings.DartDecreaseGroupCounter(pGroupID, pKey, value, pUserData);

return completer.future;
  }