checkAbility method

Future<V2TimValueCallback<int>> checkAbility({
  1. int? ability,
})

Implementation

Future<V2TimValueCallback<int>> checkAbility({
  int? ability
}) async {
  if (!_isInitSDK){
    return V2TimValueCallback<int>(code: TIMErrCode.ERR_SDK_NOT_INITIALIZED.value, desc: 'sdk not init');
  }

  String userData = Tools.generateUserData('checkAbility');
  Completer<V2TimValueCallback<int>> completer = Completer();
  void handleApiCallback(Map jsonResult) {
    V2TimValueCallback<Map<String, bool>> result = V2TimValueCallback<Map<String, bool>>.fromJson(jsonResult);
    bool checkResult = result.data?['commercial_ability_result_enabled'] ?? false;
    completer.complete(V2TimValueCallback<int>(code: result.code, desc: result.desc, data: checkResult ? 1 : 0));
  }
  NativeLibraryManager.timApiValueCallback2Future(userData, handleApiCallback);

  Map<String, dynamic> cJsonParam = {};
  cJsonParam['request_internal_operation'] = 'internal_operation_is_commercial_ability_enabled';
  cJsonParam['request_is_commercial_ability_enabled_param'] = ability ?? 0;
  Pointer<Char> pCJsonParam = Tools.string2PointerChar(json.encode(cJsonParam));
  Pointer<Void> pUserData = Tools.string2PointerVoid(userData);
  NativeLibraryManager.bindings.DartCallExperimentalAPI(pCJsonParam, pUserData);

  return completer.future;
}