getTotalUnreadMessageCount method

Future<V2TimValueCallback<int>> getTotalUnreadMessageCount()

Implementation

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

  String userData = Tools.generateUserData('getTotalUnreadMessageCount');
  Completer<V2TimValueCallback<int>> completer = Completer();
  void handleApiCallback(Map jsonResult) {
    V2TimValueCallback<Map<String, int>> result = V2TimValueCallback<Map<String, int>>.fromJson(jsonResult);
    int count = result.data?['conv_get_total_unread_message_count_result_unread_count'] ?? 0;

    completer.complete(V2TimValueCallback<int>(code: result.code, desc: result.desc, data: count));
  }
  NativeLibraryManager.timApiValueCallback2Future(userData, handleApiCallback);

  Pointer<Void> pUserData = Tools.string2PointerVoid(userData);
  NativeLibraryManager.bindings.DartGetTotalUnreadMessageCount(pUserData);

  return completer.future;
}