125c1cde8Sopenharmony_ci/*
225c1cde8Sopenharmony_ci * Copyright (c) 2022 Huawei Device Co., Ltd.
325c1cde8Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
425c1cde8Sopenharmony_ci * you may not use this file except in compliance with the License.
525c1cde8Sopenharmony_ci * You may obtain a copy of the License at
625c1cde8Sopenharmony_ci *
725c1cde8Sopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
825c1cde8Sopenharmony_ci *
925c1cde8Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
1025c1cde8Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
1125c1cde8Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1225c1cde8Sopenharmony_ci * See the License for the specific language governing permissions and
1325c1cde8Sopenharmony_ci * limitations under the License.
1425c1cde8Sopenharmony_ci */
1525c1cde8Sopenharmony_ci
1625c1cde8Sopenharmony_ci#include "dataobs_mgr_client.h"
1725c1cde8Sopenharmony_ci#include "datashare_ext_ability_context.h"
1825c1cde8Sopenharmony_ci#include "data_storage_errors.h"
1925c1cde8Sopenharmony_ci#include "data_storage_log_wrapper.h"
2025c1cde8Sopenharmony_ci#include "opkey_ability.h"
2125c1cde8Sopenharmony_ci#include "pdp_profile_ability.h"
2225c1cde8Sopenharmony_ci#include "sim_ability.h"
2325c1cde8Sopenharmony_ci#include "sms_mms_ability.h"
2425c1cde8Sopenharmony_ci#include "global_params_ability.h"
2525c1cde8Sopenharmony_ci#include "opkey_version_ability.h"
2625c1cde8Sopenharmony_ci#include "telephony_datashare_stub_impl.h"
2725c1cde8Sopenharmony_ci
2825c1cde8Sopenharmony_ci
2925c1cde8Sopenharmony_cinamespace OHOS {
3025c1cde8Sopenharmony_cinamespace DataShare {
3125c1cde8Sopenharmony_ciusing DataObsMgrClient = OHOS::AAFwk::DataObsMgrClient;
3225c1cde8Sopenharmony_ciusing namespace OHOS::Telephony;
3325c1cde8Sopenharmony_ci
3425c1cde8Sopenharmony_civoid TelephonyDataShareStubImpl::SetOpKeyAbility(std::shared_ptr<DataShareExtAbility> extension)
3525c1cde8Sopenharmony_ci{
3625c1cde8Sopenharmony_ci    std::lock_guard<std::mutex> lock(opKeyMutex_);
3725c1cde8Sopenharmony_ci    opKeyAbility_ = extension;
3825c1cde8Sopenharmony_ci}
3925c1cde8Sopenharmony_ci
4025c1cde8Sopenharmony_civoid TelephonyDataShareStubImpl::SetPdpProfileAbility(std::shared_ptr<DataShareExtAbility> extension)
4125c1cde8Sopenharmony_ci{
4225c1cde8Sopenharmony_ci    std::lock_guard<std::mutex> lock(pdpProfileMutex_);
4325c1cde8Sopenharmony_ci    pdpProfileAbility_ = extension;
4425c1cde8Sopenharmony_ci}
4525c1cde8Sopenharmony_ci
4625c1cde8Sopenharmony_civoid TelephonyDataShareStubImpl::SetSimAbility(std::shared_ptr<DataShareExtAbility> extension)
4725c1cde8Sopenharmony_ci{
4825c1cde8Sopenharmony_ci    std::lock_guard<std::mutex> lock(simMutex_);
4925c1cde8Sopenharmony_ci    simAbility_ = extension;
5025c1cde8Sopenharmony_ci}
5125c1cde8Sopenharmony_ci
5225c1cde8Sopenharmony_civoid TelephonyDataShareStubImpl::SetSmsMmsAbility(std::shared_ptr<DataShareExtAbility> extension)
5325c1cde8Sopenharmony_ci{
5425c1cde8Sopenharmony_ci    std::lock_guard<std::mutex> lock(smsMmsMutex_);
5525c1cde8Sopenharmony_ci    smsMmsAbility_ = extension;
5625c1cde8Sopenharmony_ci}
5725c1cde8Sopenharmony_ci
5825c1cde8Sopenharmony_civoid TelephonyDataShareStubImpl::SetGlobalParamsAbility(std::shared_ptr<DataShareExtAbility> extension)
5925c1cde8Sopenharmony_ci{
6025c1cde8Sopenharmony_ci    std::lock_guard<std::mutex> lock(globalParamsMutex_);
6125c1cde8Sopenharmony_ci    globalParamsAbility_ = extension;
6225c1cde8Sopenharmony_ci}
6325c1cde8Sopenharmony_ci
6425c1cde8Sopenharmony_cistd::shared_ptr<DataShareExtAbility> TelephonyDataShareStubImpl::GetTelephonyDataAbility()
6525c1cde8Sopenharmony_ci{
6625c1cde8Sopenharmony_ci    return telephonyDataAbility_;
6725c1cde8Sopenharmony_ci}
6825c1cde8Sopenharmony_ci
6925c1cde8Sopenharmony_cistd::shared_ptr<DataShareExtAbility> TelephonyDataShareStubImpl::GetOpKeyAbility()
7025c1cde8Sopenharmony_ci{
7125c1cde8Sopenharmony_ci    std::lock_guard<std::mutex> lock(opKeyMutex_);
7225c1cde8Sopenharmony_ci    if (opKeyAbility_ == nullptr) {
7325c1cde8Sopenharmony_ci        opKeyAbility_.reset(OpKeyAbility::Create());
7425c1cde8Sopenharmony_ci    }
7525c1cde8Sopenharmony_ci    return opKeyAbility_;
7625c1cde8Sopenharmony_ci}
7725c1cde8Sopenharmony_ci
7825c1cde8Sopenharmony_cistd::shared_ptr<DataShareExtAbility> TelephonyDataShareStubImpl::GetPdpProfileAbility()
7925c1cde8Sopenharmony_ci{
8025c1cde8Sopenharmony_ci    std::lock_guard<std::mutex> lock(pdpProfileMutex_);
8125c1cde8Sopenharmony_ci    if (pdpProfileAbility_ == nullptr) {
8225c1cde8Sopenharmony_ci        pdpProfileAbility_.reset(PdpProfileAbility::Create());
8325c1cde8Sopenharmony_ci    }
8425c1cde8Sopenharmony_ci    return pdpProfileAbility_;
8525c1cde8Sopenharmony_ci}
8625c1cde8Sopenharmony_ci
8725c1cde8Sopenharmony_cistd::shared_ptr<DataShareExtAbility> TelephonyDataShareStubImpl::GetSimAbility()
8825c1cde8Sopenharmony_ci{
8925c1cde8Sopenharmony_ci    std::lock_guard<std::mutex> lock(simMutex_);
9025c1cde8Sopenharmony_ci    if (simAbility_ == nullptr) {
9125c1cde8Sopenharmony_ci        simAbility_.reset(SimAbility::Create());
9225c1cde8Sopenharmony_ci    }
9325c1cde8Sopenharmony_ci    return simAbility_;
9425c1cde8Sopenharmony_ci}
9525c1cde8Sopenharmony_ci
9625c1cde8Sopenharmony_cistd::shared_ptr<DataShareExtAbility> TelephonyDataShareStubImpl::GetSmsMmsAbility()
9725c1cde8Sopenharmony_ci{
9825c1cde8Sopenharmony_ci    std::lock_guard<std::mutex> lock(smsMmsMutex_);
9925c1cde8Sopenharmony_ci    if (smsMmsAbility_ == nullptr) {
10025c1cde8Sopenharmony_ci        smsMmsAbility_.reset(SmsMmsAbility::Create());
10125c1cde8Sopenharmony_ci    }
10225c1cde8Sopenharmony_ci    return smsMmsAbility_;
10325c1cde8Sopenharmony_ci}
10425c1cde8Sopenharmony_ci
10525c1cde8Sopenharmony_cistd::shared_ptr<DataShareExtAbility> TelephonyDataShareStubImpl::GetGlobalParamsAbility()
10625c1cde8Sopenharmony_ci{
10725c1cde8Sopenharmony_ci    std::lock_guard<std::mutex> lock(globalParamsMutex_);
10825c1cde8Sopenharmony_ci    if (globalParamsAbility_ == nullptr) {
10925c1cde8Sopenharmony_ci        globalParamsAbility_.reset(GlobalParamsAbility::Create());
11025c1cde8Sopenharmony_ci    }
11125c1cde8Sopenharmony_ci    return globalParamsAbility_;
11225c1cde8Sopenharmony_ci}
11325c1cde8Sopenharmony_ci
11425c1cde8Sopenharmony_cistd::shared_ptr<DataShareExtAbility> TelephonyDataShareStubImpl::GetOpkeyVersionAbility()
11525c1cde8Sopenharmony_ci{
11625c1cde8Sopenharmony_ci    if (opkeyVersionAbility_ == nullptr) {
11725c1cde8Sopenharmony_ci        opkeyVersionAbility_.reset(OpkeyVersionAbility::Create());
11825c1cde8Sopenharmony_ci    }
11925c1cde8Sopenharmony_ci    return opkeyVersionAbility_;
12025c1cde8Sopenharmony_ci}
12125c1cde8Sopenharmony_ci
12225c1cde8Sopenharmony_cistd::shared_ptr<DataShareExtAbility> TelephonyDataShareStubImpl::GetOwner(const Uri &uri)
12325c1cde8Sopenharmony_ci{
12425c1cde8Sopenharmony_ci    OHOS::Uri uriTemp = uri;
12525c1cde8Sopenharmony_ci    std::string path = uriTemp.GetPath();
12625c1cde8Sopenharmony_ci    DATA_STORAGE_LOGD("GetOwner uri: %{public}s", path.c_str());
12725c1cde8Sopenharmony_ci    if (path.find("com.ohos.telephonydataability") != std::string::npos) {
12825c1cde8Sopenharmony_ci        return GetTelephonyDataAbility();
12925c1cde8Sopenharmony_ci    }
13025c1cde8Sopenharmony_ci    if (path.find("com.ohos.opkeyability") != std::string::npos) {
13125c1cde8Sopenharmony_ci        return GetOpKeyAbility();
13225c1cde8Sopenharmony_ci    }
13325c1cde8Sopenharmony_ci    if (path.find("com.ohos.pdpprofileability") != std::string::npos) {
13425c1cde8Sopenharmony_ci        return GetPdpProfileAbility();
13525c1cde8Sopenharmony_ci    }
13625c1cde8Sopenharmony_ci    if (path.find("com.ohos.simability") != std::string::npos) {
13725c1cde8Sopenharmony_ci        return GetSimAbility();
13825c1cde8Sopenharmony_ci    }
13925c1cde8Sopenharmony_ci    if (path.find("com.ohos.smsmmsability") != std::string::npos) {
14025c1cde8Sopenharmony_ci        return GetSmsMmsAbility();
14125c1cde8Sopenharmony_ci    }
14225c1cde8Sopenharmony_ci    if (path.find("com.ohos.globalparamsability") != std::string::npos) {
14325c1cde8Sopenharmony_ci        return GetGlobalParamsAbility();
14425c1cde8Sopenharmony_ci    }
14525c1cde8Sopenharmony_ci#ifdef OHOS_BUILD_ENABLE_TELEPHONY_EXT
14625c1cde8Sopenharmony_ci    if (path.find("com.ohos.opkeyversionability") != std::string::npos) {
14725c1cde8Sopenharmony_ci        return GetOpkeyVersionAbility();
14825c1cde8Sopenharmony_ci    }
14925c1cde8Sopenharmony_ci#endif
15025c1cde8Sopenharmony_ci    return nullptr;
15125c1cde8Sopenharmony_ci}
15225c1cde8Sopenharmony_ci
15325c1cde8Sopenharmony_ciint TelephonyDataShareStubImpl::Insert(const Uri &uri, const DataShareValuesBucket &value)
15425c1cde8Sopenharmony_ci{
15525c1cde8Sopenharmony_ci    DATA_STORAGE_LOGD("Insert begin.");
15625c1cde8Sopenharmony_ci    int ret = 0;
15725c1cde8Sopenharmony_ci    auto extension = GetOwner(uri);
15825c1cde8Sopenharmony_ci    if (extension == nullptr) {
15925c1cde8Sopenharmony_ci        DATA_STORAGE_LOGE("Insert failed, extension is null.");
16025c1cde8Sopenharmony_ci        return ret;
16125c1cde8Sopenharmony_ci    }
16225c1cde8Sopenharmony_ci    ret = extension->Insert(uri, value);
16325c1cde8Sopenharmony_ci    DATA_STORAGE_LOGI("Insert end successfully. ret: %{public}d", ret);
16425c1cde8Sopenharmony_ci    if (ret != Telephony::OPERATION_ERROR) {
16525c1cde8Sopenharmony_ci        NotifyChange(uri);
16625c1cde8Sopenharmony_ci    }
16725c1cde8Sopenharmony_ci    return ret;
16825c1cde8Sopenharmony_ci}
16925c1cde8Sopenharmony_ci
17025c1cde8Sopenharmony_ciint TelephonyDataShareStubImpl::Update(const Uri &uri, const DataSharePredicates &predicates,
17125c1cde8Sopenharmony_ci    const DataShareValuesBucket &value)
17225c1cde8Sopenharmony_ci{
17325c1cde8Sopenharmony_ci    DATA_STORAGE_LOGD("Update begin.");
17425c1cde8Sopenharmony_ci    int ret = 0;
17525c1cde8Sopenharmony_ci    auto extension = GetOwner(uri);
17625c1cde8Sopenharmony_ci    if (extension == nullptr) {
17725c1cde8Sopenharmony_ci        DATA_STORAGE_LOGE("Update failed, extension is null.");
17825c1cde8Sopenharmony_ci        return ret;
17925c1cde8Sopenharmony_ci    }
18025c1cde8Sopenharmony_ci    ret = extension->Update(uri, predicates, value);
18125c1cde8Sopenharmony_ci    if (ret != Telephony::OPERATION_OK) {
18225c1cde8Sopenharmony_ci        DATA_STORAGE_LOGE("Update end failed. ret: %{public}d", ret);
18325c1cde8Sopenharmony_ci    }
18425c1cde8Sopenharmony_ci    if (ret != Telephony::OPERATION_ERROR) {
18525c1cde8Sopenharmony_ci        NotifyChange(uri);
18625c1cde8Sopenharmony_ci    }
18725c1cde8Sopenharmony_ci    return ret;
18825c1cde8Sopenharmony_ci}
18925c1cde8Sopenharmony_ci
19025c1cde8Sopenharmony_ciint TelephonyDataShareStubImpl::Delete(const Uri &uri, const DataSharePredicates &predicates)
19125c1cde8Sopenharmony_ci{
19225c1cde8Sopenharmony_ci    DATA_STORAGE_LOGI("Delete begin.");
19325c1cde8Sopenharmony_ci    int ret = 0;
19425c1cde8Sopenharmony_ci    auto extension = GetOwner(uri);
19525c1cde8Sopenharmony_ci    if (extension == nullptr) {
19625c1cde8Sopenharmony_ci        DATA_STORAGE_LOGE("Delete failed, extension is null.");
19725c1cde8Sopenharmony_ci        return ret;
19825c1cde8Sopenharmony_ci    }
19925c1cde8Sopenharmony_ci    ret = extension->Delete(uri, predicates);
20025c1cde8Sopenharmony_ci    DATA_STORAGE_LOGI("Delete end successfully. ret: %{public}d", ret);
20125c1cde8Sopenharmony_ci    if (ret != Telephony::OPERATION_ERROR) {
20225c1cde8Sopenharmony_ci        NotifyChange(uri);
20325c1cde8Sopenharmony_ci    }
20425c1cde8Sopenharmony_ci    return ret;
20525c1cde8Sopenharmony_ci}
20625c1cde8Sopenharmony_ci
20725c1cde8Sopenharmony_cistd::shared_ptr<DataShareResultSet> TelephonyDataShareStubImpl::Query(const Uri &uri,
20825c1cde8Sopenharmony_ci    const DataSharePredicates &predicates, std::vector<std::string> &columns, DatashareBusinessError &businessError)
20925c1cde8Sopenharmony_ci{
21025c1cde8Sopenharmony_ci    DATA_STORAGE_LOGD("Query begin.");
21125c1cde8Sopenharmony_ci    auto extension = GetOwner(uri);
21225c1cde8Sopenharmony_ci    if (extension == nullptr) {
21325c1cde8Sopenharmony_ci        DATA_STORAGE_LOGE("Query failed, extension is null.");
21425c1cde8Sopenharmony_ci        return nullptr;
21525c1cde8Sopenharmony_ci    }
21625c1cde8Sopenharmony_ci    auto resultSet = extension->Query(uri, predicates, columns, businessError);
21725c1cde8Sopenharmony_ci    DATA_STORAGE_LOGD("Query end successfully.");
21825c1cde8Sopenharmony_ci    return resultSet;
21925c1cde8Sopenharmony_ci}
22025c1cde8Sopenharmony_ci
22125c1cde8Sopenharmony_ciint TelephonyDataShareStubImpl::BatchInsert(const Uri &uri, const std::vector<DataShareValuesBucket> &values)
22225c1cde8Sopenharmony_ci{
22325c1cde8Sopenharmony_ci    DATA_STORAGE_LOGI("BatchInsert begin.");
22425c1cde8Sopenharmony_ci    int ret = 0;
22525c1cde8Sopenharmony_ci    auto extension = GetOwner(uri);
22625c1cde8Sopenharmony_ci    if (extension == nullptr) {
22725c1cde8Sopenharmony_ci        DATA_STORAGE_LOGE("BatchInsert failed, extension is null.");
22825c1cde8Sopenharmony_ci        return ret;
22925c1cde8Sopenharmony_ci    }
23025c1cde8Sopenharmony_ci    ret = extension->BatchInsert(uri, values);
23125c1cde8Sopenharmony_ci    DATA_STORAGE_LOGI("BatchInsert end successfully. ret: %{public}d", ret);
23225c1cde8Sopenharmony_ci    if (ret != Telephony::OPERATION_ERROR) {
23325c1cde8Sopenharmony_ci        NotifyChange(uri);
23425c1cde8Sopenharmony_ci    }
23525c1cde8Sopenharmony_ci    return ret;
23625c1cde8Sopenharmony_ci}
23725c1cde8Sopenharmony_ci
23825c1cde8Sopenharmony_cistd::vector<std::string> TelephonyDataShareStubImpl::GetFileTypes(const Uri &uri, const std::string &mimeTypeFilter)
23925c1cde8Sopenharmony_ci{
24025c1cde8Sopenharmony_ci    DATA_STORAGE_LOGI("GetFileTypes not supported.");
24125c1cde8Sopenharmony_ci    std::vector<std::string> result;
24225c1cde8Sopenharmony_ci    return result;
24325c1cde8Sopenharmony_ci}
24425c1cde8Sopenharmony_ci
24525c1cde8Sopenharmony_ciint TelephonyDataShareStubImpl::OpenFile(const Uri &uri, const std::string &mode)
24625c1cde8Sopenharmony_ci{
24725c1cde8Sopenharmony_ci    DATA_STORAGE_LOGI("OpenFile not supported.");
24825c1cde8Sopenharmony_ci    return -1;
24925c1cde8Sopenharmony_ci}
25025c1cde8Sopenharmony_ci
25125c1cde8Sopenharmony_ciint TelephonyDataShareStubImpl::OpenRawFile(const Uri &uri, const std::string &mode)
25225c1cde8Sopenharmony_ci{
25325c1cde8Sopenharmony_ci    DATA_STORAGE_LOGI("OpenRawFile not supported.");
25425c1cde8Sopenharmony_ci    return -1;
25525c1cde8Sopenharmony_ci}
25625c1cde8Sopenharmony_ci
25725c1cde8Sopenharmony_cistd::string TelephonyDataShareStubImpl::GetType(const Uri &uri)
25825c1cde8Sopenharmony_ci{
25925c1cde8Sopenharmony_ci    DATA_STORAGE_LOGI("GetType not supported.");
26025c1cde8Sopenharmony_ci    return "";
26125c1cde8Sopenharmony_ci}
26225c1cde8Sopenharmony_ci
26325c1cde8Sopenharmony_cibool TelephonyDataShareStubImpl::RegisterObserver(const Uri &uri, const sptr<AAFwk::IDataAbilityObserver> &dataObserver)
26425c1cde8Sopenharmony_ci{
26525c1cde8Sopenharmony_ci    DATA_STORAGE_LOGD("%{public}s begin.", __func__);
26625c1cde8Sopenharmony_ci    auto obsMgrClient = DataObsMgrClient::GetInstance();
26725c1cde8Sopenharmony_ci    if (obsMgrClient == nullptr) {
26825c1cde8Sopenharmony_ci        DATA_STORAGE_LOGE("%{public}s obsMgrClient is nullptr", __func__);
26925c1cde8Sopenharmony_ci        return false;
27025c1cde8Sopenharmony_ci    }
27125c1cde8Sopenharmony_ci
27225c1cde8Sopenharmony_ci    ErrCode ret = obsMgrClient->RegisterObserver(uri, dataObserver);
27325c1cde8Sopenharmony_ci    if (ret != ERR_OK) {
27425c1cde8Sopenharmony_ci        DATA_STORAGE_LOGE("%{public}s obsMgrClient->RegisterObserver error return %{public}d", __func__, ret);
27525c1cde8Sopenharmony_ci        return false;
27625c1cde8Sopenharmony_ci    }
27725c1cde8Sopenharmony_ci    return true;
27825c1cde8Sopenharmony_ci}
27925c1cde8Sopenharmony_ci
28025c1cde8Sopenharmony_cibool TelephonyDataShareStubImpl::UnregisterObserver(const Uri &uri,
28125c1cde8Sopenharmony_ci    const sptr<AAFwk::IDataAbilityObserver> &dataObserver)
28225c1cde8Sopenharmony_ci{
28325c1cde8Sopenharmony_ci    DATA_STORAGE_LOGI("%{public}s begin.", __func__);
28425c1cde8Sopenharmony_ci    auto obsMgrClient = DataObsMgrClient::GetInstance();
28525c1cde8Sopenharmony_ci    if (obsMgrClient == nullptr) {
28625c1cde8Sopenharmony_ci        DATA_STORAGE_LOGE("%{public}s obsMgrClient is nullptr", __func__);
28725c1cde8Sopenharmony_ci        return false;
28825c1cde8Sopenharmony_ci    }
28925c1cde8Sopenharmony_ci
29025c1cde8Sopenharmony_ci    ErrCode ret = obsMgrClient->UnregisterObserver(uri, dataObserver);
29125c1cde8Sopenharmony_ci    if (ret != ERR_OK) {
29225c1cde8Sopenharmony_ci        DATA_STORAGE_LOGE("%{public}s obsMgrClient->UnregisterObserver error return %{public}d", __func__, ret);
29325c1cde8Sopenharmony_ci        return false;
29425c1cde8Sopenharmony_ci    }
29525c1cde8Sopenharmony_ci    return true;
29625c1cde8Sopenharmony_ci}
29725c1cde8Sopenharmony_ci
29825c1cde8Sopenharmony_cibool TelephonyDataShareStubImpl::NotifyChange(const Uri &uri)
29925c1cde8Sopenharmony_ci{
30025c1cde8Sopenharmony_ci    auto obsMgrClient = DataObsMgrClient::GetInstance();
30125c1cde8Sopenharmony_ci    if (obsMgrClient == nullptr) {
30225c1cde8Sopenharmony_ci        DATA_STORAGE_LOGE("%{public}s obsMgrClient is nullptr", __func__);
30325c1cde8Sopenharmony_ci        return false;
30425c1cde8Sopenharmony_ci    }
30525c1cde8Sopenharmony_ci
30625c1cde8Sopenharmony_ci    ErrCode ret = obsMgrClient->NotifyChange(uri);
30725c1cde8Sopenharmony_ci    if (ret != ERR_OK) {
30825c1cde8Sopenharmony_ci        DATA_STORAGE_LOGE("%{public}s obsMgrClient->NotifyChange error return %{public}d", __func__, ret);
30925c1cde8Sopenharmony_ci        return false;
31025c1cde8Sopenharmony_ci    }
31125c1cde8Sopenharmony_ci    return true;
31225c1cde8Sopenharmony_ci}
31325c1cde8Sopenharmony_ci
31425c1cde8Sopenharmony_ciUri TelephonyDataShareStubImpl::NormalizeUri(const Uri &uri)
31525c1cde8Sopenharmony_ci{
31625c1cde8Sopenharmony_ci    DATA_STORAGE_LOGI("NormalizeUri not supported.");
31725c1cde8Sopenharmony_ci    return uri;
31825c1cde8Sopenharmony_ci}
31925c1cde8Sopenharmony_ci
32025c1cde8Sopenharmony_ciUri TelephonyDataShareStubImpl::DenormalizeUri(const Uri &uri)
32125c1cde8Sopenharmony_ci{
32225c1cde8Sopenharmony_ci    DATA_STORAGE_LOGI("DenormalizeUri not supported.");
32325c1cde8Sopenharmony_ci    return uri;
32425c1cde8Sopenharmony_ci}
32525c1cde8Sopenharmony_ci} // namespace DataShare
32625c1cde8Sopenharmony_ci} // namespace OHOS
327