114cf0368Sopenharmony_ci/* 214cf0368Sopenharmony_ci * Copyright (c) 2024 Huawei Device Co., Ltd. 314cf0368Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 414cf0368Sopenharmony_ci * you may not use this file except in compliance with the License. 514cf0368Sopenharmony_ci * You may obtain a copy of the License at 614cf0368Sopenharmony_ci * 714cf0368Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 814cf0368Sopenharmony_ci * 914cf0368Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 1014cf0368Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 1114cf0368Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1214cf0368Sopenharmony_ci * See the License for the specific language governing permissions and 1314cf0368Sopenharmony_ci * limitations under the License. 1414cf0368Sopenharmony_ci */ 1514cf0368Sopenharmony_ci#define LOG_TAG "Uds" 1614cf0368Sopenharmony_ci 1714cf0368Sopenharmony_ci#include "uds.h" 1814cf0368Sopenharmony_ci#include "logger.h" 1914cf0368Sopenharmony_ci#include "securec.h" 2014cf0368Sopenharmony_ci#include "unified_meta.h" 2114cf0368Sopenharmony_ci#include "udmf_capi_common.h" 2214cf0368Sopenharmony_ci#include "udmf_meta.h" 2314cf0368Sopenharmony_ci#include "udmf_err_code.h" 2414cf0368Sopenharmony_ci#include "pixel_map.h" 2514cf0368Sopenharmony_ci#include "pixelmap_native_impl.h" 2614cf0368Sopenharmony_ci 2714cf0368Sopenharmony_ciusing namespace OHOS::UDMF; 2814cf0368Sopenharmony_ci 2914cf0368Sopenharmony_cistatic const char* GetUdsStrValue(UdsObject* pThis, NdkStructId ndkStructId, const char* paramName) 3014cf0368Sopenharmony_ci{ 3114cf0368Sopenharmony_ci if (IsInvalidUdsObjectPtr(pThis, ndkStructId)) { 3214cf0368Sopenharmony_ci return nullptr; 3314cf0368Sopenharmony_ci } 3414cf0368Sopenharmony_ci auto value = pThis->GetUdsValue<std::string>(paramName); 3514cf0368Sopenharmony_ci return value == nullptr ? nullptr : value->c_str(); 3614cf0368Sopenharmony_ci} 3714cf0368Sopenharmony_ci 3814cf0368Sopenharmony_cistatic int GetUdsUint8Value(UdsObject* pThis, const char* paramName, const char* paramNameLen, unsigned char** data, 3914cf0368Sopenharmony_ci unsigned int* len) 4014cf0368Sopenharmony_ci{ 4114cf0368Sopenharmony_ci auto value = pThis->GetUdsValue<std::vector<uint8_t>>(paramName); 4214cf0368Sopenharmony_ci if (value == nullptr) { 4314cf0368Sopenharmony_ci return UDMF_ERR; 4414cf0368Sopenharmony_ci } 4514cf0368Sopenharmony_ci auto lengthPtr = pThis->GetUdsValue<int>(paramNameLen); 4614cf0368Sopenharmony_ci int length; 4714cf0368Sopenharmony_ci if (lengthPtr == nullptr) { 4814cf0368Sopenharmony_ci if (value->size() > MAX_GENERAL_ENTRY_SIZE) { 4914cf0368Sopenharmony_ci LOG_ERROR(UDMF_CAPI, "length invalid. value'size = %{public}zu", value->size()); 5014cf0368Sopenharmony_ci return UDMF_ERR; 5114cf0368Sopenharmony_ci } 5214cf0368Sopenharmony_ci length = static_cast<int>(value->size()); 5314cf0368Sopenharmony_ci } else { 5414cf0368Sopenharmony_ci length = *lengthPtr; 5514cf0368Sopenharmony_ci } 5614cf0368Sopenharmony_ci if (length < 0 || length > MAX_GENERAL_ENTRY_SIZE) { 5714cf0368Sopenharmony_ci LOG_ERROR(UDMF_CAPI, "length invalid! length'size = %{public}d", length); 5814cf0368Sopenharmony_ci return UDMF_ERR; 5914cf0368Sopenharmony_ci } 6014cf0368Sopenharmony_ci *data = value->data(); 6114cf0368Sopenharmony_ci *len = length; 6214cf0368Sopenharmony_ci return UDMF_E_OK; 6314cf0368Sopenharmony_ci} 6414cf0368Sopenharmony_ci 6514cf0368Sopenharmony_cibool IsInvalidUdsObjectPtr(const UdsObject *pThis, int cid) 6614cf0368Sopenharmony_ci{ 6714cf0368Sopenharmony_ci return pThis == nullptr || pThis->cid != cid || pThis->obj == nullptr; 6814cf0368Sopenharmony_ci} 6914cf0368Sopenharmony_ci 7014cf0368Sopenharmony_cibool IsInvalidUdsObjectByType(const UdsObject* pThis, const UDType& type) 7114cf0368Sopenharmony_ci{ 7214cf0368Sopenharmony_ci switch (type) { 7314cf0368Sopenharmony_ci case PLAIN_TEXT: 7414cf0368Sopenharmony_ci return IsInvalidUdsObjectPtr(pThis, UDS_PLAIN_TEXT_STRUCT_ID); 7514cf0368Sopenharmony_ci case HYPERLINK: 7614cf0368Sopenharmony_ci return IsInvalidUdsObjectPtr(pThis, UDS_HYPERLINK_STRUCT_ID); 7714cf0368Sopenharmony_ci case HTML: 7814cf0368Sopenharmony_ci return IsInvalidUdsObjectPtr(pThis, UDS_HTML_STRUCT_ID); 7914cf0368Sopenharmony_ci case SYSTEM_DEFINED_APP_ITEM: 8014cf0368Sopenharmony_ci return IsInvalidUdsObjectPtr(pThis, UDS_APP_ITEM_STRUCT_ID); 8114cf0368Sopenharmony_ci case FILE_URI: 8214cf0368Sopenharmony_ci return IsInvalidUdsObjectPtr(pThis, UDS_FILE_URI_STRUCT_ID); 8314cf0368Sopenharmony_ci case SYSTEM_DEFINED_PIXEL_MAP: 8414cf0368Sopenharmony_ci return IsInvalidUdsObjectPtr(pThis, UDS_PIXEL_MAP_STRUCT_ID); 8514cf0368Sopenharmony_ci default: 8614cf0368Sopenharmony_ci return false; 8714cf0368Sopenharmony_ci } 8814cf0368Sopenharmony_ci} 8914cf0368Sopenharmony_ci 9014cf0368Sopenharmony_ciUdsObject::UdsObject(const int cid) : cid(cid) {} 9114cf0368Sopenharmony_ci 9214cf0368Sopenharmony_ciOH_UdsPlainText::OH_UdsPlainText() : UdsObject(NdkStructId::UDS_PLAIN_TEXT_STRUCT_ID) {} 9314cf0368Sopenharmony_ci 9414cf0368Sopenharmony_ciOH_UdsHyperlink::OH_UdsHyperlink() : UdsObject(NdkStructId::UDS_HYPERLINK_STRUCT_ID) {} 9514cf0368Sopenharmony_ci 9614cf0368Sopenharmony_ciOH_UdsHtml::OH_UdsHtml() : UdsObject(NdkStructId::UDS_HTML_STRUCT_ID) {} 9714cf0368Sopenharmony_ci 9814cf0368Sopenharmony_ciOH_UdsAppItem::OH_UdsAppItem() : UdsObject(NdkStructId::UDS_APP_ITEM_STRUCT_ID) {} 9914cf0368Sopenharmony_ci 10014cf0368Sopenharmony_ciOH_UdsFileUri::OH_UdsFileUri() : UdsObject(NdkStructId::UDS_FILE_URI_STRUCT_ID) {} 10114cf0368Sopenharmony_ci 10214cf0368Sopenharmony_ciOH_UdsPixelMap::OH_UdsPixelMap() : UdsObject(NdkStructId::UDS_PIXEL_MAP_STRUCT_ID) {} 10314cf0368Sopenharmony_ci 10414cf0368Sopenharmony_ciOH_UdsArrayBuffer::OH_UdsArrayBuffer() : UdsObject(NdkStructId::UDS_ARRAY_BUFFER_STRUCT_ID) {} 10514cf0368Sopenharmony_ci 10614cf0368Sopenharmony_ciOH_UdsContentForm::OH_UdsContentForm() : UdsObject(NdkStructId::UDS_CONTENT_FORM_STRUCT_ID) {} 10714cf0368Sopenharmony_ci 10814cf0368Sopenharmony_citemplate <typename T> bool UdsObject::HasObjectKey(const char* paramName) 10914cf0368Sopenharmony_ci{ 11014cf0368Sopenharmony_ci auto it = obj->value_.find(paramName); 11114cf0368Sopenharmony_ci if (it == obj->value_.end() || !std::holds_alternative<T>(it->second)) { 11214cf0368Sopenharmony_ci LOG_ERROR(UDMF_CAPI, "Don't have property %{public}s.", paramName); 11314cf0368Sopenharmony_ci return false; 11414cf0368Sopenharmony_ci } 11514cf0368Sopenharmony_ci return true; 11614cf0368Sopenharmony_ci} 11714cf0368Sopenharmony_ci 11814cf0368Sopenharmony_citemplate<typename T> 11914cf0368Sopenharmony_ciT* UdsObject::GetUdsValue(const char* paramName) 12014cf0368Sopenharmony_ci{ 12114cf0368Sopenharmony_ci if (!HasObjectKey<T>(paramName)) { 12214cf0368Sopenharmony_ci return nullptr; 12314cf0368Sopenharmony_ci } 12414cf0368Sopenharmony_ci return std::get_if<T>(&(obj->value_[paramName])); 12514cf0368Sopenharmony_ci} 12614cf0368Sopenharmony_ci 12714cf0368Sopenharmony_citemplate<typename T> 12814cf0368Sopenharmony_ciint UdsObject::SetUdsValue(const char* paramName, const T &pramValue) 12914cf0368Sopenharmony_ci{ 13014cf0368Sopenharmony_ci if (!HasObjectKey<T>(paramName)) { 13114cf0368Sopenharmony_ci return Udmf_ErrCode::UDMF_E_INVALID_PARAM; 13214cf0368Sopenharmony_ci } 13314cf0368Sopenharmony_ci std::lock_guard<std::mutex> lock(mutex); 13414cf0368Sopenharmony_ci obj->value_[paramName] = pramValue; 13514cf0368Sopenharmony_ci return Udmf_ErrCode::UDMF_E_OK; 13614cf0368Sopenharmony_ci} 13714cf0368Sopenharmony_ci 13814cf0368Sopenharmony_ciOH_UdsPlainText* OH_UdsPlainText_Create() 13914cf0368Sopenharmony_ci{ 14014cf0368Sopenharmony_ci OH_UdsPlainText* plainText = new (std::nothrow) OH_UdsPlainText(); 14114cf0368Sopenharmony_ci if (plainText == nullptr) { 14214cf0368Sopenharmony_ci LOG_ERROR(UDMF_CAPI, "Failed to apply for memory."); 14314cf0368Sopenharmony_ci return nullptr; 14414cf0368Sopenharmony_ci } 14514cf0368Sopenharmony_ci plainText->obj = std::make_shared<Object>(); 14614cf0368Sopenharmony_ci plainText->obj->value_[UNIFORM_DATA_TYPE] = UDMF_META_PLAIN_TEXT; 14714cf0368Sopenharmony_ci plainText->obj->value_[CONTENT] = ""; 14814cf0368Sopenharmony_ci plainText->obj->value_[ABSTRACT] = ""; 14914cf0368Sopenharmony_ci return plainText; 15014cf0368Sopenharmony_ci} 15114cf0368Sopenharmony_ci 15214cf0368Sopenharmony_civoid OH_UdsPlainText_Destroy(OH_UdsPlainText* pThis) 15314cf0368Sopenharmony_ci{ 15414cf0368Sopenharmony_ci if (pThis != nullptr && pThis->cid == NdkStructId::UDS_PLAIN_TEXT_STRUCT_ID) { 15514cf0368Sopenharmony_ci delete pThis; 15614cf0368Sopenharmony_ci } 15714cf0368Sopenharmony_ci} 15814cf0368Sopenharmony_ci 15914cf0368Sopenharmony_ciconst char* OH_UdsPlainText_GetType(OH_UdsPlainText* pThis) 16014cf0368Sopenharmony_ci{ 16114cf0368Sopenharmony_ci return GetUdsStrValue(pThis, NdkStructId::UDS_PLAIN_TEXT_STRUCT_ID, UNIFORM_DATA_TYPE); 16214cf0368Sopenharmony_ci} 16314cf0368Sopenharmony_ci 16414cf0368Sopenharmony_ciconst char* OH_UdsPlainText_GetContent(OH_UdsPlainText* pThis) 16514cf0368Sopenharmony_ci{ 16614cf0368Sopenharmony_ci return GetUdsStrValue(pThis, NdkStructId::UDS_PLAIN_TEXT_STRUCT_ID, CONTENT); 16714cf0368Sopenharmony_ci} 16814cf0368Sopenharmony_ci 16914cf0368Sopenharmony_ciconst char* OH_UdsPlainText_GetAbstract(OH_UdsPlainText* pThis) 17014cf0368Sopenharmony_ci{ 17114cf0368Sopenharmony_ci return GetUdsStrValue(pThis, NdkStructId::UDS_PLAIN_TEXT_STRUCT_ID, ABSTRACT); 17214cf0368Sopenharmony_ci} 17314cf0368Sopenharmony_ci 17414cf0368Sopenharmony_ciint OH_UdsPlainText_SetContent(OH_UdsPlainText* pThis, const char* content) 17514cf0368Sopenharmony_ci{ 17614cf0368Sopenharmony_ci if (content == nullptr || IsInvalidUdsObjectPtr(pThis, NdkStructId::UDS_PLAIN_TEXT_STRUCT_ID)) { 17714cf0368Sopenharmony_ci return Udmf_ErrCode::UDMF_E_INVALID_PARAM; 17814cf0368Sopenharmony_ci } 17914cf0368Sopenharmony_ci return pThis->SetUdsValue<std::string>(CONTENT, content); 18014cf0368Sopenharmony_ci} 18114cf0368Sopenharmony_ci 18214cf0368Sopenharmony_ciint OH_UdsPlainText_SetAbstract(OH_UdsPlainText* pThis, const char* abstract) 18314cf0368Sopenharmony_ci{ 18414cf0368Sopenharmony_ci if (abstract == nullptr || IsInvalidUdsObjectPtr(pThis, NdkStructId::UDS_PLAIN_TEXT_STRUCT_ID)) { 18514cf0368Sopenharmony_ci return Udmf_ErrCode::UDMF_E_INVALID_PARAM; 18614cf0368Sopenharmony_ci } 18714cf0368Sopenharmony_ci return pThis->SetUdsValue<std::string>(ABSTRACT, abstract); 18814cf0368Sopenharmony_ci} 18914cf0368Sopenharmony_ci 19014cf0368Sopenharmony_ciOH_UdsHyperlink* OH_UdsHyperlink_Create() 19114cf0368Sopenharmony_ci{ 19214cf0368Sopenharmony_ci OH_UdsHyperlink* hyperlink = new (std::nothrow) OH_UdsHyperlink(); 19314cf0368Sopenharmony_ci if (hyperlink == nullptr) { 19414cf0368Sopenharmony_ci LOG_ERROR(UDMF_CAPI, "Failed to apply for memory."); 19514cf0368Sopenharmony_ci return nullptr; 19614cf0368Sopenharmony_ci } 19714cf0368Sopenharmony_ci hyperlink->obj = std::make_shared<Object>(); 19814cf0368Sopenharmony_ci hyperlink->obj->value_[UNIFORM_DATA_TYPE] = UDMF_META_HYPERLINK; 19914cf0368Sopenharmony_ci hyperlink->obj->value_[URL] = ""; 20014cf0368Sopenharmony_ci hyperlink->obj->value_[DESCRIPTION] = ""; 20114cf0368Sopenharmony_ci return hyperlink; 20214cf0368Sopenharmony_ci} 20314cf0368Sopenharmony_ci 20414cf0368Sopenharmony_civoid OH_UdsHyperlink_Destroy(OH_UdsHyperlink* pThis) 20514cf0368Sopenharmony_ci{ 20614cf0368Sopenharmony_ci if (pThis != nullptr && pThis->cid == NdkStructId::UDS_HYPERLINK_STRUCT_ID) { 20714cf0368Sopenharmony_ci delete pThis; 20814cf0368Sopenharmony_ci } 20914cf0368Sopenharmony_ci} 21014cf0368Sopenharmony_ci 21114cf0368Sopenharmony_ciconst char* OH_UdsHyperlink_GetType(OH_UdsHyperlink* pThis) 21214cf0368Sopenharmony_ci{ 21314cf0368Sopenharmony_ci return GetUdsStrValue(pThis, NdkStructId::UDS_HYPERLINK_STRUCT_ID, UNIFORM_DATA_TYPE); 21414cf0368Sopenharmony_ci} 21514cf0368Sopenharmony_ci 21614cf0368Sopenharmony_ciconst char* OH_UdsHyperlink_GetUrl(OH_UdsHyperlink* pThis) 21714cf0368Sopenharmony_ci{ 21814cf0368Sopenharmony_ci return GetUdsStrValue(pThis, NdkStructId::UDS_HYPERLINK_STRUCT_ID, URL); 21914cf0368Sopenharmony_ci} 22014cf0368Sopenharmony_ci 22114cf0368Sopenharmony_ciconst char* OH_UdsHyperlink_GetDescription(OH_UdsHyperlink* pThis) 22214cf0368Sopenharmony_ci{ 22314cf0368Sopenharmony_ci return GetUdsStrValue(pThis, NdkStructId::UDS_HYPERLINK_STRUCT_ID, DESCRIPTION); 22414cf0368Sopenharmony_ci} 22514cf0368Sopenharmony_ci 22614cf0368Sopenharmony_ciint OH_UdsHyperlink_SetUrl(OH_UdsHyperlink* pThis, const char* url) 22714cf0368Sopenharmony_ci{ 22814cf0368Sopenharmony_ci if (url == nullptr || IsInvalidUdsObjectPtr(pThis, NdkStructId::UDS_HYPERLINK_STRUCT_ID)) { 22914cf0368Sopenharmony_ci return Udmf_ErrCode::UDMF_E_INVALID_PARAM; 23014cf0368Sopenharmony_ci } 23114cf0368Sopenharmony_ci return pThis->SetUdsValue<std::string>(URL, url); 23214cf0368Sopenharmony_ci} 23314cf0368Sopenharmony_ci 23414cf0368Sopenharmony_ciint OH_UdsHyperlink_SetDescription(OH_UdsHyperlink* pThis, const char* description) 23514cf0368Sopenharmony_ci{ 23614cf0368Sopenharmony_ci if (description == nullptr || IsInvalidUdsObjectPtr(pThis, NdkStructId::UDS_HYPERLINK_STRUCT_ID)) { 23714cf0368Sopenharmony_ci return Udmf_ErrCode::UDMF_E_INVALID_PARAM; 23814cf0368Sopenharmony_ci } 23914cf0368Sopenharmony_ci return pThis->SetUdsValue<std::string>(DESCRIPTION, description); 24014cf0368Sopenharmony_ci} 24114cf0368Sopenharmony_ci 24214cf0368Sopenharmony_ciOH_UdsHtml* OH_UdsHtml_Create() 24314cf0368Sopenharmony_ci{ 24414cf0368Sopenharmony_ci OH_UdsHtml* html = new (std::nothrow) OH_UdsHtml(); 24514cf0368Sopenharmony_ci if (html == nullptr) { 24614cf0368Sopenharmony_ci LOG_ERROR(UDMF_CAPI, "Failed to apply for memory."); 24714cf0368Sopenharmony_ci return nullptr; 24814cf0368Sopenharmony_ci } 24914cf0368Sopenharmony_ci html->obj = std::make_shared<Object>(); 25014cf0368Sopenharmony_ci html->obj->value_[UNIFORM_DATA_TYPE] = UDMF_META_HTML; 25114cf0368Sopenharmony_ci html->obj->value_[HTML_CONTENT] = ""; 25214cf0368Sopenharmony_ci html->obj->value_[PLAIN_CONTENT] = ""; 25314cf0368Sopenharmony_ci return html; 25414cf0368Sopenharmony_ci} 25514cf0368Sopenharmony_ci 25614cf0368Sopenharmony_civoid OH_UdsHtml_Destroy(OH_UdsHtml* pThis) 25714cf0368Sopenharmony_ci{ 25814cf0368Sopenharmony_ci if (pThis != nullptr && pThis->cid == NdkStructId::UDS_HTML_STRUCT_ID) { 25914cf0368Sopenharmony_ci delete pThis; 26014cf0368Sopenharmony_ci } 26114cf0368Sopenharmony_ci} 26214cf0368Sopenharmony_ci 26314cf0368Sopenharmony_ciconst char* OH_UdsHtml_GetType(OH_UdsHtml* pThis) 26414cf0368Sopenharmony_ci{ 26514cf0368Sopenharmony_ci return GetUdsStrValue(pThis, NdkStructId::UDS_HTML_STRUCT_ID, UNIFORM_DATA_TYPE); 26614cf0368Sopenharmony_ci} 26714cf0368Sopenharmony_ci 26814cf0368Sopenharmony_ciconst char* OH_UdsHtml_GetContent(OH_UdsHtml* pThis) 26914cf0368Sopenharmony_ci{ 27014cf0368Sopenharmony_ci return GetUdsStrValue(pThis, NdkStructId::UDS_HTML_STRUCT_ID, HTML_CONTENT); 27114cf0368Sopenharmony_ci} 27214cf0368Sopenharmony_ci 27314cf0368Sopenharmony_ciconst char* OH_UdsHtml_GetPlainContent(OH_UdsHtml* pThis) 27414cf0368Sopenharmony_ci{ 27514cf0368Sopenharmony_ci return GetUdsStrValue(pThis, NdkStructId::UDS_HTML_STRUCT_ID, PLAIN_CONTENT); 27614cf0368Sopenharmony_ci} 27714cf0368Sopenharmony_ci 27814cf0368Sopenharmony_ciint OH_UdsHtml_SetContent(OH_UdsHtml* pThis, const char* content) 27914cf0368Sopenharmony_ci{ 28014cf0368Sopenharmony_ci if (content == nullptr || IsInvalidUdsObjectPtr(pThis, NdkStructId::UDS_HTML_STRUCT_ID)) { 28114cf0368Sopenharmony_ci return Udmf_ErrCode::UDMF_E_INVALID_PARAM; 28214cf0368Sopenharmony_ci } 28314cf0368Sopenharmony_ci return pThis->SetUdsValue<std::string>(HTML_CONTENT, content); 28414cf0368Sopenharmony_ci} 28514cf0368Sopenharmony_ci 28614cf0368Sopenharmony_ciint OH_UdsHtml_SetPlainContent(OH_UdsHtml* pThis, const char* plainContent) 28714cf0368Sopenharmony_ci{ 28814cf0368Sopenharmony_ci if (plainContent == nullptr || IsInvalidUdsObjectPtr(pThis, NdkStructId::UDS_HTML_STRUCT_ID)) { 28914cf0368Sopenharmony_ci return Udmf_ErrCode::UDMF_E_INVALID_PARAM; 29014cf0368Sopenharmony_ci } 29114cf0368Sopenharmony_ci return pThis->SetUdsValue<std::string>(PLAIN_CONTENT, plainContent); 29214cf0368Sopenharmony_ci} 29314cf0368Sopenharmony_ci 29414cf0368Sopenharmony_ciOH_UdsAppItem* OH_UdsAppItem_Create() 29514cf0368Sopenharmony_ci{ 29614cf0368Sopenharmony_ci OH_UdsAppItem* appItem = new (std::nothrow) OH_UdsAppItem(); 29714cf0368Sopenharmony_ci if (appItem == nullptr) { 29814cf0368Sopenharmony_ci LOG_ERROR(UDMF_CAPI, "Failed to apply for memory."); 29914cf0368Sopenharmony_ci return nullptr; 30014cf0368Sopenharmony_ci } 30114cf0368Sopenharmony_ci appItem->obj = std::make_shared<Object>(); 30214cf0368Sopenharmony_ci appItem->obj->value_[UNIFORM_DATA_TYPE] = UDMF_META_OPENHARMONY_APP_ITEM; 30314cf0368Sopenharmony_ci appItem->obj->value_[APP_ID] = ""; 30414cf0368Sopenharmony_ci appItem->obj->value_[APP_NAME] = ""; 30514cf0368Sopenharmony_ci appItem->obj->value_[APP_ICON_ID] = ""; 30614cf0368Sopenharmony_ci appItem->obj->value_[APP_LABEL_ID] = ""; 30714cf0368Sopenharmony_ci appItem->obj->value_[BUNDLE_NAME] = ""; 30814cf0368Sopenharmony_ci appItem->obj->value_[ABILITY_NAME] = ""; 30914cf0368Sopenharmony_ci return appItem; 31014cf0368Sopenharmony_ci} 31114cf0368Sopenharmony_ci 31214cf0368Sopenharmony_civoid OH_UdsAppItem_Destroy(OH_UdsAppItem* pThis) 31314cf0368Sopenharmony_ci{ 31414cf0368Sopenharmony_ci if (pThis != nullptr && pThis->cid == NdkStructId::UDS_APP_ITEM_STRUCT_ID) { 31514cf0368Sopenharmony_ci delete pThis; 31614cf0368Sopenharmony_ci } 31714cf0368Sopenharmony_ci} 31814cf0368Sopenharmony_ci 31914cf0368Sopenharmony_ciconst char* OH_UdsAppItem_GetType(OH_UdsAppItem* pThis) 32014cf0368Sopenharmony_ci{ 32114cf0368Sopenharmony_ci return GetUdsStrValue(pThis, NdkStructId::UDS_APP_ITEM_STRUCT_ID, UNIFORM_DATA_TYPE); 32214cf0368Sopenharmony_ci} 32314cf0368Sopenharmony_ci 32414cf0368Sopenharmony_ciconst char* OH_UdsAppItem_GetId(OH_UdsAppItem* pThis) 32514cf0368Sopenharmony_ci{ 32614cf0368Sopenharmony_ci return GetUdsStrValue(pThis, NdkStructId::UDS_APP_ITEM_STRUCT_ID, APP_ID); 32714cf0368Sopenharmony_ci} 32814cf0368Sopenharmony_ci 32914cf0368Sopenharmony_ciconst char* OH_UdsAppItem_GetName(OH_UdsAppItem* pThis) 33014cf0368Sopenharmony_ci{ 33114cf0368Sopenharmony_ci return GetUdsStrValue(pThis, NdkStructId::UDS_APP_ITEM_STRUCT_ID, APP_NAME); 33214cf0368Sopenharmony_ci} 33314cf0368Sopenharmony_ci 33414cf0368Sopenharmony_ciconst char* OH_UdsAppItem_GetIconId(OH_UdsAppItem* pThis) 33514cf0368Sopenharmony_ci{ 33614cf0368Sopenharmony_ci return GetUdsStrValue(pThis, NdkStructId::UDS_APP_ITEM_STRUCT_ID, APP_ICON_ID); 33714cf0368Sopenharmony_ci} 33814cf0368Sopenharmony_ci 33914cf0368Sopenharmony_ciconst char* OH_UdsAppItem_GetLabelId(OH_UdsAppItem* pThis) 34014cf0368Sopenharmony_ci{ 34114cf0368Sopenharmony_ci return GetUdsStrValue(pThis, NdkStructId::UDS_APP_ITEM_STRUCT_ID, APP_LABEL_ID); 34214cf0368Sopenharmony_ci} 34314cf0368Sopenharmony_ci 34414cf0368Sopenharmony_ciconst char* OH_UdsAppItem_GetBundleName(OH_UdsAppItem* pThis) 34514cf0368Sopenharmony_ci{ 34614cf0368Sopenharmony_ci return GetUdsStrValue(pThis, NdkStructId::UDS_APP_ITEM_STRUCT_ID, BUNDLE_NAME); 34714cf0368Sopenharmony_ci} 34814cf0368Sopenharmony_ci 34914cf0368Sopenharmony_ciconst char* OH_UdsAppItem_GetAbilityName(OH_UdsAppItem* pThis) 35014cf0368Sopenharmony_ci{ 35114cf0368Sopenharmony_ci return GetUdsStrValue(pThis, NdkStructId::UDS_APP_ITEM_STRUCT_ID, ABILITY_NAME); 35214cf0368Sopenharmony_ci} 35314cf0368Sopenharmony_ci 35414cf0368Sopenharmony_ciint OH_UdsAppItem_SetId(OH_UdsAppItem* pThis, const char* appId) 35514cf0368Sopenharmony_ci{ 35614cf0368Sopenharmony_ci if (appId == nullptr || IsInvalidUdsObjectPtr(pThis, NdkStructId::UDS_APP_ITEM_STRUCT_ID)) { 35714cf0368Sopenharmony_ci return Udmf_ErrCode::UDMF_E_INVALID_PARAM; 35814cf0368Sopenharmony_ci } 35914cf0368Sopenharmony_ci return pThis->SetUdsValue<std::string>(APP_ID, appId); 36014cf0368Sopenharmony_ci} 36114cf0368Sopenharmony_ci 36214cf0368Sopenharmony_ciint OH_UdsAppItem_SetName(OH_UdsAppItem* pThis, const char* appName) 36314cf0368Sopenharmony_ci{ 36414cf0368Sopenharmony_ci if (appName == nullptr || IsInvalidUdsObjectPtr(pThis, NdkStructId::UDS_APP_ITEM_STRUCT_ID)) { 36514cf0368Sopenharmony_ci return Udmf_ErrCode::UDMF_E_INVALID_PARAM; 36614cf0368Sopenharmony_ci } 36714cf0368Sopenharmony_ci return pThis->SetUdsValue<std::string>(APP_NAME, appName); 36814cf0368Sopenharmony_ci} 36914cf0368Sopenharmony_ci 37014cf0368Sopenharmony_ciint OH_UdsAppItem_SetIconId(OH_UdsAppItem* pThis, const char* appIconId) 37114cf0368Sopenharmony_ci{ 37214cf0368Sopenharmony_ci if (appIconId == nullptr || IsInvalidUdsObjectPtr(pThis, NdkStructId::UDS_APP_ITEM_STRUCT_ID)) { 37314cf0368Sopenharmony_ci return Udmf_ErrCode::UDMF_E_INVALID_PARAM; 37414cf0368Sopenharmony_ci } 37514cf0368Sopenharmony_ci return pThis->SetUdsValue<std::string>(APP_ICON_ID, appIconId); 37614cf0368Sopenharmony_ci} 37714cf0368Sopenharmony_ci 37814cf0368Sopenharmony_ciint OH_UdsAppItem_SetLabelId(OH_UdsAppItem* pThis, const char* appLabelId) 37914cf0368Sopenharmony_ci{ 38014cf0368Sopenharmony_ci if (appLabelId == nullptr || IsInvalidUdsObjectPtr(pThis, NdkStructId::UDS_APP_ITEM_STRUCT_ID)) { 38114cf0368Sopenharmony_ci return Udmf_ErrCode::UDMF_E_INVALID_PARAM; 38214cf0368Sopenharmony_ci } 38314cf0368Sopenharmony_ci return pThis->SetUdsValue<std::string>(APP_LABEL_ID, appLabelId); 38414cf0368Sopenharmony_ci} 38514cf0368Sopenharmony_ci 38614cf0368Sopenharmony_ciint OH_UdsAppItem_SetBundleName(OH_UdsAppItem* pThis, const char* bundleName) 38714cf0368Sopenharmony_ci{ 38814cf0368Sopenharmony_ci if (bundleName == nullptr || IsInvalidUdsObjectPtr(pThis, NdkStructId::UDS_APP_ITEM_STRUCT_ID)) { 38914cf0368Sopenharmony_ci return Udmf_ErrCode::UDMF_E_INVALID_PARAM; 39014cf0368Sopenharmony_ci } 39114cf0368Sopenharmony_ci return pThis->SetUdsValue<std::string>(BUNDLE_NAME, bundleName); 39214cf0368Sopenharmony_ci} 39314cf0368Sopenharmony_ci 39414cf0368Sopenharmony_ciint OH_UdsAppItem_SetAbilityName(OH_UdsAppItem* pThis, const char* abilityName) 39514cf0368Sopenharmony_ci{ 39614cf0368Sopenharmony_ci if (abilityName == nullptr || IsInvalidUdsObjectPtr(pThis, NdkStructId::UDS_APP_ITEM_STRUCT_ID)) { 39714cf0368Sopenharmony_ci return Udmf_ErrCode::UDMF_E_INVALID_PARAM; 39814cf0368Sopenharmony_ci } 39914cf0368Sopenharmony_ci return pThis->SetUdsValue<std::string>(ABILITY_NAME, abilityName); 40014cf0368Sopenharmony_ci} 40114cf0368Sopenharmony_ci 40214cf0368Sopenharmony_ciOH_UdsFileUri* OH_UdsFileUri_Create() 40314cf0368Sopenharmony_ci{ 40414cf0368Sopenharmony_ci OH_UdsFileUri* fileUri = new (std::nothrow) OH_UdsFileUri(); 40514cf0368Sopenharmony_ci if (fileUri == nullptr) { 40614cf0368Sopenharmony_ci LOG_ERROR(UDMF_CAPI, "Failed to apply for memory."); 40714cf0368Sopenharmony_ci return nullptr; 40814cf0368Sopenharmony_ci } 40914cf0368Sopenharmony_ci fileUri->obj = std::make_shared<Object>(); 41014cf0368Sopenharmony_ci fileUri->obj->value_[UNIFORM_DATA_TYPE] = UDMF_META_GENERAL_FILE_URI; 41114cf0368Sopenharmony_ci fileUri->obj->value_[FILE_URI_PARAM] = ""; 41214cf0368Sopenharmony_ci fileUri->obj->value_[FILE_TYPE] = ""; 41314cf0368Sopenharmony_ci return fileUri; 41414cf0368Sopenharmony_ci} 41514cf0368Sopenharmony_ci 41614cf0368Sopenharmony_civoid OH_UdsFileUri_Destroy(OH_UdsFileUri* pThis) 41714cf0368Sopenharmony_ci{ 41814cf0368Sopenharmony_ci if (pThis != nullptr && pThis->cid == NdkStructId::UDS_FILE_URI_STRUCT_ID) { 41914cf0368Sopenharmony_ci delete pThis; 42014cf0368Sopenharmony_ci } 42114cf0368Sopenharmony_ci} 42214cf0368Sopenharmony_ci 42314cf0368Sopenharmony_ciconst char* OH_UdsFileUri_GetType(OH_UdsFileUri* pThis) 42414cf0368Sopenharmony_ci{ 42514cf0368Sopenharmony_ci return GetUdsStrValue(pThis, NdkStructId::UDS_FILE_URI_STRUCT_ID, UNIFORM_DATA_TYPE); 42614cf0368Sopenharmony_ci} 42714cf0368Sopenharmony_ci 42814cf0368Sopenharmony_ciconst char* OH_UdsFileUri_GetFileUri(OH_UdsFileUri* pThis) 42914cf0368Sopenharmony_ci{ 43014cf0368Sopenharmony_ci return GetUdsStrValue(pThis, NdkStructId::UDS_FILE_URI_STRUCT_ID, FILE_URI_PARAM); 43114cf0368Sopenharmony_ci} 43214cf0368Sopenharmony_ci 43314cf0368Sopenharmony_ciconst char* OH_UdsFileUri_GetFileType(OH_UdsFileUri* pThis) 43414cf0368Sopenharmony_ci{ 43514cf0368Sopenharmony_ci return GetUdsStrValue(pThis, NdkStructId::UDS_FILE_URI_STRUCT_ID, FILE_TYPE); 43614cf0368Sopenharmony_ci} 43714cf0368Sopenharmony_ci 43814cf0368Sopenharmony_ciint OH_UdsFileUri_SetFileUri(OH_UdsFileUri* pThis, const char* fileUri) 43914cf0368Sopenharmony_ci{ 44014cf0368Sopenharmony_ci if (fileUri == nullptr || IsInvalidUdsObjectPtr(pThis, NdkStructId::UDS_FILE_URI_STRUCT_ID)) { 44114cf0368Sopenharmony_ci return Udmf_ErrCode::UDMF_E_INVALID_PARAM; 44214cf0368Sopenharmony_ci } 44314cf0368Sopenharmony_ci return pThis->SetUdsValue<std::string>(FILE_URI_PARAM, fileUri); 44414cf0368Sopenharmony_ci} 44514cf0368Sopenharmony_ci 44614cf0368Sopenharmony_ciint OH_UdsFileUri_SetFileType(OH_UdsFileUri* pThis, const char* fileType) 44714cf0368Sopenharmony_ci{ 44814cf0368Sopenharmony_ci if (fileType == nullptr || IsInvalidUdsObjectPtr(pThis, NdkStructId::UDS_FILE_URI_STRUCT_ID)) { 44914cf0368Sopenharmony_ci return Udmf_ErrCode::UDMF_E_INVALID_PARAM; 45014cf0368Sopenharmony_ci } 45114cf0368Sopenharmony_ci return pThis->SetUdsValue<std::string>(FILE_TYPE, fileType); 45214cf0368Sopenharmony_ci} 45314cf0368Sopenharmony_ci 45414cf0368Sopenharmony_ciOH_UdsPixelMap* OH_UdsPixelMap_Create() 45514cf0368Sopenharmony_ci{ 45614cf0368Sopenharmony_ci OH_UdsPixelMap* pixelMap = new (std::nothrow) OH_UdsPixelMap(); 45714cf0368Sopenharmony_ci if (pixelMap == nullptr) { 45814cf0368Sopenharmony_ci LOG_ERROR(UDMF_CAPI, "Failed to apply for memory."); 45914cf0368Sopenharmony_ci return nullptr; 46014cf0368Sopenharmony_ci } 46114cf0368Sopenharmony_ci pixelMap->obj = std::make_shared<Object>(); 46214cf0368Sopenharmony_ci pixelMap->obj->value_[UNIFORM_DATA_TYPE] = UDMF_META_OPENHARMONY_PIXEL_MAP; 46314cf0368Sopenharmony_ci pixelMap->obj->value_[PIXEL_MAP] = std::make_shared<OHOS::Media::PixelMap>(); 46414cf0368Sopenharmony_ci return pixelMap; 46514cf0368Sopenharmony_ci} 46614cf0368Sopenharmony_ci 46714cf0368Sopenharmony_civoid OH_UdsPixelMap_Destroy(OH_UdsPixelMap* pThis) 46814cf0368Sopenharmony_ci{ 46914cf0368Sopenharmony_ci if (pThis != nullptr && pThis->cid == NdkStructId::UDS_PIXEL_MAP_STRUCT_ID) { 47014cf0368Sopenharmony_ci delete pThis; 47114cf0368Sopenharmony_ci } 47214cf0368Sopenharmony_ci} 47314cf0368Sopenharmony_ci 47414cf0368Sopenharmony_ciconst char* OH_UdsPixelMap_GetType(OH_UdsPixelMap* pThis) 47514cf0368Sopenharmony_ci{ 47614cf0368Sopenharmony_ci return GetUdsStrValue(pThis, NdkStructId::UDS_PIXEL_MAP_STRUCT_ID, UNIFORM_DATA_TYPE); 47714cf0368Sopenharmony_ci} 47814cf0368Sopenharmony_ci 47914cf0368Sopenharmony_civoid OH_UdsPixelMap_GetPixelMap(OH_UdsPixelMap* pThis, OH_PixelmapNative* pixelmapNative) 48014cf0368Sopenharmony_ci{ 48114cf0368Sopenharmony_ci if (IsInvalidUdsObjectPtr(pThis, NdkStructId::UDS_PIXEL_MAP_STRUCT_ID)) { 48214cf0368Sopenharmony_ci return; 48314cf0368Sopenharmony_ci } 48414cf0368Sopenharmony_ci auto pixelMap = pThis->GetUdsValue<std::shared_ptr<OHOS::Media::PixelMap>>(PIXEL_MAP); 48514cf0368Sopenharmony_ci if (pixelMap == nullptr) { 48614cf0368Sopenharmony_ci LOG_ERROR(UDMF_CAPI, "Get pixelMap value is null."); 48714cf0368Sopenharmony_ci return; 48814cf0368Sopenharmony_ci } 48914cf0368Sopenharmony_ci *pixelmapNative = OH_PixelmapNative(*pixelMap); 49014cf0368Sopenharmony_ci} 49114cf0368Sopenharmony_ci 49214cf0368Sopenharmony_ciint OH_UdsPixelMap_SetPixelMap(OH_UdsPixelMap* pThis, OH_PixelmapNative* pixelmapNative) 49314cf0368Sopenharmony_ci{ 49414cf0368Sopenharmony_ci if (pixelmapNative == nullptr || IsInvalidUdsObjectPtr(pThis, NdkStructId::UDS_PIXEL_MAP_STRUCT_ID)) { 49514cf0368Sopenharmony_ci return Udmf_ErrCode::UDMF_E_INVALID_PARAM; 49614cf0368Sopenharmony_ci } 49714cf0368Sopenharmony_ci return pThis->SetUdsValue<std::shared_ptr<OHOS::Media::PixelMap>>(PIXEL_MAP, pixelmapNative->GetInnerPixelmap()); 49814cf0368Sopenharmony_ci} 49914cf0368Sopenharmony_ci 50014cf0368Sopenharmony_ciOH_UdsArrayBuffer* OH_UdsArrayBuffer_Create() 50114cf0368Sopenharmony_ci{ 50214cf0368Sopenharmony_ci auto *buffer = new (std::nothrow) OH_UdsArrayBuffer(); 50314cf0368Sopenharmony_ci if (buffer == nullptr) { 50414cf0368Sopenharmony_ci LOG_ERROR(UDMF_CAPI, "Failed to apply for memory."); 50514cf0368Sopenharmony_ci return nullptr; 50614cf0368Sopenharmony_ci } 50714cf0368Sopenharmony_ci buffer->obj = std::make_shared<Object>(); 50814cf0368Sopenharmony_ci buffer->obj->value_[UNIFORM_DATA_TYPE] = ""; 50914cf0368Sopenharmony_ci buffer->obj->value_[ARRAY_BUFFER] = std::vector<uint8_t>(); 51014cf0368Sopenharmony_ci buffer->obj->value_[ARRAY_BUFFER_LENGTH] = 0; 51114cf0368Sopenharmony_ci return buffer; 51214cf0368Sopenharmony_ci} 51314cf0368Sopenharmony_ci 51414cf0368Sopenharmony_ciint OH_UdsArrayBuffer_Destroy(OH_UdsArrayBuffer* buffer) 51514cf0368Sopenharmony_ci{ 51614cf0368Sopenharmony_ci if (IsInvalidUdsObjectPtr(buffer, NdkStructId::UDS_ARRAY_BUFFER_STRUCT_ID)) { 51714cf0368Sopenharmony_ci LOG_ERROR(UDMF_CAPI, "Param is invalid."); 51814cf0368Sopenharmony_ci return UDMF_E_INVALID_PARAM; 51914cf0368Sopenharmony_ci } 52014cf0368Sopenharmony_ci delete buffer; 52114cf0368Sopenharmony_ci return UDMF_E_OK; 52214cf0368Sopenharmony_ci} 52314cf0368Sopenharmony_ci 52414cf0368Sopenharmony_ciint OH_UdsArrayBuffer_SetData(OH_UdsArrayBuffer* buffer, unsigned char* data, unsigned int len) 52514cf0368Sopenharmony_ci{ 52614cf0368Sopenharmony_ci if (data == nullptr || len == 0 || IsInvalidUdsObjectPtr(buffer, NdkStructId::UDS_ARRAY_BUFFER_STRUCT_ID) || 52714cf0368Sopenharmony_ci len > MAX_GENERAL_ENTRY_SIZE) { 52814cf0368Sopenharmony_ci LOG_ERROR(UDMF_CAPI, "Param is invalid."); 52914cf0368Sopenharmony_ci return UDMF_E_INVALID_PARAM; 53014cf0368Sopenharmony_ci } 53114cf0368Sopenharmony_ci std::vector<uint8_t> arrayBuffer(data, data + len); 53214cf0368Sopenharmony_ci int ret = buffer->SetUdsValue<std::vector<uint8_t>>(ARRAY_BUFFER, arrayBuffer); 53314cf0368Sopenharmony_ci if (ret != UDMF_E_OK) { 53414cf0368Sopenharmony_ci LOG_ERROR(UDMF_CAPI, "Failed to apply for memory. ret: %{public}d", ret); 53514cf0368Sopenharmony_ci return ret; 53614cf0368Sopenharmony_ci } 53714cf0368Sopenharmony_ci ret = buffer->SetUdsValue<int>(ARRAY_BUFFER_LENGTH, static_cast<int>(len)); 53814cf0368Sopenharmony_ci return ret; 53914cf0368Sopenharmony_ci} 54014cf0368Sopenharmony_ci 54114cf0368Sopenharmony_ciint OH_UdsArrayBuffer_GetData(OH_UdsArrayBuffer* buffer, unsigned char** data, unsigned int* len) 54214cf0368Sopenharmony_ci{ 54314cf0368Sopenharmony_ci if (IsInvalidUdsObjectPtr(buffer, NdkStructId::UDS_ARRAY_BUFFER_STRUCT_ID)) { 54414cf0368Sopenharmony_ci return UDMF_E_INVALID_PARAM; 54514cf0368Sopenharmony_ci } 54614cf0368Sopenharmony_ci return GetUdsUint8Value(buffer, ARRAY_BUFFER, ARRAY_BUFFER_LENGTH, data, len); 54714cf0368Sopenharmony_ci} 54814cf0368Sopenharmony_ci 54914cf0368Sopenharmony_ciOH_UdsContentForm* OH_UdsContentForm_Create() 55014cf0368Sopenharmony_ci{ 55114cf0368Sopenharmony_ci auto contentForm = new (std::nothrow) OH_UdsContentForm(); 55214cf0368Sopenharmony_ci if (contentForm == nullptr) { 55314cf0368Sopenharmony_ci LOG_ERROR(UDMF_CAPI, "Failed to apply for memory."); 55414cf0368Sopenharmony_ci return nullptr; 55514cf0368Sopenharmony_ci } 55614cf0368Sopenharmony_ci contentForm->obj = std::make_shared<Object>(); 55714cf0368Sopenharmony_ci contentForm->obj->value_[UNIFORM_DATA_TYPE] = UDMF_METE_GENERAL_CONTENT_FORM; 55814cf0368Sopenharmony_ci contentForm->obj->value_[THUMB_DATA] = std::vector<uint8_t>(); 55914cf0368Sopenharmony_ci contentForm->obj->value_[THUMB_DATA_LENGTH] = 0; 56014cf0368Sopenharmony_ci contentForm->obj->value_[DESCRIPTION] = ""; 56114cf0368Sopenharmony_ci contentForm->obj->value_[TITLE] = ""; 56214cf0368Sopenharmony_ci contentForm->obj->value_[APP_ICON] = std::vector<uint8_t>(); 56314cf0368Sopenharmony_ci contentForm->obj->value_[APP_ICON_LENGTH] = 0; 56414cf0368Sopenharmony_ci contentForm->obj->value_[APP_NAME] = ""; 56514cf0368Sopenharmony_ci contentForm->obj->value_[LINK_URL] = ""; 56614cf0368Sopenharmony_ci return contentForm; 56714cf0368Sopenharmony_ci} 56814cf0368Sopenharmony_ci 56914cf0368Sopenharmony_civoid OH_UdsContentForm_Destroy(OH_UdsContentForm* pThis) 57014cf0368Sopenharmony_ci{ 57114cf0368Sopenharmony_ci if (pThis != nullptr && pThis->cid == NdkStructId::UDS_CONTENT_FORM_STRUCT_ID) { 57214cf0368Sopenharmony_ci delete pThis; 57314cf0368Sopenharmony_ci } 57414cf0368Sopenharmony_ci} 57514cf0368Sopenharmony_ci 57614cf0368Sopenharmony_ciconst char* OH_UdsContentForm_GetType(OH_UdsContentForm* pThis) 57714cf0368Sopenharmony_ci{ 57814cf0368Sopenharmony_ci return GetUdsStrValue(pThis, NdkStructId::UDS_CONTENT_FORM_STRUCT_ID, UNIFORM_DATA_TYPE); 57914cf0368Sopenharmony_ci} 58014cf0368Sopenharmony_ci 58114cf0368Sopenharmony_ciint OH_UdsContentForm_GetThumbData(OH_UdsContentForm* pThis, unsigned char** thumbData, unsigned int* len) 58214cf0368Sopenharmony_ci{ 58314cf0368Sopenharmony_ci if (IsInvalidUdsObjectPtr(pThis, NdkStructId::UDS_CONTENT_FORM_STRUCT_ID)) { 58414cf0368Sopenharmony_ci return UDMF_E_INVALID_PARAM; 58514cf0368Sopenharmony_ci } 58614cf0368Sopenharmony_ci return GetUdsUint8Value(pThis, THUMB_DATA, THUMB_DATA_LENGTH, thumbData, len); 58714cf0368Sopenharmony_ci} 58814cf0368Sopenharmony_ci 58914cf0368Sopenharmony_ciconst char* OH_UdsContentForm_GetDescription(OH_UdsContentForm* pThis) 59014cf0368Sopenharmony_ci{ 59114cf0368Sopenharmony_ci return GetUdsStrValue(pThis, NdkStructId::UDS_CONTENT_FORM_STRUCT_ID, DESCRIPTION); 59214cf0368Sopenharmony_ci} 59314cf0368Sopenharmony_ci 59414cf0368Sopenharmony_ciconst char* OH_UdsContentForm_GetTitle(OH_UdsContentForm* pThis) 59514cf0368Sopenharmony_ci{ 59614cf0368Sopenharmony_ci return GetUdsStrValue(pThis, NdkStructId::UDS_CONTENT_FORM_STRUCT_ID, TITLE); 59714cf0368Sopenharmony_ci} 59814cf0368Sopenharmony_ci 59914cf0368Sopenharmony_ciint OH_UdsContentForm_GetAppIcon(OH_UdsContentForm* pThis, unsigned char** appIcon, unsigned int* len) 60014cf0368Sopenharmony_ci{ 60114cf0368Sopenharmony_ci if (IsInvalidUdsObjectPtr(pThis, NdkStructId::UDS_CONTENT_FORM_STRUCT_ID)) { 60214cf0368Sopenharmony_ci return UDMF_E_INVALID_PARAM; 60314cf0368Sopenharmony_ci } 60414cf0368Sopenharmony_ci return GetUdsUint8Value(pThis, APP_ICON, APP_ICON_LENGTH, appIcon, len); 60514cf0368Sopenharmony_ci} 60614cf0368Sopenharmony_ci 60714cf0368Sopenharmony_ciconst char* OH_UdsContentForm_GetAppName(OH_UdsContentForm* pThis) 60814cf0368Sopenharmony_ci{ 60914cf0368Sopenharmony_ci return GetUdsStrValue(pThis, NdkStructId::UDS_CONTENT_FORM_STRUCT_ID, APP_NAME); 61014cf0368Sopenharmony_ci} 61114cf0368Sopenharmony_ci 61214cf0368Sopenharmony_ciconst char* OH_UdsContentForm_GetLinkUri(OH_UdsContentForm* pThis) 61314cf0368Sopenharmony_ci{ 61414cf0368Sopenharmony_ci return GetUdsStrValue(pThis, NdkStructId::UDS_CONTENT_FORM_STRUCT_ID, LINK_URL); 61514cf0368Sopenharmony_ci} 61614cf0368Sopenharmony_ci 61714cf0368Sopenharmony_ciint OH_UdsContentForm_SetThumbData(OH_UdsContentForm* pThis, const unsigned char* thumbData, unsigned int len) 61814cf0368Sopenharmony_ci{ 61914cf0368Sopenharmony_ci if (thumbData == nullptr || len == 0 || IsInvalidUdsObjectPtr(pThis, NdkStructId::UDS_CONTENT_FORM_STRUCT_ID) || 62014cf0368Sopenharmony_ci len > MAX_GENERAL_ENTRY_SIZE) { 62114cf0368Sopenharmony_ci LOG_ERROR(UDMF_CAPI, "Param is invalid."); 62214cf0368Sopenharmony_ci return UDMF_E_INVALID_PARAM; 62314cf0368Sopenharmony_ci } 62414cf0368Sopenharmony_ci std::vector<uint8_t> data(thumbData, thumbData + len); 62514cf0368Sopenharmony_ci int ret = pThis->SetUdsValue<std::vector<uint8_t>>(THUMB_DATA, data); 62614cf0368Sopenharmony_ci if (ret != UDMF_E_OK) { 62714cf0368Sopenharmony_ci LOG_ERROR(UDMF_CAPI, "Failed to apply for memory. ret: %{public}d", ret); 62814cf0368Sopenharmony_ci return ret; 62914cf0368Sopenharmony_ci } 63014cf0368Sopenharmony_ci ret = pThis->SetUdsValue<int>(THUMB_DATA_LENGTH, static_cast<int>(len)); 63114cf0368Sopenharmony_ci return ret; 63214cf0368Sopenharmony_ci} 63314cf0368Sopenharmony_ci 63414cf0368Sopenharmony_ciint OH_UdsContentForm_SetDescription(OH_UdsContentForm* pThis, const char* description) 63514cf0368Sopenharmony_ci{ 63614cf0368Sopenharmony_ci if (description == nullptr || IsInvalidUdsObjectPtr(pThis, NdkStructId::UDS_CONTENT_FORM_STRUCT_ID)) { 63714cf0368Sopenharmony_ci return Udmf_ErrCode::UDMF_E_INVALID_PARAM; 63814cf0368Sopenharmony_ci } 63914cf0368Sopenharmony_ci return pThis->SetUdsValue<std::string>(DESCRIPTION, description); 64014cf0368Sopenharmony_ci} 64114cf0368Sopenharmony_ci 64214cf0368Sopenharmony_ciint OH_UdsContentForm_SetTitle(OH_UdsContentForm* pThis, const char* title) 64314cf0368Sopenharmony_ci{ 64414cf0368Sopenharmony_ci if (title == nullptr || IsInvalidUdsObjectPtr(pThis, NdkStructId::UDS_CONTENT_FORM_STRUCT_ID)) { 64514cf0368Sopenharmony_ci return Udmf_ErrCode::UDMF_E_INVALID_PARAM; 64614cf0368Sopenharmony_ci } 64714cf0368Sopenharmony_ci return pThis->SetUdsValue<std::string>(TITLE, title); 64814cf0368Sopenharmony_ci} 64914cf0368Sopenharmony_ci 65014cf0368Sopenharmony_ciint OH_UdsContentForm_SetAppIcon(OH_UdsContentForm* pThis, const unsigned char* appIcon, unsigned int len) 65114cf0368Sopenharmony_ci{ 65214cf0368Sopenharmony_ci if (appIcon == nullptr || len == 0 || IsInvalidUdsObjectPtr(pThis, NdkStructId::UDS_CONTENT_FORM_STRUCT_ID) || 65314cf0368Sopenharmony_ci len > MAX_GENERAL_ENTRY_SIZE) { 65414cf0368Sopenharmony_ci LOG_ERROR(UDMF_CAPI, "Param is invalid."); 65514cf0368Sopenharmony_ci return UDMF_E_INVALID_PARAM; 65614cf0368Sopenharmony_ci } 65714cf0368Sopenharmony_ci std::vector<uint8_t> data(appIcon, appIcon + len); 65814cf0368Sopenharmony_ci int ret = pThis->SetUdsValue<std::vector<uint8_t>>(APP_ICON, data); 65914cf0368Sopenharmony_ci if (ret != UDMF_E_OK) { 66014cf0368Sopenharmony_ci LOG_ERROR(UDMF_CAPI, "Failed to apply for memory. ret: %{public}d", ret); 66114cf0368Sopenharmony_ci return ret; 66214cf0368Sopenharmony_ci } 66314cf0368Sopenharmony_ci ret = pThis->SetUdsValue<int>(APP_ICON_LENGTH, static_cast<int>(len)); 66414cf0368Sopenharmony_ci return ret; 66514cf0368Sopenharmony_ci} 66614cf0368Sopenharmony_ci 66714cf0368Sopenharmony_ciint OH_UdsContentForm_SetAppName(OH_UdsContentForm* pThis, const char* appName) 66814cf0368Sopenharmony_ci{ 66914cf0368Sopenharmony_ci if (appName == nullptr || IsInvalidUdsObjectPtr(pThis, NdkStructId::UDS_CONTENT_FORM_STRUCT_ID)) { 67014cf0368Sopenharmony_ci return Udmf_ErrCode::UDMF_E_INVALID_PARAM; 67114cf0368Sopenharmony_ci } 67214cf0368Sopenharmony_ci return pThis->SetUdsValue<std::string>(APP_NAME, appName); 67314cf0368Sopenharmony_ci} 67414cf0368Sopenharmony_ci 67514cf0368Sopenharmony_ciint OH_UdsContentForm_SetLinkUri(OH_UdsContentForm* pThis, const char* linkUri) 67614cf0368Sopenharmony_ci{ 67714cf0368Sopenharmony_ci if (linkUri == nullptr || IsInvalidUdsObjectPtr(pThis, NdkStructId::UDS_CONTENT_FORM_STRUCT_ID)) { 67814cf0368Sopenharmony_ci return Udmf_ErrCode::UDMF_E_INVALID_PARAM; 67914cf0368Sopenharmony_ci } 68014cf0368Sopenharmony_ci return pThis->SetUdsValue<std::string>(LINK_URL, linkUri); 68114cf0368Sopenharmony_ci}