mirror of
https://github.com/openharmony/ability_ability_runtime.git
synced 2026-08-24 22:21:36 -04:00
!7939 Hilog日志规范化整改frameworks/native/ability/native/
Merge pull request !7939 from xinking129/0321hilog
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2021-2022 Huawei Device Co., Ltd.
|
||||
* Copyright (c) 2021-2024 Huawei Device Co., Ltd.
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
@@ -16,6 +16,7 @@
|
||||
#include "data_ability_helper.h"
|
||||
#include "abs_shared_result_set.h"
|
||||
#include "datashare_helper.h"
|
||||
#include "hilog_tag_wrapper.h"
|
||||
#include "hilog_wrapper.h"
|
||||
#include "hitrace_meter.h"
|
||||
#include "rdb_data_ability_utils.h"
|
||||
@@ -42,7 +43,7 @@ DataAbilityHelper::DataAbilityHelper(const std::shared_ptr<DataShare::DataShareH
|
||||
*/
|
||||
std::shared_ptr<DataAbilityHelper> DataAbilityHelper::Creator(const std::shared_ptr<Context> context)
|
||||
{
|
||||
HILOG_INFO("Call DataAbilityHelperImpl Creator with context.");
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataAbilityHelperImpl Creator with context.");
|
||||
DataAbilityHelper *ptrDataAbilityHelper = nullptr;
|
||||
std::shared_ptr<DataAbilityHelperImpl> dataAbilityHelperImpl = DataAbilityHelperImpl::Creator(context);
|
||||
if (dataAbilityHelperImpl) {
|
||||
@@ -62,9 +63,9 @@ std::shared_ptr<DataAbilityHelper> DataAbilityHelper::Creator(const std::shared_
|
||||
std::shared_ptr<DataAbilityHelper> DataAbilityHelper::Creator(
|
||||
const std::shared_ptr<Context> context, const std::shared_ptr<Uri> &uri)
|
||||
{
|
||||
HILOG_INFO("Call DataAbilityHelperImpl Creator with context & uri.");
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataAbilityHelperImpl Creator with context & uri.");
|
||||
if (!context || !uri) {
|
||||
HILOG_ERROR("Input param invalid, context or uri is nullptr.");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Input param invalid, context or uri is nullptr.");
|
||||
return nullptr;
|
||||
}
|
||||
auto sharedPtrDataAbilityHelper = DataAbilityHelper::Creator(context, uri, false);
|
||||
@@ -72,7 +73,8 @@ std::shared_ptr<DataAbilityHelper> DataAbilityHelper::Creator(
|
||||
return sharedPtrDataAbilityHelper;
|
||||
}
|
||||
|
||||
HILOG_INFO("Call DataAbilityHelperImpl Creator failed, Call DataShareHelper Creator with context & uri.");
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY,
|
||||
"Call DataAbilityHelperImpl Creator failed, Call DataShareHelper Creator with context & uri.");
|
||||
Uri dataShareUri("");
|
||||
if (!DataAbilityHelper::TransferScheme(*uri, dataShareUri)) {
|
||||
return nullptr;
|
||||
@@ -82,7 +84,7 @@ std::shared_ptr<DataAbilityHelper> DataAbilityHelper::Creator(
|
||||
if (dataShareHelper) {
|
||||
ptrDataAbilityHelper = new DataAbilityHelper(dataShareHelper);
|
||||
}
|
||||
HILOG_DEBUG("Creator end");
|
||||
TAG_LOGD(AAFwkTag::DATA_ABILITY, "Creator end");
|
||||
return std::shared_ptr<DataAbilityHelper>(ptrDataAbilityHelper);
|
||||
}
|
||||
|
||||
@@ -97,9 +99,9 @@ std::shared_ptr<DataAbilityHelper> DataAbilityHelper::Creator(
|
||||
std::shared_ptr<DataAbilityHelper> DataAbilityHelper::Creator(
|
||||
const std::shared_ptr<OHOS::AbilityRuntime::Context> context, const std::shared_ptr<Uri> &uri)
|
||||
{
|
||||
HILOG_INFO("Call DataAbilityHelperImpl Creator with ability runtime context & uri.");
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataAbilityHelperImpl Creator with ability runtime context & uri.");
|
||||
if (!context || !uri) {
|
||||
HILOG_ERROR("Input param invalid, ability runtime context or uri is nullptr.");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Input param invalid, ability runtime context or uri is nullptr.");
|
||||
return nullptr;
|
||||
}
|
||||
auto sharedPtrDataAbilityHelper = DataAbilityHelper::Creator(context, uri, false);
|
||||
@@ -107,7 +109,7 @@ std::shared_ptr<DataAbilityHelper> DataAbilityHelper::Creator(
|
||||
return sharedPtrDataAbilityHelper;
|
||||
}
|
||||
|
||||
HILOG_INFO("Call DataAbilityHelperImpl Creator failed, "
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataAbilityHelperImpl Creator failed, "
|
||||
"Call DataShareHelper Creator with ability runtime context & uri.");
|
||||
Uri dataShareUri("");
|
||||
if (!DataAbilityHelper::TransferScheme(*uri, dataShareUri)) {
|
||||
@@ -136,7 +138,7 @@ std::shared_ptr<DataAbilityHelper> DataAbilityHelper::Creator(
|
||||
std::shared_ptr<DataAbilityHelper> DataAbilityHelper::Creator(
|
||||
const std::shared_ptr<Context> context, const std::shared_ptr<Uri> &uri, const bool tryBind)
|
||||
{
|
||||
HILOG_INFO("Call DataAbilityHelperImpl Creator with context & uri & tryBind.");
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataAbilityHelperImpl Creator with context & uri & tryBind.");
|
||||
DataAbilityHelper *ptrDataAbilityHelper = nullptr;
|
||||
auto dataAbilityHelperImpl = DataAbilityHelperImpl::Creator(context, uri, tryBind);
|
||||
if (dataAbilityHelperImpl) {
|
||||
@@ -160,7 +162,8 @@ std::shared_ptr<DataAbilityHelper> DataAbilityHelper::Creator(
|
||||
std::shared_ptr<DataAbilityHelper> DataAbilityHelper::Creator(
|
||||
const std::shared_ptr<OHOS::AbilityRuntime::Context> context, const std::shared_ptr<Uri> &uri, const bool tryBind)
|
||||
{
|
||||
HILOG_INFO("Call DataAbilityHelperImpl Creator with ability runtime context & uri & tryBind.");
|
||||
TAG_LOGI(
|
||||
AAFwkTag::DATA_ABILITY, "Call DataAbilityHelperImpl Creator with ability runtime context & uri & tryBind.");
|
||||
DataAbilityHelper *ptrDataAbilityHelper = nullptr;
|
||||
auto dataAbilityHelperImpl = DataAbilityHelperImpl::Creator(context, uri, tryBind);
|
||||
if (dataAbilityHelperImpl) {
|
||||
@@ -178,7 +181,7 @@ std::shared_ptr<DataAbilityHelper> DataAbilityHelper::Creator(
|
||||
*/
|
||||
std::shared_ptr<DataAbilityHelper> DataAbilityHelper::Creator(const sptr<IRemoteObject> token)
|
||||
{
|
||||
HILOG_INFO("Call DataAbilityHelperImpl Creator with token.");
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataAbilityHelperImpl Creator with token.");
|
||||
DataAbilityHelper *ptrDataAbilityHelper = nullptr;
|
||||
auto dataAbilityHelperImpl = DataAbilityHelperImpl::Creator(token);
|
||||
if (dataAbilityHelperImpl) {
|
||||
@@ -200,9 +203,9 @@ std::shared_ptr<DataAbilityHelper> DataAbilityHelper::Creator(const sptr<IRemote
|
||||
std::shared_ptr<DataAbilityHelper> DataAbilityHelper::Creator(
|
||||
const sptr<IRemoteObject> token, const std::shared_ptr<Uri> &uri)
|
||||
{
|
||||
HILOG_INFO("Call DataAbilityHelperImpl Creator with token & uri.");
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataAbilityHelperImpl Creator with token & uri.");
|
||||
if (!token || !uri) {
|
||||
HILOG_ERROR("Input param invalid, token or uri is nullptr.");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Input param invalid, token or uri is nullptr.");
|
||||
return nullptr;
|
||||
}
|
||||
DataAbilityHelper *ptrDataAbilityHelper = nullptr;
|
||||
@@ -210,7 +213,8 @@ std::shared_ptr<DataAbilityHelper> DataAbilityHelper::Creator(
|
||||
if (dataAbilityHelperImpl) {
|
||||
ptrDataAbilityHelper = new DataAbilityHelper(dataAbilityHelperImpl);
|
||||
} else {
|
||||
HILOG_INFO("Call DataAbilityHelperImpl Creator failed, Call DataShareHelper Creator with token & uri.");
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY,
|
||||
"Call DataAbilityHelperImpl Creator failed, Call DataShareHelper Creator with token & uri.");
|
||||
Uri dataShareUri("");
|
||||
if (!DataAbilityHelper::TransferScheme(*uri, dataShareUri)) {
|
||||
return nullptr;
|
||||
@@ -231,14 +235,14 @@ std::shared_ptr<DataAbilityHelper> DataAbilityHelper::Creator(
|
||||
*/
|
||||
bool DataAbilityHelper::Release()
|
||||
{
|
||||
HILOG_INFO("Release called.");
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Release called.");
|
||||
bool ret = false;
|
||||
if (dataAbilityHelperImpl_) {
|
||||
HILOG_INFO("Call DataAbilityHelperImpl Release.");
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataAbilityHelperImpl Release.");
|
||||
ret = dataAbilityHelperImpl_->Release();
|
||||
}
|
||||
if (dataShareHelper_) {
|
||||
HILOG_INFO("Call DataShareHelper Release.");
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataShareHelper Release.");
|
||||
ret = dataShareHelper_->Release();
|
||||
dataShareHelper_.reset();
|
||||
}
|
||||
@@ -256,16 +260,16 @@ bool DataAbilityHelper::Release()
|
||||
std::vector<std::string> DataAbilityHelper::GetFileTypes(Uri &uri, const std::string &mimeTypeFilter)
|
||||
{
|
||||
HITRACE_METER_NAME(HITRACE_TAG_DISTRIBUTEDDATA, __PRETTY_FUNCTION__);
|
||||
HILOG_INFO("GetFileTypes called.");
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "GetFileTypes called.");
|
||||
std::vector<std::string> matchedMIMEs;
|
||||
auto dataAbilityHelperImpl = GetDataAbilityHelperImpl();
|
||||
if (dataAbilityHelperImpl) {
|
||||
HILOG_INFO("Call DataAbilityHelperImpl GetFileTypes.");
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataAbilityHelperImpl GetFileTypes.");
|
||||
matchedMIMEs = dataAbilityHelperImpl->GetFileTypes(uri, mimeTypeFilter);
|
||||
}
|
||||
auto dataShareHelper = GetDataShareHelper();
|
||||
if (dataShareHelper) {
|
||||
HILOG_INFO("Call DataShareHelper GetFileTypes.");
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataShareHelper GetFileTypes.");
|
||||
Uri dataShareUri("");
|
||||
if (TransferScheme(uri, dataShareUri)) {
|
||||
matchedMIMEs = dataShareHelper->GetFileTypes(dataShareUri, mimeTypeFilter);
|
||||
@@ -287,19 +291,19 @@ std::vector<std::string> DataAbilityHelper::GetFileTypes(Uri &uri, const std::st
|
||||
*/
|
||||
int DataAbilityHelper::OpenFile(Uri &uri, const std::string &mode)
|
||||
{
|
||||
HILOG_INFO("OpenFile Called.");
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "OpenFile Called.");
|
||||
int fd = -1;
|
||||
auto dataAbilityHelperImpl = GetDataAbilityHelperImpl();
|
||||
if (dataAbilityHelperImpl) {
|
||||
HILOG_INFO("Call DataAbilityHelperImpl OpenFile.");
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataAbilityHelperImpl OpenFile.");
|
||||
fd = dataAbilityHelperImpl->OpenFile(uri, mode);
|
||||
}
|
||||
auto dataShareHelper = GetDataShareHelper();
|
||||
if (dataShareHelper) {
|
||||
if (callFromJs_) {
|
||||
HILOG_ERROR("Call DataShareHelper OpenFile, DataShareHelper no this interface.");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Call DataShareHelper OpenFile, DataShareHelper no this interface.");
|
||||
} else {
|
||||
HILOG_INFO("Call DataShareHelper OpenFile.");
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataShareHelper OpenFile.");
|
||||
Uri dataShareUri("");
|
||||
if (TransferScheme(uri, dataShareUri)) {
|
||||
fd = dataShareHelper->OpenFile(dataShareUri, mode);
|
||||
@@ -323,16 +327,16 @@ int DataAbilityHelper::OpenFile(Uri &uri, const std::string &mode)
|
||||
*/
|
||||
int DataAbilityHelper::OpenRawFile(Uri &uri, const std::string &mode)
|
||||
{
|
||||
HILOG_INFO("OpenRawFile called.");
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "OpenRawFile called.");
|
||||
int fd = -1;
|
||||
auto dataAbilityHelperImpl = GetDataAbilityHelperImpl();
|
||||
if (dataAbilityHelperImpl) {
|
||||
HILOG_INFO("Call DataAbilityHelperImpl OpenRawFile.");
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataAbilityHelperImpl OpenRawFile.");
|
||||
fd = dataAbilityHelperImpl->OpenRawFile(uri, mode);
|
||||
}
|
||||
auto dataShareHelper = GetDataShareHelper();
|
||||
if (dataShareHelper) {
|
||||
HILOG_INFO("Call DataShareHelper OpenFile.");
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataShareHelper OpenFile.");
|
||||
Uri dataShareUri("");
|
||||
if (TransferScheme(uri, dataShareUri)) {
|
||||
fd = dataShareHelper->OpenRawFile(dataShareUri, mode);
|
||||
@@ -352,16 +356,16 @@ int DataAbilityHelper::OpenRawFile(Uri &uri, const std::string &mode)
|
||||
int DataAbilityHelper::Insert(Uri &uri, const NativeRdb::ValuesBucket &value)
|
||||
{
|
||||
HITRACE_METER_NAME(HITRACE_TAG_DISTRIBUTEDDATA, __PRETTY_FUNCTION__);
|
||||
HILOG_INFO("Insert called.");
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Insert called.");
|
||||
int index = -1;
|
||||
auto dataAbilityHelperImpl = GetDataAbilityHelperImpl();
|
||||
if (dataAbilityHelperImpl) {
|
||||
HILOG_INFO("Call DataAbilityHelperImpl Insert.");
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataAbilityHelperImpl Insert.");
|
||||
index = dataAbilityHelperImpl->Insert(uri, value);
|
||||
}
|
||||
auto dataShareHelper = GetDataShareHelper();
|
||||
if (dataShareHelper) {
|
||||
HILOG_INFO("Call DataShareHelper Insert.");
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataShareHelper Insert.");
|
||||
DataShare::DataShareValuesBucket dataShareValue = RdbDataAbilityUtils::ToDataShareValuesBucket(value);
|
||||
Uri dataShareUri("");
|
||||
if (TransferScheme(uri, dataShareUri)) {
|
||||
@@ -375,14 +379,14 @@ std::shared_ptr<AppExecFwk::PacMap> DataAbilityHelper::Call(
|
||||
const Uri &uri, const std::string &method, const std::string &arg, const AppExecFwk::PacMap &pacMap)
|
||||
{
|
||||
std::shared_ptr<AppExecFwk::PacMap> result = nullptr;
|
||||
HILOG_INFO("Call called.");
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call called.");
|
||||
auto dataAbilityHelperImpl = GetDataAbilityHelperImpl();
|
||||
if (dataAbilityHelperImpl) {
|
||||
HILOG_INFO("Call DataAbilityHelperImpl Call.");
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataAbilityHelperImpl Call.");
|
||||
result = dataAbilityHelperImpl->Call(uri, method, arg, pacMap);
|
||||
}
|
||||
if (dataShareHelper_) {
|
||||
HILOG_ERROR("Call DataShareHelper Call, DataShareHelper no this interface.");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Call DataShareHelper Call, DataShareHelper no this interface.");
|
||||
}
|
||||
return result;
|
||||
}
|
||||
@@ -400,16 +404,16 @@ int DataAbilityHelper::Update(
|
||||
Uri &uri, const NativeRdb::ValuesBucket &value, const NativeRdb::DataAbilityPredicates &predicates)
|
||||
{
|
||||
HITRACE_METER_NAME(HITRACE_TAG_DISTRIBUTEDDATA, __PRETTY_FUNCTION__);
|
||||
HILOG_INFO("Update called.");
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Update called.");
|
||||
int index = -1;
|
||||
auto dataAbilityHelperImpl = GetDataAbilityHelperImpl();
|
||||
if (dataAbilityHelperImpl) {
|
||||
HILOG_INFO("Call DataAbilityHelperImpl Update.");
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataAbilityHelperImpl Update.");
|
||||
index = dataAbilityHelperImpl->Update(uri, value, predicates);
|
||||
}
|
||||
auto dataShareHelper = GetDataShareHelper();
|
||||
if (dataShareHelper) {
|
||||
HILOG_INFO("Call DataShareHelper Update.");
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataShareHelper Update.");
|
||||
DataShare::DataShareValuesBucket dataShareValue = RdbDataAbilityUtils::ToDataShareValuesBucket(value);
|
||||
DataShare::DataSharePredicates dataSharePredicates = RdbDataAbilityUtils::ToDataSharePredicates(predicates);
|
||||
Uri dataShareUri("");
|
||||
@@ -431,16 +435,16 @@ int DataAbilityHelper::Update(
|
||||
int DataAbilityHelper::Delete(Uri &uri, const NativeRdb::DataAbilityPredicates &predicates)
|
||||
{
|
||||
HITRACE_METER_NAME(HITRACE_TAG_DISTRIBUTEDDATA, __PRETTY_FUNCTION__);
|
||||
HILOG_INFO("Delete called.");
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Delete called.");
|
||||
int index = -1;
|
||||
auto dataAbilityHelperImpl = GetDataAbilityHelperImpl();
|
||||
if (dataAbilityHelperImpl) {
|
||||
HILOG_INFO("Call DataAbilityHelperImpl Delete.");
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataAbilityHelperImpl Delete.");
|
||||
return dataAbilityHelperImpl->Delete(uri, predicates);
|
||||
}
|
||||
auto dataShareHelper = GetDataShareHelper();
|
||||
if (dataShareHelper) {
|
||||
HILOG_INFO("Call DataShareHelper Delete.");
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataShareHelper Delete.");
|
||||
DataShare::DataSharePredicates dataSharePredicates = RdbDataAbilityUtils::ToDataSharePredicates(predicates);
|
||||
Uri dataShareUri("");
|
||||
if (TransferScheme(uri, dataShareUri)) {
|
||||
@@ -463,28 +467,28 @@ std::shared_ptr<NativeRdb::AbsSharedResultSet> DataAbilityHelper::Query(
|
||||
Uri &uri, std::vector<std::string> &columns, const NativeRdb::DataAbilityPredicates &predicates)
|
||||
{
|
||||
HITRACE_METER_NAME(HITRACE_TAG_DISTRIBUTEDDATA, __PRETTY_FUNCTION__);
|
||||
HILOG_DEBUG("Query called.");
|
||||
TAG_LOGD(AAFwkTag::DATA_ABILITY, "Query called.");
|
||||
std::shared_ptr<NativeRdb::AbsSharedResultSet> resultSet = nullptr;
|
||||
auto dataAbilityHelperImpl = GetDataAbilityHelperImpl();
|
||||
if (dataAbilityHelperImpl) {
|
||||
HILOG_DEBUG("Call DataAbilityHelperImpl Query.");
|
||||
TAG_LOGD(AAFwkTag::DATA_ABILITY, "Call DataAbilityHelperImpl Query.");
|
||||
return dataAbilityHelperImpl->Query(uri, columns, predicates);
|
||||
}
|
||||
auto dataShareHelper = GetDataShareHelper();
|
||||
if (dataShareHelper) {
|
||||
HILOG_DEBUG("Call DataShareHelper Query.");
|
||||
TAG_LOGD(AAFwkTag::DATA_ABILITY, "Call DataShareHelper Query.");
|
||||
DataShare::DataSharePredicates dataSharePredicates = RdbDataAbilityUtils::ToDataSharePredicates(predicates);
|
||||
Uri dataShareUri("");
|
||||
if (TransferScheme(uri, dataShareUri)) {
|
||||
std::shared_ptr<DataShare::DataShareResultSet> dataShareResultSet
|
||||
= dataShareHelper->Query(dataShareUri, dataSharePredicates, columns);
|
||||
if (!dataShareResultSet) {
|
||||
HILOG_ERROR("Return dataShareResultSet is nullptr.");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Return dataShareResultSet is nullptr.");
|
||||
return nullptr;
|
||||
}
|
||||
resultSet = RdbDataAbilityUtils::ToAbsSharedResultSet(dataShareResultSet);
|
||||
if (!resultSet) {
|
||||
HILOG_ERROR("Transfer to AbsSharedResultSet failed.");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Transfer to AbsSharedResultSet failed.");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -502,16 +506,16 @@ std::shared_ptr<NativeRdb::AbsSharedResultSet> DataAbilityHelper::Query(
|
||||
std::string DataAbilityHelper::GetType(Uri &uri)
|
||||
{
|
||||
HITRACE_METER_NAME(HITRACE_TAG_DISTRIBUTEDDATA, __PRETTY_FUNCTION__);
|
||||
HILOG_INFO("GetType called.");
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "GetType called.");
|
||||
std::string type;
|
||||
auto dataAbilityHelperImpl = GetDataAbilityHelperImpl();
|
||||
if (dataAbilityHelperImpl) {
|
||||
HILOG_INFO("Call DataAbilityHelperImpl GetType.");
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataAbilityHelperImpl GetType.");
|
||||
type = dataAbilityHelperImpl->GetType(uri);
|
||||
}
|
||||
auto dataShareHelper = GetDataShareHelper();
|
||||
if (dataShareHelper) {
|
||||
HILOG_INFO("Call DataShareHelper GetType.");
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataShareHelper GetType.");
|
||||
Uri dataShareUri("");
|
||||
if (TransferScheme(uri, dataShareUri)) {
|
||||
type = dataShareHelper->GetType(dataShareUri);
|
||||
@@ -532,15 +536,15 @@ std::string DataAbilityHelper::GetType(Uri &uri)
|
||||
*/
|
||||
bool DataAbilityHelper::Reload(Uri &uri, const PacMap &extras)
|
||||
{
|
||||
HILOG_INFO("Reload called.");
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Reload called.");
|
||||
bool ret = false;
|
||||
auto dataAbilityHelperImpl = GetDataAbilityHelperImpl();
|
||||
if (dataAbilityHelperImpl) {
|
||||
HILOG_INFO("Call DataAbilityHelperImpl Reload.");
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataAbilityHelperImpl Reload.");
|
||||
ret = dataAbilityHelperImpl->Reload(uri, extras);
|
||||
}
|
||||
if (dataShareHelper_) {
|
||||
HILOG_ERROR("Call DataShareHelper Reload, DataShareHelper no this interface.");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Call DataShareHelper Reload, DataShareHelper no this interface.");
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
@@ -556,16 +560,16 @@ bool DataAbilityHelper::Reload(Uri &uri, const PacMap &extras)
|
||||
int DataAbilityHelper::BatchInsert(Uri &uri, const std::vector<NativeRdb::ValuesBucket> &values)
|
||||
{
|
||||
HITRACE_METER_NAME(HITRACE_TAG_DISTRIBUTEDDATA, __PRETTY_FUNCTION__);
|
||||
HILOG_INFO("BatchInsert called.");
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "BatchInsert called.");
|
||||
int ret = -1;
|
||||
auto dataAbilityHelperImpl = GetDataAbilityHelperImpl();
|
||||
if (dataAbilityHelperImpl) {
|
||||
HILOG_INFO("Call DataAbilityHelperImpl BatchInsert.");
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataAbilityHelperImpl BatchInsert.");
|
||||
ret = dataAbilityHelperImpl->BatchInsert(uri, values);
|
||||
}
|
||||
auto dataShareHelper = GetDataShareHelper();
|
||||
if (dataShareHelper) {
|
||||
HILOG_INFO("Call DataShareHelper BatchInsert.");
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataShareHelper BatchInsert.");
|
||||
std::vector<DataShare::DataShareValuesBucket> dataShareValues;
|
||||
for (auto value : values) {
|
||||
DataShare::DataShareValuesBucket dataShareValue = RdbDataAbilityUtils::ToDataShareValuesBucket(value);
|
||||
@@ -587,15 +591,15 @@ int DataAbilityHelper::BatchInsert(Uri &uri, const std::vector<NativeRdb::Values
|
||||
*/
|
||||
void DataAbilityHelper::RegisterObserver(const Uri &uri, const sptr<AAFwk::IDataAbilityObserver> &dataObserver)
|
||||
{
|
||||
HILOG_INFO("RegisterObserver called.");
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "RegisterObserver called.");
|
||||
auto dataAbilityHelperImpl = GetDataAbilityHelperImpl();
|
||||
if (dataAbilityHelperImpl) {
|
||||
HILOG_INFO("Call DataAbilityHelperImpl RegisterObserver.");
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataAbilityHelperImpl RegisterObserver.");
|
||||
dataAbilityHelperImpl->RegisterObserver(uri, dataObserver);
|
||||
}
|
||||
auto dataShareHelper = GetDataShareHelper();
|
||||
if (dataShareHelper) {
|
||||
HILOG_INFO("Call DataShareHelper RegisterObserver.");
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataShareHelper RegisterObserver.");
|
||||
Uri dataShareUri("");
|
||||
if (TransferScheme(uri, dataShareUri)) {
|
||||
dataShareHelper->RegisterObserver(dataShareUri, dataObserver);
|
||||
@@ -611,15 +615,15 @@ void DataAbilityHelper::RegisterObserver(const Uri &uri, const sptr<AAFwk::IData
|
||||
*/
|
||||
void DataAbilityHelper::UnregisterObserver(const Uri &uri, const sptr<AAFwk::IDataAbilityObserver> &dataObserver)
|
||||
{
|
||||
HILOG_INFO("UnregisterObserver called.");
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "UnregisterObserver called.");
|
||||
auto dataAbilityHelperImpl = GetDataAbilityHelperImpl();
|
||||
if (dataAbilityHelperImpl) {
|
||||
HILOG_INFO("Call DataAbilityHelperImpl UnregisterObserver.");
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataAbilityHelperImpl UnregisterObserver.");
|
||||
dataAbilityHelperImpl->UnregisterObserver(uri, dataObserver);
|
||||
}
|
||||
auto dataShareHelper = GetDataShareHelper();
|
||||
if (dataShareHelper) {
|
||||
HILOG_INFO("Call DataShareHelper UnregisterObserver.");
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataShareHelper UnregisterObserver.");
|
||||
Uri dataShareUri("");
|
||||
if (TransferScheme(uri, dataShareUri)) {
|
||||
dataShareHelper->UnregisterObserver(dataShareUri, dataObserver);
|
||||
@@ -635,15 +639,15 @@ void DataAbilityHelper::UnregisterObserver(const Uri &uri, const sptr<AAFwk::IDa
|
||||
void DataAbilityHelper::NotifyChange(const Uri &uri)
|
||||
{
|
||||
HITRACE_METER_NAME(HITRACE_TAG_DISTRIBUTEDDATA, __PRETTY_FUNCTION__);
|
||||
HILOG_INFO("NotifyChange called.");
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "NotifyChange called.");
|
||||
auto dataAbilityHelperImpl = GetDataAbilityHelperImpl();
|
||||
if (dataAbilityHelperImpl) {
|
||||
HILOG_INFO("Call DataAbilityHelperImpl NotifyChange.");
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataAbilityHelperImpl NotifyChange.");
|
||||
dataAbilityHelperImpl->NotifyChange(uri);
|
||||
}
|
||||
auto dataShareHelper = GetDataShareHelper();
|
||||
if (dataShareHelper) {
|
||||
HILOG_INFO("Call DataShareHelper NotifyChange.");
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataShareHelper NotifyChange.");
|
||||
Uri dataShareUri("");
|
||||
if (TransferScheme(uri, dataShareUri)) {
|
||||
dataShareHelper->NotifyChange(dataShareUri);
|
||||
@@ -666,16 +670,16 @@ void DataAbilityHelper::NotifyChange(const Uri &uri)
|
||||
Uri DataAbilityHelper::NormalizeUri(Uri &uri)
|
||||
{
|
||||
HITRACE_METER_NAME(HITRACE_TAG_DISTRIBUTEDDATA, __PRETTY_FUNCTION__);
|
||||
HILOG_INFO("NormalizeUri called.");
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "NormalizeUri called.");
|
||||
Uri urivalue("");
|
||||
auto dataAbilityHelperImpl = GetDataAbilityHelperImpl();
|
||||
if (dataAbilityHelperImpl) {
|
||||
HILOG_INFO("Call DataAbilityHelperImpl NormalizeUri.");
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataAbilityHelperImpl NormalizeUri.");
|
||||
urivalue = dataAbilityHelperImpl->NormalizeUri(uri);
|
||||
}
|
||||
auto dataShareHelper = GetDataShareHelper();
|
||||
if (dataShareHelper) {
|
||||
HILOG_INFO("Call DataShareHelper NormalizeUri.");
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataShareHelper NormalizeUri.");
|
||||
Uri dataShareUri("");
|
||||
if (TransferScheme(uri, dataShareUri)) {
|
||||
urivalue = dataShareHelper->NormalizeUri(dataShareUri);
|
||||
@@ -697,16 +701,16 @@ Uri DataAbilityHelper::NormalizeUri(Uri &uri)
|
||||
Uri DataAbilityHelper::DenormalizeUri(Uri &uri)
|
||||
{
|
||||
HITRACE_METER_NAME(HITRACE_TAG_DISTRIBUTEDDATA, __PRETTY_FUNCTION__);
|
||||
HILOG_INFO("DenormalizeUri called.");
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "DenormalizeUri called.");
|
||||
Uri urivalue("");
|
||||
auto dataAbilityHelperImpl = GetDataAbilityHelperImpl();
|
||||
if (dataAbilityHelperImpl) {
|
||||
HILOG_INFO("Call DataAbilityHelperImpl DenormalizeUri.");
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataAbilityHelperImpl DenormalizeUri.");
|
||||
urivalue = dataAbilityHelperImpl->DenormalizeUri(uri);
|
||||
}
|
||||
auto dataShareHelper = GetDataShareHelper();
|
||||
if (dataShareHelper) {
|
||||
HILOG_INFO("Call DataShareHelper DenormalizeUri.");
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataShareHelper DenormalizeUri.");
|
||||
Uri dataShareUri("");
|
||||
if (TransferScheme(uri, dataShareUri)) {
|
||||
urivalue = dataShareHelper->DenormalizeUri(dataShareUri);
|
||||
@@ -718,15 +722,15 @@ Uri DataAbilityHelper::DenormalizeUri(Uri &uri)
|
||||
std::vector<std::shared_ptr<DataAbilityResult>> DataAbilityHelper::ExecuteBatch(
|
||||
const Uri &uri, const std::vector<std::shared_ptr<DataAbilityOperation>> &operations)
|
||||
{
|
||||
HILOG_INFO("ExecuteBatch called.");
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "ExecuteBatch called.");
|
||||
std::vector<std::shared_ptr<DataAbilityResult>> results;
|
||||
auto dataAbilityHelperImpl = GetDataAbilityHelperImpl();
|
||||
if (dataAbilityHelperImpl) {
|
||||
HILOG_INFO("Call DataAbilityHelperImpl ExecuteBatch.");
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Call DataAbilityHelperImpl ExecuteBatch.");
|
||||
results = dataAbilityHelperImpl->ExecuteBatch(uri, operations);
|
||||
}
|
||||
if (dataShareHelper_) {
|
||||
HILOG_ERROR("Call DataShareHelper ExecuteBatch, DataShareHelper no this interface.");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Call DataShareHelper ExecuteBatch, DataShareHelper no this interface.");
|
||||
}
|
||||
return results;
|
||||
}
|
||||
@@ -742,7 +746,8 @@ bool DataAbilityHelper::TransferScheme(const Uri &uri, Uri &dataShareUri)
|
||||
Uri inputUri = uri;
|
||||
if (inputUri.GetScheme() == dataShareScheme) {
|
||||
dataShareUri = Uri(inputUri.ToString());
|
||||
HILOG_INFO("input uri is data share uri, uri: %{public}s, no need transfer.", inputUri.ToString().c_str());
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "input uri is data share uri, uri: %{public}s, no need transfer.",
|
||||
inputUri.ToString().c_str());
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -750,7 +755,7 @@ bool DataAbilityHelper::TransferScheme(const Uri &uri, Uri &dataShareUri)
|
||||
string uriStr = inputUri.ToString();
|
||||
uriStr.replace(0, dataAbilityScheme.length(), dataShareScheme);
|
||||
dataShareUri = Uri(uriStr);
|
||||
HILOG_INFO("data ability uri: %{public}s transfer to data share uri: %{public}s.",
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "data ability uri: %{public}s transfer to data share uri: %{public}s.",
|
||||
inputUri.ToString().c_str(), dataShareUri.ToString().c_str());
|
||||
return true;
|
||||
}
|
||||
@@ -759,12 +764,12 @@ bool DataAbilityHelper::TransferScheme(const Uri &uri, Uri &dataShareUri)
|
||||
string uriStr = inputUri.ToString();
|
||||
uriStr.replace(0, filePrefix.length(), dataSharePrefix);
|
||||
dataShareUri = Uri(uriStr);
|
||||
HILOG_DEBUG("file uri: %{public}s transfer to data share uri: %{public}s.",
|
||||
TAG_LOGD(AAFwkTag::DATA_ABILITY, "file uri: %{public}s transfer to data share uri: %{public}s.",
|
||||
inputUri.ToString().c_str(), dataShareUri.ToString().c_str());
|
||||
return true;
|
||||
}
|
||||
|
||||
HILOG_ERROR("Input param invalid, uri: %{private}s", inputUri.ToString().c_str());
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Input param invalid, uri: %{private}s", inputUri.ToString().c_str());
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2022-2023 Huawei Device Co., Ltd.
|
||||
* Copyright (c) 2022-2024 Huawei Device Co., Ltd.
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
@@ -24,6 +24,7 @@
|
||||
#include "data_ability_operation.h"
|
||||
#include "data_ability_predicates.h"
|
||||
#include "data_ability_result.h"
|
||||
#include "hilog_tag_wrapper.h"
|
||||
#include "hilog_wrapper.h"
|
||||
#include "values_bucket.h"
|
||||
|
||||
@@ -76,7 +77,7 @@ DataAbilityHelperImpl::DataAbilityHelperImpl(const sptr<IRemoteObject> &token)
|
||||
void DataAbilityHelperImpl::AddDataAbilityDeathRecipient(const sptr<IRemoteObject> &token)
|
||||
{
|
||||
if (token != nullptr && callerDeathRecipient_ != nullptr) {
|
||||
HILOG_INFO("Remove death recipient.");
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Remove death recipient.");
|
||||
token->RemoveDeathRecipient(callerDeathRecipient_);
|
||||
}
|
||||
if (callerDeathRecipient_ == nullptr) {
|
||||
@@ -89,15 +90,15 @@ void DataAbilityHelperImpl::AddDataAbilityDeathRecipient(const sptr<IRemoteObjec
|
||||
}
|
||||
});
|
||||
}
|
||||
HILOG_INFO("Add death recipient.");
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Add death recipient.");
|
||||
if (token == nullptr || !token->AddDeathRecipient(callerDeathRecipient_)) {
|
||||
HILOG_ERROR("AddDeathRecipient failed.");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "AddDeathRecipient failed.");
|
||||
}
|
||||
}
|
||||
|
||||
void DataAbilityHelperImpl::OnSchedulerDied(const wptr<IRemoteObject> &remote)
|
||||
{
|
||||
HILOG_INFO("On scheduler died.");
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "On scheduler died.");
|
||||
std::lock_guard<std::mutex> guard(lock_);
|
||||
auto object = remote.promote();
|
||||
object = nullptr;
|
||||
@@ -115,13 +116,13 @@ void DataAbilityHelperImpl::OnSchedulerDied(const wptr<IRemoteObject> &remote)
|
||||
std::shared_ptr<DataAbilityHelperImpl> DataAbilityHelperImpl::Creator(const std::shared_ptr<Context> &context)
|
||||
{
|
||||
if (context == nullptr) {
|
||||
HILOG_ERROR("Input param invalid, context is nullptr.");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Input param invalid, context is nullptr.");
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
auto ptrDataAbilityHelperImpl = new (std::nothrow) DataAbilityHelperImpl(context);
|
||||
if (ptrDataAbilityHelperImpl == nullptr) {
|
||||
HILOG_ERROR("New DataAbilityHelperImpl failed.");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "New DataAbilityHelperImpl failed.");
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
@@ -144,25 +145,25 @@ std::shared_ptr<DataAbilityHelperImpl> DataAbilityHelperImpl::Creator(
|
||||
const std::shared_ptr<Context> &context, const std::shared_ptr<Uri> &uri, const bool tryBind)
|
||||
{
|
||||
if (context == nullptr) {
|
||||
HILOG_ERROR("Input param invalid, context is null.");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Input param invalid, context is null.");
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
if (!CheckUri(uri)) {
|
||||
HILOG_ERROR("uri is invalid");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "uri is invalid");
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
sptr<IAbilityScheduler> dataAbilityProxy =
|
||||
AbilityManagerClient::GetInstance()->AcquireDataAbility(*uri.get(), tryBind, context->GetToken());
|
||||
if (dataAbilityProxy == nullptr) {
|
||||
HILOG_ERROR("Acquire data ability error.");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Acquire data ability error.");
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
auto ptrDataAbilityHelperImpl = new (std::nothrow) DataAbilityHelperImpl(context, uri, dataAbilityProxy, tryBind);
|
||||
if (ptrDataAbilityHelperImpl == nullptr) {
|
||||
HILOG_ERROR("New DataAbilityHelperImpl error.");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "New DataAbilityHelperImpl error.");
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
@@ -185,25 +186,25 @@ std::shared_ptr<DataAbilityHelperImpl> DataAbilityHelperImpl::Creator(
|
||||
const std::shared_ptr<OHOS::AbilityRuntime::Context> &context, const std::shared_ptr<Uri> &uri, const bool tryBind)
|
||||
{
|
||||
if (context == nullptr) {
|
||||
HILOG_ERROR("Input param invalid, context is nullptr.");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Input param invalid, context is nullptr.");
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
if (!CheckUri(uri)) {
|
||||
HILOG_ERROR("uri is invalid.");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "uri is invalid.");
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
sptr<IAbilityScheduler> dataAbilityProxy =
|
||||
AbilityManagerClient::GetInstance()->AcquireDataAbility(*uri.get(), tryBind, context->GetToken());
|
||||
if (dataAbilityProxy == nullptr) {
|
||||
HILOG_ERROR("Acquire data ability failed.");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Acquire data ability failed.");
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
auto ptrDataAbilityHelperImpl = new (std::nothrow) DataAbilityHelperImpl(context, uri, dataAbilityProxy, tryBind);
|
||||
if (ptrDataAbilityHelperImpl == nullptr) {
|
||||
HILOG_ERROR("New DataAbilityHelperImpl failed.");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "New DataAbilityHelperImpl failed.");
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
@@ -220,13 +221,13 @@ std::shared_ptr<DataAbilityHelperImpl> DataAbilityHelperImpl::Creator(
|
||||
std::shared_ptr<DataAbilityHelperImpl> DataAbilityHelperImpl::Creator(const sptr<IRemoteObject> &token)
|
||||
{
|
||||
if (token == nullptr) {
|
||||
HILOG_ERROR("Input param invalid, token is nullptr.");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Input param invalid, token is nullptr.");
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
auto ptrDataAbilityHelperImpl = new (std::nothrow) DataAbilityHelperImpl(token);
|
||||
if (ptrDataAbilityHelperImpl == nullptr) {
|
||||
HILOG_ERROR("New DataAbilityHelperImpl failed.");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "New DataAbilityHelperImpl failed.");
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
@@ -247,25 +248,25 @@ std::shared_ptr<DataAbilityHelperImpl> DataAbilityHelperImpl::Creator(
|
||||
const sptr<IRemoteObject> &token, const std::shared_ptr<Uri> &uri)
|
||||
{
|
||||
if (token == nullptr) {
|
||||
HILOG_ERROR("Input param invalid, token is nullptr.");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Input param invalid, token is nullptr.");
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
if (!CheckUri(uri)) {
|
||||
HILOG_ERROR("uri is invalid.");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "uri is invalid.");
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
sptr<IAbilityScheduler> dataAbilityProxy =
|
||||
AbilityManagerClient::GetInstance()->AcquireDataAbility(*uri.get(), false, token);
|
||||
if (dataAbilityProxy == nullptr) {
|
||||
HILOG_ERROR("Acquire data ability failed.");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Acquire data ability failed.");
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
auto ptrDataAbilityHelperImpl = new (std::nothrow) DataAbilityHelperImpl(token, uri, dataAbilityProxy);
|
||||
if (ptrDataAbilityHelperImpl == nullptr) {
|
||||
HILOG_ERROR("New DataAbilityHelperImpl failed.");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "New DataAbilityHelperImpl failed.");
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
@@ -281,13 +282,13 @@ std::shared_ptr<DataAbilityHelperImpl> DataAbilityHelperImpl::Creator(
|
||||
bool DataAbilityHelperImpl::Release()
|
||||
{
|
||||
if (uri_ == nullptr) {
|
||||
HILOG_ERROR("Release failed, uri_ is nullptr.");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Release failed, uri_ is nullptr.");
|
||||
return false;
|
||||
}
|
||||
|
||||
int err = AbilityManagerClient::GetInstance()->ReleaseDataAbility(dataAbilityProxy_, token_);
|
||||
if (err != ERR_OK) {
|
||||
HILOG_ERROR("Release data ability failed, err = %{public}d.", err);
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Release data ability failed, err = %{public}d.", err);
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -307,14 +308,14 @@ std::vector<std::string> DataAbilityHelperImpl::GetFileTypes(Uri &uri, const std
|
||||
std::vector<std::string> matchedMIMEs;
|
||||
sptr<AAFwk::IAbilityScheduler> dataAbilityProxy = GetDataAbilityProxy(uri);
|
||||
if (dataAbilityProxy == nullptr) {
|
||||
HILOG_ERROR("Get data ability proxy failed.");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Get data ability proxy failed.");
|
||||
return matchedMIMEs;
|
||||
}
|
||||
|
||||
matchedMIMEs = dataAbilityProxy->GetFileTypes(uri, mimeTypeFilter);
|
||||
|
||||
ReleaseDataAbility(dataAbilityProxy);
|
||||
HILOG_INFO("Return matchedMIMEs size: %{public}zu.", matchedMIMEs.size());
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Return matchedMIMEs size: %{public}zu.", matchedMIMEs.size());
|
||||
return matchedMIMEs;
|
||||
}
|
||||
|
||||
@@ -334,14 +335,14 @@ int DataAbilityHelperImpl::OpenFile(Uri &uri, const std::string &mode)
|
||||
int fd = -1;
|
||||
sptr<AAFwk::IAbilityScheduler> dataAbilityProxy = GetDataAbilityProxy(uri);
|
||||
if (dataAbilityProxy == nullptr) {
|
||||
HILOG_ERROR("Get data ability proxy failed.");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Get data ability proxy failed.");
|
||||
return fd;
|
||||
}
|
||||
|
||||
fd = dataAbilityProxy->OpenFile(uri, mode);
|
||||
|
||||
ReleaseDataAbility(dataAbilityProxy);
|
||||
HILOG_INFO("Return fd: %{public}d.", fd);
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Return fd: %{public}d.", fd);
|
||||
return fd;
|
||||
}
|
||||
|
||||
@@ -362,14 +363,14 @@ int DataAbilityHelperImpl::OpenRawFile(Uri &uri, const std::string &mode)
|
||||
int fd = -1;
|
||||
sptr<AAFwk::IAbilityScheduler> dataAbilityProxy = GetDataAbilityProxy(uri);
|
||||
if (dataAbilityProxy == nullptr) {
|
||||
HILOG_ERROR("Get data ability proxy failed.");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Get data ability proxy failed.");
|
||||
return fd;
|
||||
}
|
||||
|
||||
fd = dataAbilityProxy->OpenRawFile(uri, mode);
|
||||
|
||||
ReleaseDataAbility(dataAbilityProxy);
|
||||
HILOG_INFO("Return fd: %{public}d.", fd);
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Return fd: %{public}d.", fd);
|
||||
return fd;
|
||||
}
|
||||
|
||||
@@ -386,14 +387,14 @@ int DataAbilityHelperImpl::Insert(Uri &uri, const NativeRdb::ValuesBucket &value
|
||||
int index = -1;
|
||||
sptr<AAFwk::IAbilityScheduler> dataAbilityProxy = GetDataAbilityProxy(uri);
|
||||
if (dataAbilityProxy == nullptr) {
|
||||
HILOG_ERROR("Get data ability proxy failed.");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Get data ability proxy failed.");
|
||||
return index;
|
||||
}
|
||||
|
||||
index = dataAbilityProxy->Insert(uri, value);
|
||||
|
||||
ReleaseDataAbility(dataAbilityProxy);
|
||||
HILOG_INFO("Return index: %{public}d.", index);
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Return index: %{public}d.", index);
|
||||
return index;
|
||||
}
|
||||
|
||||
@@ -403,14 +404,14 @@ std::shared_ptr<AppExecFwk::PacMap> DataAbilityHelperImpl::Call(
|
||||
std::shared_ptr<AppExecFwk::PacMap> result = nullptr;
|
||||
sptr<AAFwk::IAbilityScheduler> dataAbilityProxy = GetDataAbilityProxy(uri);
|
||||
if (dataAbilityProxy == nullptr) {
|
||||
HILOG_ERROR("Get data ability proxy failed.");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Get data ability proxy failed.");
|
||||
return result;
|
||||
}
|
||||
|
||||
result = dataAbilityProxy->Call(uri, method, arg, pacMap);
|
||||
|
||||
ReleaseDataAbility(dataAbilityProxy);
|
||||
HILOG_INFO("Return result is or not nullptr: %{public}d.", result == nullptr);
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Return result is or not nullptr: %{public}d.", result == nullptr);
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -429,14 +430,14 @@ int DataAbilityHelperImpl::Update(
|
||||
int index = -1;
|
||||
sptr<AAFwk::IAbilityScheduler> dataAbilityProxy = GetDataAbilityProxy(uri);
|
||||
if (dataAbilityProxy == nullptr) {
|
||||
HILOG_ERROR("Get data ability proxy failed.");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Get data ability proxy failed.");
|
||||
return index;
|
||||
}
|
||||
|
||||
index = dataAbilityProxy->Update(uri, value, predicates);
|
||||
|
||||
ReleaseDataAbility(dataAbilityProxy);
|
||||
HILOG_INFO("Return index: %{public}d.", index);
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Return index: %{public}d.", index);
|
||||
return index;
|
||||
}
|
||||
|
||||
@@ -453,14 +454,14 @@ int DataAbilityHelperImpl::Delete(Uri &uri, const NativeRdb::DataAbilityPredicat
|
||||
int index = -1;
|
||||
sptr<AAFwk::IAbilityScheduler> dataAbilityProxy = GetDataAbilityProxy(uri);
|
||||
if (dataAbilityProxy == nullptr) {
|
||||
HILOG_ERROR("Get data ability proxy failed.");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Get data ability proxy failed.");
|
||||
return index;
|
||||
}
|
||||
|
||||
index = dataAbilityProxy->Delete(uri, predicates);
|
||||
|
||||
ReleaseDataAbility(dataAbilityProxy);
|
||||
HILOG_INFO("Return index: %{public}d.", index);
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Return index: %{public}d.", index);
|
||||
return index;
|
||||
}
|
||||
|
||||
@@ -479,14 +480,14 @@ std::shared_ptr<NativeRdb::AbsSharedResultSet> DataAbilityHelperImpl::Query(
|
||||
std::shared_ptr<NativeRdb::AbsSharedResultSet> resultset = nullptr;
|
||||
sptr<AAFwk::IAbilityScheduler> dataAbilityProxy = GetDataAbilityProxy(uri);
|
||||
if (dataAbilityProxy == nullptr) {
|
||||
HILOG_ERROR("Get data ability proxy failed.");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Get data ability proxy failed.");
|
||||
return resultset;
|
||||
}
|
||||
|
||||
resultset = dataAbilityProxy->Query(uri, columns, predicates);
|
||||
|
||||
ReleaseDataAbility(dataAbilityProxy);
|
||||
HILOG_DEBUG("Return resultset is or not nullptr: %{public}d.", resultset == nullptr);
|
||||
TAG_LOGD(AAFwkTag::DATA_ABILITY, "Return resultset is or not nullptr: %{public}d.", resultset == nullptr);
|
||||
return resultset;
|
||||
}
|
||||
|
||||
@@ -503,14 +504,14 @@ std::string DataAbilityHelperImpl::GetType(Uri &uri)
|
||||
std::string type;
|
||||
sptr<AAFwk::IAbilityScheduler> dataAbilityProxy = GetDataAbilityProxy(uri);
|
||||
if (dataAbilityProxy == nullptr) {
|
||||
HILOG_ERROR("Get data ability proxy failed.");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Get data ability proxy failed.");
|
||||
return type;
|
||||
}
|
||||
|
||||
type = dataAbilityProxy->GetType(uri);
|
||||
|
||||
ReleaseDataAbility(dataAbilityProxy);
|
||||
HILOG_INFO("Return type: %{public}s.", type.c_str());
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Return type: %{public}s.", type.c_str());
|
||||
return type;
|
||||
}
|
||||
|
||||
@@ -529,14 +530,14 @@ bool DataAbilityHelperImpl::Reload(Uri &uri, const PacMap &extras)
|
||||
bool ret = false;
|
||||
sptr<AAFwk::IAbilityScheduler> dataAbilityProxy = GetDataAbilityProxy(uri);
|
||||
if (dataAbilityProxy == nullptr) {
|
||||
HILOG_ERROR("Get data ability proxy failed.");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Get data ability proxy failed.");
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret = dataAbilityProxy->Reload(uri, extras);
|
||||
|
||||
ReleaseDataAbility(dataAbilityProxy);
|
||||
HILOG_INFO("Return ret: %{public}d.", ret);
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Return ret: %{public}d.", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -553,14 +554,14 @@ int DataAbilityHelperImpl::BatchInsert(Uri &uri, const std::vector<NativeRdb::Va
|
||||
int ret = -1;
|
||||
sptr<AAFwk::IAbilityScheduler> dataAbilityProxy = GetDataAbilityProxy(uri);
|
||||
if (dataAbilityProxy == nullptr) {
|
||||
HILOG_ERROR("Get data ability proxy failed.");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Get data ability proxy failed.");
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret = dataAbilityProxy->BatchInsert(uri, values);
|
||||
|
||||
ReleaseDataAbility(dataAbilityProxy);
|
||||
HILOG_INFO("Return ret: %{public}d.", ret);
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Return ret: %{public}d.", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -568,7 +569,7 @@ bool DataAbilityHelperImpl::CheckUriParam(const Uri &uri)
|
||||
{
|
||||
Uri checkUri(uri.ToString());
|
||||
if (!CheckOhosUri(checkUri)) {
|
||||
HILOG_ERROR("Check ohos uri failed, uri: %{public}s.", uri.ToString().c_str());
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Check ohos uri failed, uri: %{public}s.", uri.ToString().c_str());
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -577,12 +578,12 @@ bool DataAbilityHelperImpl::CheckUriParam(const Uri &uri)
|
||||
{
|
||||
std::lock_guard<std::mutex> guard(lock_);
|
||||
if (!uri_) {
|
||||
HILOG_INFO("uri_ is nullptr, no need check.");
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "uri_ is nullptr, no need check.");
|
||||
return true;
|
||||
}
|
||||
Uri checkUri(uri_->ToString());
|
||||
if (!CheckOhosUri(checkUri)) {
|
||||
HILOG_ERROR("Check ohos uri failed, uri_: %{public}s.", uri_->ToString().c_str());
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Check ohos uri failed, uri_: %{public}s.", uri_->ToString().c_str());
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -592,7 +593,7 @@ bool DataAbilityHelperImpl::CheckUriParam(const Uri &uri)
|
||||
std::vector<std::string> checkSegments;
|
||||
checkUri.GetPathSegments(checkSegments);
|
||||
if (checkSegments.empty() || segments.empty() || checkSegments[0] != segments[0]) {
|
||||
HILOG_ERROR("The dataability in uri doesn't equal the one in uri_.");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "The dataability in uri doesn't equal the one in uri_.");
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -603,19 +604,20 @@ bool DataAbilityHelperImpl::CheckOhosUri(const Uri &checkUri)
|
||||
{
|
||||
Uri uri(checkUri);
|
||||
if (uri.GetScheme() != SchemeOhos) {
|
||||
HILOG_ERROR("Input uri is not a dataability one, uri: %{public}s.", uri.ToString().c_str());
|
||||
TAG_LOGE(
|
||||
AAFwkTag::DATA_ABILITY, "Input uri is not a dataability one, uri: %{public}s.", uri.ToString().c_str());
|
||||
return false;
|
||||
}
|
||||
|
||||
std::vector<std::string> segments;
|
||||
uri.GetPathSegments(segments);
|
||||
if (segments.empty()) {
|
||||
HILOG_ERROR("There is no segments in the uri, uri: %{public}s.", uri.ToString().c_str());
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "There is no segments in the uri, uri: %{public}s.", uri.ToString().c_str());
|
||||
return false;
|
||||
}
|
||||
|
||||
if (uri.GetPath() == "") {
|
||||
HILOG_ERROR("The path in the uri is empty, uri: %{public}s.", uri.ToString().c_str());
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "The path in the uri is empty, uri: %{public}s.", uri.ToString().c_str());
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -631,7 +633,7 @@ bool DataAbilityHelperImpl::CheckOhosUri(const Uri &checkUri)
|
||||
void DataAbilityHelperImpl::RegisterObserver(const Uri &uri, const sptr<AAFwk::IDataAbilityObserver> &dataObserver)
|
||||
{
|
||||
if (!CheckUriAndDataObserver(uri, dataObserver)) {
|
||||
HILOG_ERROR("RegisterObserver param is invalid.");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "RegisterObserver param is invalid.");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -651,7 +653,7 @@ void DataAbilityHelperImpl::RegisterObserver(const Uri &uri, const sptr<AAFwk::I
|
||||
return;
|
||||
}
|
||||
if (path->second != tmpUri.GetPath()) {
|
||||
HILOG_ERROR("Input uri's path is not equal the one the observer used.");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Input uri's path is not equal the one the observer used.");
|
||||
return;
|
||||
}
|
||||
dataAbilityProxy = dataability->second;
|
||||
@@ -661,7 +663,7 @@ void DataAbilityHelperImpl::RegisterObserver(const Uri &uri, const sptr<AAFwk::I
|
||||
}
|
||||
|
||||
if (dataAbilityProxy == nullptr) {
|
||||
HILOG_ERROR("dataAbilityProxy is nullptr.");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "dataAbilityProxy is nullptr.");
|
||||
registerMap_.erase(dataObserver);
|
||||
uriMap_.erase(dataObserver);
|
||||
return;
|
||||
@@ -678,7 +680,7 @@ void DataAbilityHelperImpl::RegisterObserver(const Uri &uri, const sptr<AAFwk::I
|
||||
void DataAbilityHelperImpl::UnregisterObserver(const Uri &uri, const sptr<AAFwk::IDataAbilityObserver> &dataObserver)
|
||||
{
|
||||
if (!CheckUriAndDataObserver(uri, dataObserver)) {
|
||||
HILOG_ERROR("UnregisterObserver param is invalid.");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "UnregisterObserver param is invalid.");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -695,7 +697,7 @@ void DataAbilityHelperImpl::UnregisterObserver(const Uri &uri, const sptr<AAFwk:
|
||||
return;
|
||||
}
|
||||
if (path->second != tmpUri.GetPath()) {
|
||||
HILOG_ERROR("Input uri's path is not equal the one the observer used.");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Input uri's path is not equal the one the observer used.");
|
||||
return;
|
||||
}
|
||||
dataAbilityProxy = dataability->second;
|
||||
@@ -704,7 +706,7 @@ void DataAbilityHelperImpl::UnregisterObserver(const Uri &uri, const sptr<AAFwk:
|
||||
}
|
||||
|
||||
if (dataAbilityProxy == nullptr) {
|
||||
HILOG_ERROR("dataAbilityProxy is nullptr.");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "dataAbilityProxy is nullptr.");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -726,7 +728,7 @@ void DataAbilityHelperImpl::NotifyChange(const Uri &uri)
|
||||
{
|
||||
sptr<AAFwk::IAbilityScheduler> dataAbilityProxy = GetDataAbilityProxy(uri);
|
||||
if (dataAbilityProxy == nullptr) {
|
||||
HILOG_ERROR("Get data ability proxy failed.");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Get data ability proxy failed.");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -751,14 +753,14 @@ Uri DataAbilityHelperImpl::NormalizeUri(Uri &uri)
|
||||
Uri urivalue("");
|
||||
sptr<AAFwk::IAbilityScheduler> dataAbilityProxy = GetDataAbilityProxy(uri);
|
||||
if (dataAbilityProxy == nullptr) {
|
||||
HILOG_ERROR("Get data ability proxy failed.");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Get data ability proxy failed.");
|
||||
return urivalue;
|
||||
}
|
||||
|
||||
urivalue = dataAbilityProxy->NormalizeUri(uri);
|
||||
|
||||
ReleaseDataAbility(dataAbilityProxy);
|
||||
HILOG_INFO("Return uri: %{public}s.", urivalue.ToString().c_str());
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Return uri: %{public}s.", urivalue.ToString().c_str());
|
||||
return urivalue;
|
||||
}
|
||||
|
||||
@@ -777,14 +779,14 @@ Uri DataAbilityHelperImpl::DenormalizeUri(Uri &uri)
|
||||
Uri urivalue("");
|
||||
sptr<AAFwk::IAbilityScheduler> dataAbilityProxy = GetDataAbilityProxy(uri);
|
||||
if (dataAbilityProxy == nullptr) {
|
||||
HILOG_ERROR("Get data ability proxy failed.");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Get data ability proxy failed.");
|
||||
return urivalue;
|
||||
}
|
||||
|
||||
urivalue = dataAbilityProxy->DenormalizeUri(uri);
|
||||
|
||||
ReleaseDataAbility(dataAbilityProxy);
|
||||
HILOG_INFO("Return uri: %{public}s.", urivalue.ToString().c_str());
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Return uri: %{public}s.", urivalue.ToString().c_str());
|
||||
return urivalue;
|
||||
}
|
||||
|
||||
@@ -794,31 +796,31 @@ std::vector<std::shared_ptr<DataAbilityResult>> DataAbilityHelperImpl::ExecuteBa
|
||||
std::vector<std::shared_ptr<DataAbilityResult>> results;
|
||||
sptr<AAFwk::IAbilityScheduler> dataAbilityProxy = GetDataAbilityProxy(uri, false);
|
||||
if (dataAbilityProxy == nullptr) {
|
||||
HILOG_ERROR("Get data ability proxy failed.");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Get data ability proxy failed.");
|
||||
return results;
|
||||
}
|
||||
|
||||
results = dataAbilityProxy->ExecuteBatch(operations);
|
||||
|
||||
ReleaseDataAbility(dataAbilityProxy);
|
||||
HILOG_INFO("Return results size: %{public}zu.", results.size());
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Return results size: %{public}zu.", results.size());
|
||||
return results;
|
||||
}
|
||||
|
||||
sptr<AAFwk::IAbilityScheduler> DataAbilityHelperImpl::GetDataAbilityProxy(const Uri &uri, bool addDeathRecipient)
|
||||
{
|
||||
if (!CheckUriParam(uri)) {
|
||||
HILOG_ERROR("Check uri param failed.");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Check uri param failed.");
|
||||
return nullptr;
|
||||
}
|
||||
// if uri_ is nullptr, it indicates the operation(such as insert, delete and so on) is temporary,
|
||||
// so, we need acquire the dataability before the operation.
|
||||
sptr<AAFwk::IAbilityScheduler> dataAbilityProxy = dataAbilityProxy_;
|
||||
if (uri_ == nullptr) {
|
||||
HILOG_INFO("The uri_ is nullptr, need acquire data ability.");
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "The uri_ is nullptr, need acquire data ability.");
|
||||
dataAbilityProxy = AbilityManagerClient::GetInstance()->AcquireDataAbility(uri, tryBind_, token_);
|
||||
if (dataAbilityProxy == nullptr) {
|
||||
HILOG_ERROR("Acquire data ability failed.");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Acquire data ability failed.");
|
||||
return nullptr;
|
||||
}
|
||||
if (addDeathRecipient && isSystemCaller_) {
|
||||
@@ -832,23 +834,24 @@ void DataAbilityHelperImpl::ReleaseDataAbility(sptr<AAFwk::IAbilityScheduler> da
|
||||
{
|
||||
// if uri_ is nullptr, it indicates the operation(such as insert, delete and so on) is temporary,
|
||||
// so, we need release the dataability after the operation.
|
||||
HILOG_INFO("ReleaseDataAbility start.");
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "ReleaseDataAbility start.");
|
||||
if (!uri_ && dataAbilityProxy && token_) {
|
||||
int ret = AbilityManagerClient::GetInstance()->ReleaseDataAbility(dataAbilityProxy, token_);
|
||||
HILOG_INFO("Release data ability, ret: %{public}d.", ret);
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "Release data ability, ret: %{public}d.", ret);
|
||||
}
|
||||
HILOG_INFO("ReleaseDataAbility end.");
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "ReleaseDataAbility end.");
|
||||
}
|
||||
|
||||
bool DataAbilityHelperImpl::CheckUri(const std::shared_ptr<Uri> &uri)
|
||||
{
|
||||
if (uri == nullptr) {
|
||||
HILOG_ERROR("Input param invalid, uri is nullptr.");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Input param invalid, uri is nullptr.");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (uri->GetScheme() != SchemeOhos) {
|
||||
HILOG_ERROR("Input param invalid, the uri is not dataability, Scheme: %{private}s.", uri->GetScheme().c_str());
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Input param invalid, the uri is not dataability, Scheme: %{private}s.",
|
||||
uri->GetScheme().c_str());
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -859,12 +862,12 @@ bool DataAbilityHelperImpl::CheckUriAndDataObserver(const Uri &uri,
|
||||
const sptr<AAFwk::IDataAbilityObserver> &dataObserver)
|
||||
{
|
||||
if (!CheckUriParam(uri)) {
|
||||
HILOG_ERROR("Check uri param failed.");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Check uri param failed.");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (dataObserver == nullptr) {
|
||||
HILOG_ERROR("Input param invalid, dataObserver is nullptr.");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Input param invalid, dataObserver is nullptr.");
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -873,11 +876,11 @@ bool DataAbilityHelperImpl::CheckUriAndDataObserver(const Uri &uri,
|
||||
|
||||
void DataAbilityDeathRecipient::OnRemoteDied(const wptr<IRemoteObject> &remote)
|
||||
{
|
||||
HILOG_INFO("recv DataAbilityDeathRecipient death notice.");
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "recv DataAbilityDeathRecipient death notice.");
|
||||
if (handler_) {
|
||||
handler_(remote);
|
||||
}
|
||||
HILOG_INFO("OnRemoteDied end.");
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "OnRemoteDied end.");
|
||||
}
|
||||
|
||||
DataAbilityDeathRecipient::DataAbilityDeathRecipient(RemoteDiedHandler handler) : handler_(handler)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2021-2022 Huawei Device Co., Ltd.
|
||||
* Copyright (c) 2021-2024 Huawei Device Co., Ltd.
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
@@ -19,6 +19,7 @@
|
||||
#include "accesstoken_kit.h"
|
||||
#include "data_ability_operation.h"
|
||||
#include "data_ability_predicates.h"
|
||||
#include "hilog_tag_wrapper.h"
|
||||
#include "hilog_wrapper.h"
|
||||
#include "ipc_skeleton.h"
|
||||
#include "values_bucket.h"
|
||||
@@ -34,12 +35,11 @@ using OHOS::Security::AccessToken::AccessTokenKit;
|
||||
void DataAbilityImpl::HandleAbilityTransaction(const Want &want, const AAFwk::LifeCycleStateInfo &targetState,
|
||||
sptr<AAFwk::SessionInfo> sessionInfo)
|
||||
{
|
||||
HILOG_INFO("DataAbilityImpl::sourceState:%{public}d; targetState: %{public}d; isNewWant: %{public}d",
|
||||
lifecycleState_,
|
||||
targetState.state,
|
||||
targetState.isNewWant);
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY,
|
||||
"DataAbilityImpl::sourceState:%{public}d; targetState: %{public}d; isNewWant: %{public}d", lifecycleState_,
|
||||
targetState.state, targetState.isNewWant);
|
||||
if ((lifecycleState_ == targetState.state) && !targetState.isNewWant) {
|
||||
HILOG_ERROR("Org lifeCycleState equals to Dst lifeCycleState.");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Org lifeCycleState equals to Dst lifeCycleState.");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -55,7 +55,7 @@ void DataAbilityImpl::HandleAbilityTransaction(const Want &want, const AAFwk::Li
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
HILOG_ERROR("DataAbilityImpl::HandleAbilityTransaction state is error");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityImpl::HandleAbilityTransaction state is error");
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -75,7 +75,7 @@ std::vector<std::string> DataAbilityImpl::GetFileTypes(const Uri &uri, const std
|
||||
{
|
||||
std::vector<std::string> types;
|
||||
if (ability_ == nullptr) {
|
||||
HILOG_ERROR("DataAbilityImpl::GetFileTypes ability_ is nullptr");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityImpl::GetFileTypes ability_ is nullptr");
|
||||
return types;
|
||||
}
|
||||
|
||||
@@ -98,7 +98,7 @@ int DataAbilityImpl::OpenFile(const Uri &uri, const std::string &mode)
|
||||
{
|
||||
int fd = -1;
|
||||
if (ability_ == nullptr) {
|
||||
HILOG_ERROR("DataAbilityImpl::OpenFile ability_ is nullptr");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityImpl::OpenFile ability_ is nullptr");
|
||||
return fd;
|
||||
}
|
||||
|
||||
@@ -126,7 +126,7 @@ int DataAbilityImpl::OpenRawFile(const Uri &uri, const std::string &mode)
|
||||
{
|
||||
int fd = -1;
|
||||
if (ability_ == nullptr) {
|
||||
HILOG_ERROR("DataAbilityImpl::OpenRawFile ability_ is nullptr");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityImpl::OpenRawFile ability_ is nullptr");
|
||||
return fd;
|
||||
}
|
||||
|
||||
@@ -150,12 +150,12 @@ int DataAbilityImpl::Insert(const Uri &uri, const NativeRdb::ValuesBucket &value
|
||||
{
|
||||
int index = -1;
|
||||
if (ability_ == nullptr) {
|
||||
HILOG_ERROR("DataAbilityImpl::Insert ability_ is nullptr");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityImpl::Insert ability_ is nullptr");
|
||||
return index;
|
||||
}
|
||||
|
||||
if (!CheckReadAndWritePermission(WRITE)) {
|
||||
HILOG_WARN("DataAbilityImpl::Insert failed, do not have write permission");
|
||||
TAG_LOGW(AAFwkTag::DATA_ABILITY, "DataAbilityImpl::Insert failed, do not have write permission");
|
||||
return index;
|
||||
}
|
||||
|
||||
@@ -177,12 +177,12 @@ int DataAbilityImpl::Update(
|
||||
{
|
||||
int index = -1;
|
||||
if (ability_ == nullptr) {
|
||||
HILOG_ERROR("DataAbilityImpl::Update ability_ is nullptr");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityImpl::Update ability_ is nullptr");
|
||||
return index;
|
||||
}
|
||||
|
||||
if (!CheckReadAndWritePermission(WRITE)) {
|
||||
HILOG_WARN("DataAbilityImpl::Update failed, do not have write permission");
|
||||
TAG_LOGW(AAFwkTag::DATA_ABILITY, "DataAbilityImpl::Update failed, do not have write permission");
|
||||
return index;
|
||||
}
|
||||
|
||||
@@ -202,12 +202,12 @@ int DataAbilityImpl::Delete(const Uri &uri, const NativeRdb::DataAbilityPredicat
|
||||
{
|
||||
int index = -1;
|
||||
if (ability_ == nullptr) {
|
||||
HILOG_ERROR("DataAbilityImpl::Delete ability_ is nullptr");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityImpl::Delete ability_ is nullptr");
|
||||
return index;
|
||||
}
|
||||
|
||||
if (!CheckReadAndWritePermission(WRITE)) {
|
||||
HILOG_WARN("DataAbilityImpl::Delete failed, do not have write permission");
|
||||
TAG_LOGW(AAFwkTag::DATA_ABILITY, "DataAbilityImpl::Delete failed, do not have write permission");
|
||||
return index;
|
||||
}
|
||||
|
||||
@@ -228,12 +228,12 @@ std::shared_ptr<NativeRdb::AbsSharedResultSet> DataAbilityImpl::Query(
|
||||
const Uri &uri, std::vector<std::string> &columns, const NativeRdb::DataAbilityPredicates &predicates)
|
||||
{
|
||||
if (ability_ == nullptr) {
|
||||
HILOG_ERROR("DataAbilityImpl::Query ability_ is nullptr");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityImpl::Query ability_ is nullptr");
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
if (!CheckReadAndWritePermission(READ)) {
|
||||
HILOG_WARN("DataAbilityImpl::Query failed, do not have read permission");
|
||||
TAG_LOGW(AAFwkTag::DATA_ABILITY, "DataAbilityImpl::Query failed, do not have read permission");
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
@@ -244,7 +244,7 @@ std::shared_ptr<AppExecFwk::PacMap> DataAbilityImpl::Call(
|
||||
const Uri &uri, const std::string &method, const std::string &arg, const AppExecFwk::PacMap &pacMap)
|
||||
{
|
||||
if (ability_ == nullptr) {
|
||||
HILOG_ERROR("DataAbilityImpl::Call ability_ is nullptr");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityImpl::Call ability_ is nullptr");
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
@@ -263,7 +263,7 @@ std::string DataAbilityImpl::GetType(const Uri &uri)
|
||||
{
|
||||
std::string type;
|
||||
if (ability_ == nullptr) {
|
||||
HILOG_ERROR("DataAbilityImpl::GetType ability_ is nullptr");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityImpl::GetType ability_ is nullptr");
|
||||
return type;
|
||||
}
|
||||
type = ability_->GetType(uri);
|
||||
@@ -284,7 +284,7 @@ bool DataAbilityImpl::Reload(const Uri &uri, const PacMap &extras)
|
||||
{
|
||||
bool ret = false;
|
||||
if (ability_ == nullptr) {
|
||||
HILOG_ERROR("DataAbilityImpl::Reload ability_ is nullptr");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityImpl::Reload ability_ is nullptr");
|
||||
return ret;
|
||||
}
|
||||
ret = ability_->Reload(uri, extras);
|
||||
@@ -303,12 +303,12 @@ int DataAbilityImpl::BatchInsert(const Uri &uri, const std::vector<NativeRdb::Va
|
||||
{
|
||||
int ret = -1;
|
||||
if (ability_ == nullptr) {
|
||||
HILOG_ERROR("DataAbilityImpl::BatchInsert ability_ is nullptr");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityImpl::BatchInsert ability_ is nullptr");
|
||||
return ret;
|
||||
}
|
||||
|
||||
if (!CheckReadAndWritePermission(WRITE)) {
|
||||
HILOG_WARN("DataAbilityImpl::BatchInsert failed, do not have write permission");
|
||||
TAG_LOGW(AAFwkTag::DATA_ABILITY, "DataAbilityImpl::BatchInsert failed, do not have write permission");
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -331,12 +331,12 @@ Uri DataAbilityImpl::NormalizeUri(const Uri &uri)
|
||||
{
|
||||
Uri urivalue("");
|
||||
if (ability_ == nullptr) {
|
||||
HILOG_ERROR("DataAbilityImpl::NormalizeUri ability_ is nullptr");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityImpl::NormalizeUri ability_ is nullptr");
|
||||
return urivalue;
|
||||
}
|
||||
|
||||
if (!CheckReadAndWritePermission(READ)) {
|
||||
HILOG_WARN("DataAbilityImpl::NormalizeUri failed, do not have read permission");
|
||||
TAG_LOGW(AAFwkTag::DATA_ABILITY, "DataAbilityImpl::NormalizeUri failed, do not have read permission");
|
||||
return urivalue;
|
||||
}
|
||||
|
||||
@@ -360,12 +360,12 @@ Uri DataAbilityImpl::DenormalizeUri(const Uri &uri)
|
||||
{
|
||||
Uri urivalue("");
|
||||
if (ability_ == nullptr) {
|
||||
HILOG_ERROR("DataAbilityImpl::DenormalizeUri ability_ is nullptr");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityImpl::DenormalizeUri ability_ is nullptr");
|
||||
return urivalue;
|
||||
}
|
||||
|
||||
if (!CheckReadAndWritePermission(READ)) {
|
||||
HILOG_ERROR("DataAbilityImpl::DenormalizeUri failed, do not have read permission");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityImpl::DenormalizeUri failed, do not have read permission");
|
||||
return urivalue;
|
||||
}
|
||||
|
||||
@@ -376,10 +376,10 @@ Uri DataAbilityImpl::DenormalizeUri(const Uri &uri)
|
||||
std::vector<std::shared_ptr<DataAbilityResult>> DataAbilityImpl::ExecuteBatch(
|
||||
const std::vector<std::shared_ptr<DataAbilityOperation>> &operations)
|
||||
{
|
||||
HILOG_INFO("DataAbilityImpl::ExecuteBatch start");
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "DataAbilityImpl::ExecuteBatch start");
|
||||
std::vector<std::shared_ptr<DataAbilityResult>> results;
|
||||
if (ability_ == nullptr) {
|
||||
HILOG_ERROR("DataAbilityImpl::ExecuteBatch ability_ is nullptr");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityImpl::ExecuteBatch ability_ is nullptr");
|
||||
results.clear();
|
||||
return results;
|
||||
}
|
||||
@@ -390,7 +390,7 @@ std::vector<std::shared_ptr<DataAbilityResult>> DataAbilityImpl::ExecuteBatch(
|
||||
}
|
||||
|
||||
results = ability_->ExecuteBatch(operations);
|
||||
HILOG_INFO("DataAbilityImpl::ExecuteBatch end, results size:%{public}zu", results.size());
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "DataAbilityImpl::ExecuteBatch end, results size:%{public}zu", results.size());
|
||||
return results;
|
||||
}
|
||||
|
||||
@@ -404,7 +404,7 @@ bool DataAbilityImpl::CheckExecuteBatchPermission(
|
||||
for (size_t i = 0; i < size; i++) {
|
||||
std::shared_ptr<DataAbilityOperation> operation = operations[i];
|
||||
if (operation == nullptr) {
|
||||
HILOG_ERROR("operation[i] is nullptr, index: %{public}d", static_cast<int32_t>(i));
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "operation[i] is nullptr, index: %{public}d", static_cast<int32_t>(i));
|
||||
return false;
|
||||
}
|
||||
if (operation->IsInsertOperation() || operation->IsUpdateOperation() || operation->IsDeleteOperation()) {
|
||||
@@ -419,14 +419,14 @@ bool DataAbilityImpl::CheckExecuteBatchPermission(
|
||||
|
||||
if (needCheckReadPermission) {
|
||||
if (!CheckReadAndWritePermission(READ)) {
|
||||
HILOG_WARN("DataAbilityImpl::ExecuteBatch failed, do not have read permission");
|
||||
TAG_LOGW(AAFwkTag::DATA_ABILITY, "DataAbilityImpl::ExecuteBatch failed, do not have read permission");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (needCheckWritePermission) {
|
||||
if (!CheckReadAndWritePermission(WRITE)) {
|
||||
HILOG_WARN("DataAbilityImpl::ExecuteBatch failed, do not have write permission");
|
||||
TAG_LOGW(AAFwkTag::DATA_ABILITY, "DataAbilityImpl::ExecuteBatch failed, do not have write permission");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -438,12 +438,12 @@ bool DataAbilityImpl::CheckOpenFilePermission(const std::string &mode) const
|
||||
{
|
||||
if (mode.find(READ) != string::npos) {
|
||||
if (!CheckReadAndWritePermission(READ)) {
|
||||
HILOG_WARN("DataAbilityImpl::OpenFile failed, do not have read permission");
|
||||
TAG_LOGW(AAFwkTag::DATA_ABILITY, "DataAbilityImpl::OpenFile failed, do not have read permission");
|
||||
return false;
|
||||
}
|
||||
} else if (mode.find(WRITE) != string::npos) {
|
||||
if (!CheckReadAndWritePermission(WRITE)) {
|
||||
HILOG_WARN("DataAbilityImpl::OpenFile failed, do not have write permission");
|
||||
TAG_LOGW(AAFwkTag::DATA_ABILITY, "DataAbilityImpl::OpenFile failed, do not have write permission");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -455,7 +455,7 @@ bool DataAbilityImpl::CheckReadAndWritePermission(const std::string &permissionT
|
||||
{
|
||||
std::string permission = GetPermissionInfo(permissionType);
|
||||
if (permission.empty()) {
|
||||
HILOG_DEBUG("%{public}s, permission is empty", __func__);
|
||||
TAG_LOGD(AAFwkTag::DATA_ABILITY, "%{public}s, permission is empty", __func__);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -463,7 +463,7 @@ bool DataAbilityImpl::CheckReadAndWritePermission(const std::string &permissionT
|
||||
int checkReadPermission = AccessTokenKit::VerifyAccessToken(tokenId, permission);
|
||||
if (checkReadPermission != ERR_OK) {
|
||||
std::shared_ptr<AbilityInfo> abilityInfo = ability_->GetAbilityInfo();
|
||||
HILOG_DEBUG("%{public}s do not have permission, bundleName: %{public}s",
|
||||
TAG_LOGD(AAFwkTag::DATA_ABILITY, "%{public}s do not have permission, bundleName: %{public}s",
|
||||
__func__, abilityInfo->bundleName.c_str());
|
||||
return false;
|
||||
}
|
||||
@@ -473,10 +473,10 @@ bool DataAbilityImpl::CheckReadAndWritePermission(const std::string &permissionT
|
||||
|
||||
std::string DataAbilityImpl::GetPermissionInfo(const std::string &permissionType) const
|
||||
{
|
||||
HILOG_DEBUG("%{public}s begin, permissionType:%{public}s", __func__, permissionType.c_str());
|
||||
TAG_LOGD(AAFwkTag::DATA_ABILITY, "%{public}s begin, permissionType:%{public}s", __func__, permissionType.c_str());
|
||||
std::shared_ptr<AbilityInfo> abilityInfo = ability_->GetAbilityInfo();
|
||||
if (abilityInfo == nullptr) {
|
||||
HILOG_WARN("%{public}s abilityInfo is nullptr", __func__);
|
||||
TAG_LOGW(AAFwkTag::DATA_ABILITY, "%{public}s abilityInfo is nullptr", __func__);
|
||||
return "";
|
||||
}
|
||||
if (permissionType == READ) {
|
||||
@@ -484,8 +484,8 @@ std::string DataAbilityImpl::GetPermissionInfo(const std::string &permissionType
|
||||
} else if (permissionType == WRITE) {
|
||||
return abilityInfo->writePermission;
|
||||
} else {
|
||||
HILOG_INFO("%{public}s permissionType is not read or write, permissionType:%{public}s", __func__,
|
||||
permissionType.c_str());
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "%{public}s permissionType is not read or write, permissionType:%{public}s",
|
||||
__func__, permissionType.c_str());
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2021-2022 Huawei Device Co., Ltd.
|
||||
* Copyright (c) 2021-2024 Huawei Device Co., Ltd.
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
@@ -16,6 +16,7 @@
|
||||
#include "data_ability_operation.h"
|
||||
|
||||
#include "data_ability_predicates.h"
|
||||
#include "hilog_tag_wrapper.h"
|
||||
#include "hilog_wrapper.h"
|
||||
#include "values_bucket.h"
|
||||
|
||||
@@ -140,139 +141,139 @@ DataAbilityOperation &DataAbilityOperation::operator=(const DataAbilityOperation
|
||||
|
||||
std::shared_ptr<DataAbilityOperationBuilder> DataAbilityOperation::NewInsertBuilder(const std::shared_ptr<Uri> &uri)
|
||||
{
|
||||
HILOG_DEBUG("DataAbilityOperation::NewInsertBuilder start");
|
||||
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::NewInsertBuilder start");
|
||||
if (uri == nullptr) {
|
||||
HILOG_ERROR("DataAbilityOperation::NewInsertBuilder uri is nullptr");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::NewInsertBuilder uri is nullptr");
|
||||
return nullptr;
|
||||
}
|
||||
std::shared_ptr<DataAbilityOperationBuilder> builder =
|
||||
std::make_shared<DataAbilityOperationBuilder>(TYPE_INSERT, uri);
|
||||
HILOG_DEBUG("DataAbilityOperation::NewInsertBuilder end");
|
||||
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::NewInsertBuilder end");
|
||||
return builder;
|
||||
}
|
||||
|
||||
std::shared_ptr<DataAbilityOperationBuilder> DataAbilityOperation::NewUpdateBuilder(const std::shared_ptr<Uri> &uri)
|
||||
{
|
||||
HILOG_DEBUG("DataAbilityOperation::NewUpdateBuilder start");
|
||||
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::NewUpdateBuilder start");
|
||||
if (uri == nullptr) {
|
||||
HILOG_ERROR("DataAbilityOperation::NewUpdateBuilder uri is nullptr");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::NewUpdateBuilder uri is nullptr");
|
||||
return nullptr;
|
||||
}
|
||||
std::shared_ptr<DataAbilityOperationBuilder> builder =
|
||||
std::make_shared<DataAbilityOperationBuilder>(TYPE_UPDATE, uri);
|
||||
HILOG_DEBUG("DataAbilityOperation::NewUpdateBuilder end");
|
||||
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::NewUpdateBuilder end");
|
||||
return builder;
|
||||
}
|
||||
|
||||
std::shared_ptr<DataAbilityOperationBuilder> DataAbilityOperation::NewDeleteBuilder(const std::shared_ptr<Uri> &uri)
|
||||
{
|
||||
HILOG_DEBUG("DataAbilityOperation::NewDeleteBuilder start");
|
||||
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::NewDeleteBuilder start");
|
||||
if (uri == nullptr) {
|
||||
HILOG_ERROR("DataAbilityOperation::NewDeleteBuilder uri is nullptr");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::NewDeleteBuilder uri is nullptr");
|
||||
return nullptr;
|
||||
}
|
||||
std::shared_ptr<DataAbilityOperationBuilder> builder =
|
||||
std::make_shared<DataAbilityOperationBuilder>(TYPE_DELETE, uri);
|
||||
HILOG_DEBUG("DataAbilityOperation::NewDeleteBuilder end");
|
||||
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::NewDeleteBuilder end");
|
||||
return builder;
|
||||
}
|
||||
|
||||
std::shared_ptr<DataAbilityOperationBuilder> DataAbilityOperation::NewAssertBuilder(const std::shared_ptr<Uri> &uri)
|
||||
{
|
||||
HILOG_DEBUG("DataAbilityOperation::NewAssertBuilder start");
|
||||
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::NewAssertBuilder start");
|
||||
if (uri == nullptr) {
|
||||
HILOG_ERROR("DataAbilityOperation::NewAssertBuilder uri is nullptr");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::NewAssertBuilder uri is nullptr");
|
||||
return nullptr;
|
||||
}
|
||||
std::shared_ptr<DataAbilityOperationBuilder> builder =
|
||||
std::make_shared<DataAbilityOperationBuilder>(TYPE_ASSERT, uri);
|
||||
HILOG_DEBUG("DataAbilityOperation::NewAssertBuilder end");
|
||||
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::NewAssertBuilder end");
|
||||
return builder;
|
||||
}
|
||||
|
||||
int DataAbilityOperation::GetType() const
|
||||
{
|
||||
HILOG_DEBUG("DataAbilityOperation::GetType");
|
||||
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::GetType");
|
||||
return type_;
|
||||
}
|
||||
|
||||
std::shared_ptr<Uri> DataAbilityOperation::GetUri() const
|
||||
{
|
||||
HILOG_DEBUG("DataAbilityOperation::GetUri");
|
||||
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::GetUri");
|
||||
return uri_;
|
||||
}
|
||||
|
||||
std::shared_ptr<NativeRdb::ValuesBucket> DataAbilityOperation::GetValuesBucket() const
|
||||
{
|
||||
HILOG_DEBUG("DataAbilityOperation::GetValuesBucket");
|
||||
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::GetValuesBucket");
|
||||
return valuesBucket_;
|
||||
}
|
||||
|
||||
int DataAbilityOperation::GetExpectedCount() const
|
||||
{
|
||||
HILOG_DEBUG("DataAbilityOperation::GetExpectedCount");
|
||||
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::GetExpectedCount");
|
||||
return expectedCount_;
|
||||
}
|
||||
|
||||
std::shared_ptr<NativeRdb::DataAbilityPredicates> DataAbilityOperation::GetDataAbilityPredicates() const
|
||||
{
|
||||
HILOG_DEBUG("DataAbilityOperation::GetDataAbilityPredicates");
|
||||
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::GetDataAbilityPredicates");
|
||||
return dataAbilityPredicates_;
|
||||
}
|
||||
|
||||
std::shared_ptr<NativeRdb::ValuesBucket> DataAbilityOperation::GetValuesBucketReferences() const
|
||||
{
|
||||
HILOG_DEBUG("DataAbilityOperation::GetValuesBucketReferences");
|
||||
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::GetValuesBucketReferences");
|
||||
return valuesBucketReferences_;
|
||||
}
|
||||
std::map<int, int> DataAbilityOperation::GetDataAbilityPredicatesBackReferences() const
|
||||
{
|
||||
HILOG_DEBUG("DataAbilityOperation::GetDataAbilityPredicatesBackReferences");
|
||||
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::GetDataAbilityPredicatesBackReferences");
|
||||
return dataAbilityPredicatesBackReferences_;
|
||||
}
|
||||
bool DataAbilityOperation::IsValidOperation() const
|
||||
{
|
||||
HILOG_DEBUG("DataAbilityOperation::IsValidOperation: type is %{public}d", type_);
|
||||
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::IsValidOperation: type is %{public}d", type_);
|
||||
return (type_ == TYPE_INSERT || type_ == TYPE_UPDATE || type_ == TYPE_DELETE || type_ == TYPE_ASSERT);
|
||||
}
|
||||
bool DataAbilityOperation::IsInsertOperation() const
|
||||
{
|
||||
HILOG_DEBUG("DataAbilityOperation::IsInsertOperation: %{public}d", type_ == TYPE_INSERT);
|
||||
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::IsInsertOperation: %{public}d", type_ == TYPE_INSERT);
|
||||
return type_ == TYPE_INSERT;
|
||||
}
|
||||
bool DataAbilityOperation::IsUpdateOperation() const
|
||||
{
|
||||
HILOG_DEBUG("DataAbilityOperation::IsUpdateOperation: %{public}d", type_ == TYPE_UPDATE);
|
||||
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::IsUpdateOperation: %{public}d", type_ == TYPE_UPDATE);
|
||||
return type_ == TYPE_UPDATE;
|
||||
}
|
||||
bool DataAbilityOperation::IsDeleteOperation() const
|
||||
{
|
||||
HILOG_DEBUG("DataAbilityOperation::IsDeleteOperation: %{public}d", type_ == TYPE_DELETE);
|
||||
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::IsDeleteOperation: %{public}d", type_ == TYPE_DELETE);
|
||||
return type_ == TYPE_DELETE;
|
||||
}
|
||||
bool DataAbilityOperation::IsAssertOperation() const
|
||||
{
|
||||
HILOG_DEBUG("DataAbilityOperation::IsAssertOperation: %{public}d", type_ == TYPE_ASSERT);
|
||||
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::IsAssertOperation: %{public}d", type_ == TYPE_ASSERT);
|
||||
return type_ == TYPE_ASSERT;
|
||||
}
|
||||
bool DataAbilityOperation::IsInterruptionAllowed() const
|
||||
{
|
||||
HILOG_DEBUG("DataAbilityOperation::IsInterruptionAllowed: %{public}d", interrupted_);
|
||||
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::IsInterruptionAllowed: %{public}d", interrupted_);
|
||||
return interrupted_;
|
||||
}
|
||||
|
||||
bool DataAbilityOperation::WriteUri(Parcel &out) const
|
||||
{
|
||||
if (uri_ == nullptr) {
|
||||
HILOG_DEBUG("Uri is nullptr");
|
||||
TAG_LOGD(AAFwkTag::DATA_ABILITY, "Uri is nullptr");
|
||||
return out.WriteInt32(VALUE_NULL);
|
||||
}
|
||||
if (!out.WriteInt32(VALUE_OBJECT)) {
|
||||
HILOG_ERROR("Write VALUE_OBJECT error");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Write VALUE_OBJECT error");
|
||||
return false;
|
||||
}
|
||||
if (!out.WriteParcelable(uri_.get())) {
|
||||
HILOG_ERROR("Write Uri error");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Write Uri error");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
@@ -281,15 +282,15 @@ bool DataAbilityOperation::WriteUri(Parcel &out) const
|
||||
bool DataAbilityOperation::WriteValuesBucket(Parcel &out) const
|
||||
{
|
||||
if (valuesBucket_ == nullptr) {
|
||||
HILOG_DEBUG("ValuesBucket is nullptr");
|
||||
TAG_LOGD(AAFwkTag::DATA_ABILITY, "ValuesBucket is nullptr");
|
||||
return out.WriteInt32(VALUE_NULL);
|
||||
}
|
||||
if (!out.WriteInt32(VALUE_OBJECT)) {
|
||||
HILOG_ERROR("Write VALUE_OBJECT error");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Write VALUE_OBJECT error");
|
||||
return false;
|
||||
}
|
||||
if (!valuesBucket_->Marshalling(out)) {
|
||||
HILOG_ERROR("Write ValuesBucket error");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Write ValuesBucket error");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
@@ -298,15 +299,15 @@ bool DataAbilityOperation::WriteValuesBucket(Parcel &out) const
|
||||
bool DataAbilityOperation::WritePredicates(Parcel &out) const
|
||||
{
|
||||
if (dataAbilityPredicates_ == nullptr) {
|
||||
HILOG_DEBUG("DataAbilityPredicates is nullptr");
|
||||
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityPredicates is nullptr");
|
||||
return out.WriteInt32(VALUE_NULL);
|
||||
}
|
||||
if (!out.WriteInt32(VALUE_OBJECT)) {
|
||||
HILOG_ERROR("Write VALUE_OBJECT error");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Write VALUE_OBJECT error");
|
||||
return false;
|
||||
}
|
||||
if (!out.WriteParcelable(dataAbilityPredicates_.get())) {
|
||||
HILOG_ERROR("Write DataAbilityPredicates error");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Write DataAbilityPredicates error");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
@@ -315,15 +316,15 @@ bool DataAbilityOperation::WritePredicates(Parcel &out) const
|
||||
bool DataAbilityOperation::WriteValuesBucketReferences(Parcel &out) const
|
||||
{
|
||||
if (valuesBucketReferences_ == nullptr) {
|
||||
HILOG_DEBUG("ValuesBucketReferences is nullptr");
|
||||
TAG_LOGD(AAFwkTag::DATA_ABILITY, "ValuesBucketReferences is nullptr");
|
||||
return out.WriteInt32(VALUE_NULL);
|
||||
}
|
||||
if (!out.WriteInt32(VALUE_OBJECT)) {
|
||||
HILOG_ERROR("Write VALUE_OBJECT error");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Write VALUE_OBJECT error");
|
||||
return false;
|
||||
}
|
||||
if (!valuesBucketReferences_->Marshalling(out)) {
|
||||
HILOG_ERROR("ValuesBucketReferences Marshalling error");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "ValuesBucketReferences Marshalling error");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
@@ -331,65 +332,66 @@ bool DataAbilityOperation::WriteValuesBucketReferences(Parcel &out) const
|
||||
|
||||
bool DataAbilityOperation::Marshalling(Parcel &out) const
|
||||
{
|
||||
HILOG_DEBUG("DataAbilityOperation::Marshalling start");
|
||||
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::Marshalling start");
|
||||
if (!out.WriteInt32(type_)) {
|
||||
HILOG_ERROR("DataAbilityOperation::Marshalling WriteInt32(type) error");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::Marshalling WriteInt32(type) error");
|
||||
return false;
|
||||
}
|
||||
if (!out.WriteInt32(expectedCount_)) {
|
||||
HILOG_ERROR("DataAbilityOperation::Marshalling WriteInt32(expectedCount) error");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::Marshalling WriteInt32(expectedCount) error");
|
||||
return false;
|
||||
}
|
||||
if (!out.WriteBool(interrupted_)) {
|
||||
HILOG_ERROR("DataAbilityOperation::Marshalling WriteInt32(interrupted) error");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::Marshalling WriteInt32(interrupted) error");
|
||||
return false;
|
||||
}
|
||||
if (!WriteUri(out) || !WriteValuesBucket(out) || !WritePredicates(out) || !WriteValuesBucketReferences(out)) {
|
||||
HILOG_ERROR("Marshalling error");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "Marshalling error");
|
||||
return false;
|
||||
}
|
||||
int referenceSize = (int)dataAbilityPredicatesBackReferences_.size();
|
||||
if (dataAbilityPredicatesBackReferences_.empty()) {
|
||||
HILOG_DEBUG("DataAbilityOperation::Marshalling dataAbilityPredicatesBackReferences_ is empty");
|
||||
TAG_LOGD(
|
||||
AAFwkTag::DATA_ABILITY, "DataAbilityOperation::Marshalling dataAbilityPredicatesBackReferences_ is empty");
|
||||
if (!out.WriteInt32(referenceSize)) {
|
||||
HILOG_ERROR("DataAbilityOperation::Marshalling WriteInt32(VALUE_OBJECT) error");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::Marshalling WriteInt32(VALUE_OBJECT) error");
|
||||
return false;
|
||||
}
|
||||
HILOG_DEBUG("DataAbilityOperation::Marshalling end");
|
||||
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::Marshalling end");
|
||||
return true;
|
||||
}
|
||||
if (!out.WriteInt32(referenceSize)) {
|
||||
HILOG_ERROR("DataAbilityOperation::Marshalling WriteInt32(VALUE_OBJECT) error");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::Marshalling WriteInt32(VALUE_OBJECT) error");
|
||||
return false;
|
||||
}
|
||||
if (referenceSize >= REFERENCE_THRESHOLD) {
|
||||
HILOG_INFO("DataAbilityOperation::Marshalling referenceSize >= REFERENCE_THRESHOLD");
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::Marshalling referenceSize >= REFERENCE_THRESHOLD");
|
||||
return true;
|
||||
}
|
||||
for (auto it = dataAbilityPredicatesBackReferences_.begin(); it != dataAbilityPredicatesBackReferences_.end();
|
||||
it++) {
|
||||
if (!out.WriteInt32(it->first)) {
|
||||
HILOG_ERROR("DataAbilityOperation::Marshalling WriteInt32(VALUE_OBJECT) error");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::Marshalling WriteInt32(VALUE_OBJECT) error");
|
||||
return false;
|
||||
}
|
||||
if (!out.WriteInt32(it->second)) {
|
||||
HILOG_ERROR("DataAbilityOperation::Marshalling WriteInt32(VALUE_OBJECT) error");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::Marshalling WriteInt32(VALUE_OBJECT) error");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
HILOG_DEBUG("DataAbilityOperation::Marshalling end");
|
||||
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::Marshalling end");
|
||||
return true;
|
||||
}
|
||||
DataAbilityOperation *DataAbilityOperation::Unmarshalling(Parcel &in)
|
||||
{
|
||||
HILOG_DEBUG("DataAbilityOperation::Unmarshalling start");
|
||||
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::Unmarshalling start");
|
||||
DataAbilityOperation *dataAbilityOperation = new (std::nothrow) DataAbilityOperation();
|
||||
if (dataAbilityOperation != nullptr && !dataAbilityOperation->ReadFromParcel(in)) {
|
||||
HILOG_ERROR("DataAbilityOperation::Unmarshalling dataAbilityOperation error");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::Unmarshalling dataAbilityOperation error");
|
||||
delete dataAbilityOperation;
|
||||
dataAbilityOperation = nullptr;
|
||||
}
|
||||
HILOG_DEBUG("DataAbilityOperation::Unmarshalling end");
|
||||
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::Unmarshalling end");
|
||||
return dataAbilityOperation;
|
||||
}
|
||||
|
||||
@@ -397,11 +399,11 @@ bool DataAbilityOperation::ReadUriFromParcel(Parcel &in)
|
||||
{
|
||||
int empty = VALUE_NULL;
|
||||
if (!in.ReadInt32(empty)) {
|
||||
HILOG_ERROR("DataAbilityOperation::ReadFromParcel ReadInt32(empty) error");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::ReadFromParcel ReadInt32(empty) error");
|
||||
return false;
|
||||
}
|
||||
if (empty == VALUE_OBJECT) {
|
||||
HILOG_DEBUG("empty is VALUE_OBJECT");
|
||||
TAG_LOGD(AAFwkTag::DATA_ABILITY, "empty is VALUE_OBJECT");
|
||||
uri_.reset(in.ReadParcelable<Uri>());
|
||||
return true;
|
||||
}
|
||||
@@ -413,11 +415,11 @@ bool DataAbilityOperation::ReadValuesBucketFromParcel(Parcel &in)
|
||||
{
|
||||
int empty = VALUE_NULL;
|
||||
if (!in.ReadInt32(empty)) {
|
||||
HILOG_ERROR("DataAbilityOperation::ReadFromParcel ReadInt32(empty) error");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::ReadFromParcel ReadInt32(empty) error");
|
||||
return false;
|
||||
}
|
||||
if (empty == VALUE_OBJECT) {
|
||||
HILOG_DEBUG("empty is VALUE_OBJECT");
|
||||
TAG_LOGD(AAFwkTag::DATA_ABILITY, "empty is VALUE_OBJECT");
|
||||
valuesBucket_ = std::make_shared<NativeRdb::ValuesBucket>(NativeRdb::ValuesBucket::Unmarshalling(in));
|
||||
return true;
|
||||
}
|
||||
@@ -429,11 +431,11 @@ bool DataAbilityOperation::ReadDataAbilityPredicatesFromParcel(Parcel &in)
|
||||
{
|
||||
int empty = VALUE_NULL;
|
||||
if (!in.ReadInt32(empty)) {
|
||||
HILOG_ERROR("DataAbilityOperation::ReadFromParcel ReadInt32(empty) error");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::ReadFromParcel ReadInt32(empty) error");
|
||||
return false;
|
||||
}
|
||||
if (empty == VALUE_OBJECT) {
|
||||
HILOG_DEBUG("empty is VALUE_OBJECT");
|
||||
TAG_LOGD(AAFwkTag::DATA_ABILITY, "empty is VALUE_OBJECT");
|
||||
dataAbilityPredicates_.reset(in.ReadParcelable<NativeRdb::DataAbilityPredicates>());
|
||||
return true;
|
||||
}
|
||||
@@ -445,11 +447,11 @@ bool DataAbilityOperation::ReadValuesBucketReferencesFromParcel(Parcel &in)
|
||||
{
|
||||
int empty = VALUE_NULL;
|
||||
if (!in.ReadInt32(empty)) {
|
||||
HILOG_ERROR("DataAbilityOperation::ReadFromParcel ReadInt32(empty) error");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::ReadFromParcel ReadInt32(empty) error");
|
||||
return false;
|
||||
}
|
||||
if (empty == VALUE_OBJECT) {
|
||||
HILOG_DEBUG("empty is VALUE_OBJECT");
|
||||
TAG_LOGD(AAFwkTag::DATA_ABILITY, "empty is VALUE_OBJECT");
|
||||
valuesBucketReferences_ = std::make_shared<NativeRdb::ValuesBucket>(
|
||||
NativeRdb::ValuesBucket::Unmarshalling(in));
|
||||
return true;
|
||||
@@ -460,28 +462,29 @@ bool DataAbilityOperation::ReadValuesBucketReferencesFromParcel(Parcel &in)
|
||||
|
||||
bool DataAbilityOperation::ReadFromParcel(Parcel &in)
|
||||
{
|
||||
HILOG_DEBUG("DataAbilityOperation::ReadFromParcel start");
|
||||
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::ReadFromParcel start");
|
||||
if (!in.ReadInt32(type_)) {
|
||||
HILOG_ERROR("DataAbilityOperation::ReadFromParcel ReadInt32(type) error");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::ReadFromParcel ReadInt32(type) error");
|
||||
return false;
|
||||
}
|
||||
if (!in.ReadInt32(expectedCount_)) {
|
||||
HILOG_ERROR("DataAbilityOperation::ReadFromParcel ReadInt32(expectedCount) error");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::ReadFromParcel ReadInt32(expectedCount) error");
|
||||
return false;
|
||||
}
|
||||
interrupted_ = in.ReadBool();
|
||||
if (!ReadUriFromParcel(in) || !ReadValuesBucketFromParcel(in) || !ReadDataAbilityPredicatesFromParcel(in) ||
|
||||
!ReadValuesBucketReferencesFromParcel(in)) {
|
||||
HILOG_ERROR("DataAbilityOperation::ReadFromParcel error");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::ReadFromParcel error");
|
||||
return false;
|
||||
}
|
||||
int referenceSize = 0;
|
||||
if (!in.ReadInt32(referenceSize)) {
|
||||
HILOG_ERROR("DataAbilityOperation::ReadFromParcel end");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::ReadFromParcel end");
|
||||
return false;
|
||||
}
|
||||
if (referenceSize >= REFERENCE_THRESHOLD) {
|
||||
HILOG_INFO("DataAbilityOperation::ReadFromParcel referenceSize:%{public}d >= REFERENCE_THRESHOLD:%{public}d",
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY,
|
||||
"DataAbilityOperation::ReadFromParcel referenceSize:%{public}d >= REFERENCE_THRESHOLD:%{public}d",
|
||||
referenceSize, REFERENCE_THRESHOLD);
|
||||
return true;
|
||||
}
|
||||
@@ -490,36 +493,36 @@ bool DataAbilityOperation::ReadFromParcel(Parcel &in)
|
||||
int first = 0;
|
||||
int second = 0;
|
||||
if (!in.ReadInt32(first)) {
|
||||
HILOG_ERROR("DataAbilityOperation::ReadFromParcel end");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::ReadFromParcel end");
|
||||
return false;
|
||||
}
|
||||
if (!in.ReadInt32(second)) {
|
||||
HILOG_ERROR("DataAbilityOperation::ReadFromParcel end");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::ReadFromParcel end");
|
||||
return false;
|
||||
}
|
||||
dataAbilityPredicatesBackReferences_.insert(std::make_pair(first, second));
|
||||
}
|
||||
|
||||
HILOG_DEBUG("DataAbilityOperation::ReadFromParcel end");
|
||||
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::ReadFromParcel end");
|
||||
return true;
|
||||
}
|
||||
std::shared_ptr<DataAbilityOperation> DataAbilityOperation::CreateFromParcel(Parcel &in)
|
||||
{
|
||||
HILOG_DEBUG("DataAbilityOperation::CreateFromParcel start");
|
||||
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::CreateFromParcel start");
|
||||
std::shared_ptr<DataAbilityOperation> operation = std::make_shared<DataAbilityOperation>(in);
|
||||
HILOG_DEBUG("DataAbilityOperation::CreateFromParcel end");
|
||||
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::CreateFromParcel end");
|
||||
return operation;
|
||||
}
|
||||
void DataAbilityOperation::PutMap(Parcel &in)
|
||||
{
|
||||
HILOG_DEBUG("DataAbilityOperation::PutMap start");
|
||||
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::PutMap start");
|
||||
int count = in.ReadInt32();
|
||||
if (count > 0 && count < REFERENCE_THRESHOLD) {
|
||||
for (int i = 0; i < count; ++i) {
|
||||
dataAbilityPredicatesBackReferences_.insert(std::make_pair(in.ReadInt32(), in.ReadInt32()));
|
||||
}
|
||||
}
|
||||
HILOG_DEBUG("DataAbilityOperation::PutMap end");
|
||||
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperation::PutMap end");
|
||||
}
|
||||
} // namespace AppExecFwk
|
||||
} // namespace OHOS
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2021-2022 Huawei Device Co., Ltd.
|
||||
* Copyright (c) 2021-2024 Huawei Device Co., Ltd.
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
@@ -15,6 +15,7 @@
|
||||
|
||||
#include "data_ability_operation_builder.h"
|
||||
#include "data_ability_predicates.h"
|
||||
#include "hilog_tag_wrapper.h"
|
||||
#include "hilog_wrapper.h"
|
||||
#include "values_bucket.h"
|
||||
|
||||
@@ -38,104 +39,118 @@ DataAbilityOperationBuilder::~DataAbilityOperationBuilder()
|
||||
|
||||
std::shared_ptr<DataAbilityOperation> DataAbilityOperationBuilder::Build()
|
||||
{
|
||||
HILOG_DEBUG("DataAbilityOperationBuilder::Build start");
|
||||
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperationBuilder::Build start");
|
||||
if (type_ != DataAbilityOperation::TYPE_UPDATE || (valuesBucket_ != nullptr && !valuesBucket_->IsEmpty())) {
|
||||
std::shared_ptr<DataAbilityOperation> operation = std::make_shared<DataAbilityOperation>(shared_from_this());
|
||||
HILOG_DEBUG("DataAbilityOperationBuilder::Build end");
|
||||
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperationBuilder::Build end");
|
||||
return operation;
|
||||
}
|
||||
HILOG_ERROR("DataAbilityOperationBuilder::Build return nullptr");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityOperationBuilder::Build return nullptr");
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
std::shared_ptr<DataAbilityOperationBuilder> DataAbilityOperationBuilder::WithValuesBucket(
|
||||
std::shared_ptr<NativeRdb::ValuesBucket> &values)
|
||||
{
|
||||
HILOG_DEBUG("DataAbilityOperationBuilder::WithValuesBucket start");
|
||||
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperationBuilder::WithValuesBucket start");
|
||||
if (type_ != DataAbilityOperation::TYPE_INSERT && type_ != DataAbilityOperation::TYPE_UPDATE &&
|
||||
type_ != DataAbilityOperation::TYPE_ASSERT) {
|
||||
HILOG_ERROR("DataAbilityOperationBuilder::WithValuesBucket only inserts, updates and assert can have values,"
|
||||
" type=%{public}d", type_);
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY,
|
||||
"DataAbilityOperationBuilder::WithValuesBucket only inserts, updates and assert can have values,"
|
||||
" type=%{public}d",
|
||||
type_);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
valuesBucket_ = std::make_shared<NativeRdb::ValuesBucket>(*values);
|
||||
HILOG_DEBUG("DataAbilityOperationBuilder::WithValuesBucket end");
|
||||
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperationBuilder::WithValuesBucket end");
|
||||
return shared_from_this();
|
||||
}
|
||||
|
||||
std::shared_ptr<DataAbilityOperationBuilder> DataAbilityOperationBuilder::WithPredicates(
|
||||
std::shared_ptr<NativeRdb::DataAbilityPredicates> &predicates)
|
||||
{
|
||||
HILOG_DEBUG("DataAbilityOperationBuilder::WithPredicates start");
|
||||
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperationBuilder::WithPredicates start");
|
||||
if (type_ != DataAbilityOperation::TYPE_DELETE && type_ != DataAbilityOperation::TYPE_UPDATE &&
|
||||
type_ != DataAbilityOperation::TYPE_ASSERT) {
|
||||
HILOG_ERROR(
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY,
|
||||
"DataAbilityOperationBuilder::withPredicates only deletes, updates and assert can have selections,"
|
||||
" type=%{public}d", type_);
|
||||
" type=%{public}d",
|
||||
type_);
|
||||
return nullptr;
|
||||
}
|
||||
dataAbilityPredicates_ = predicates;
|
||||
HILOG_DEBUG("DataAbilityOperationBuilder::WithPredicates end");
|
||||
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperationBuilder::WithPredicates end");
|
||||
return shared_from_this();
|
||||
}
|
||||
std::shared_ptr<DataAbilityOperationBuilder> DataAbilityOperationBuilder::WithExpectedCount(int count)
|
||||
{
|
||||
HILOG_DEBUG("DataAbilityOperationBuilder::WithExpectedCount start");
|
||||
HILOG_INFO("DataAbilityOperationBuilder::WithExpectedCount expectedCount:%{public}d", count);
|
||||
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperationBuilder::WithExpectedCount start");
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "DataAbilityOperationBuilder::WithExpectedCount expectedCount:%{public}d", count);
|
||||
if (type_ != DataAbilityOperation::TYPE_UPDATE && type_ != DataAbilityOperation::TYPE_DELETE &&
|
||||
type_ != DataAbilityOperation::TYPE_ASSERT) {
|
||||
HILOG_ERROR("DataAbilityOperationBuilder::withExpectedCount only updates, deletes and assert "
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY,
|
||||
"DataAbilityOperationBuilder::withExpectedCount only updates, deletes and assert "
|
||||
"can have expected counts, "
|
||||
"type=%{public}d", type_);
|
||||
"type=%{public}d",
|
||||
type_);
|
||||
return nullptr;
|
||||
}
|
||||
expectedCount_ = count;
|
||||
HILOG_DEBUG("DataAbilityOperationBuilder::WithExpectedCount end");
|
||||
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperationBuilder::WithExpectedCount end");
|
||||
return shared_from_this();
|
||||
}
|
||||
std::shared_ptr<DataAbilityOperationBuilder> DataAbilityOperationBuilder::WithPredicatesBackReference(
|
||||
int requestArgIndex, int previousResult)
|
||||
{
|
||||
HILOG_DEBUG("DataAbilityOperationBuilder::WithPredicatesBackReference start");
|
||||
HILOG_INFO("DataAbilityOperationBuilder::WithPredicatesBackReference requestArgIndex:%{public}d, "
|
||||
"previousResult:%{public}d", requestArgIndex, previousResult);
|
||||
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperationBuilder::WithPredicatesBackReference start");
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY,
|
||||
"DataAbilityOperationBuilder::WithPredicatesBackReference requestArgIndex:%{public}d, "
|
||||
"previousResult:%{public}d",
|
||||
requestArgIndex, previousResult);
|
||||
if (type_ != DataAbilityOperation::TYPE_UPDATE && type_ != DataAbilityOperation::TYPE_DELETE &&
|
||||
type_ != DataAbilityOperation::TYPE_ASSERT) {
|
||||
HILOG_ERROR("DataAbilityOperationBuilder::withPredicatesBackReference only updates, deletes, "
|
||||
"and asserts can have select back-references, type=%{public}d", type_);
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY,
|
||||
"DataAbilityOperationBuilder::withPredicatesBackReference only updates, deletes, "
|
||||
"and asserts can have select back-references, type=%{public}d",
|
||||
type_);
|
||||
return nullptr;
|
||||
}
|
||||
dataAbilityPredicatesBackReferences_.insert(std::make_pair(requestArgIndex, previousResult));
|
||||
HILOG_DEBUG("DataAbilityOperationBuilder::WithPredicatesBackReference end");
|
||||
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperationBuilder::WithPredicatesBackReference end");
|
||||
return shared_from_this();
|
||||
}
|
||||
std::shared_ptr<DataAbilityOperationBuilder> DataAbilityOperationBuilder::WithValueBackReferences(
|
||||
std::shared_ptr<NativeRdb::ValuesBucket> &backReferences)
|
||||
{
|
||||
HILOG_DEBUG("DataAbilityOperationBuilder::WithValueBackReferences start");
|
||||
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperationBuilder::WithValueBackReferences start");
|
||||
if (type_ != DataAbilityOperation::TYPE_INSERT && type_ != DataAbilityOperation::TYPE_UPDATE &&
|
||||
type_ != DataAbilityOperation::TYPE_ASSERT) {
|
||||
HILOG_ERROR("DataAbilityOperationBuilder::withValueBackReferences only inserts, updates, and asserts can have "
|
||||
"value back-references, type=%{public}d", type_);
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY,
|
||||
"DataAbilityOperationBuilder::withValueBackReferences only inserts, updates, and asserts can have "
|
||||
"value back-references, type=%{public}d",
|
||||
type_);
|
||||
return nullptr;
|
||||
}
|
||||
valuesBucketReferences_ = backReferences;
|
||||
HILOG_DEBUG("DataAbilityOperationBuilder::WithValueBackReferences end");
|
||||
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperationBuilder::WithValueBackReferences end");
|
||||
return shared_from_this();
|
||||
}
|
||||
std::shared_ptr<DataAbilityOperationBuilder> DataAbilityOperationBuilder::WithInterruptionAllowed(bool interrupted)
|
||||
{
|
||||
HILOG_DEBUG("DataAbilityOperationBuilder::WithInterruptionAllowed start");
|
||||
HILOG_INFO("DataAbilityOperationBuilder::WithInterruptionAllowed interrupted=%{public}d", interrupted);
|
||||
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperationBuilder::WithInterruptionAllowed start");
|
||||
TAG_LOGI(AAFwkTag::DATA_ABILITY, "DataAbilityOperationBuilder::WithInterruptionAllowed interrupted=%{public}d",
|
||||
interrupted);
|
||||
if (type_ != DataAbilityOperation::TYPE_INSERT && type_ != DataAbilityOperation::TYPE_UPDATE &&
|
||||
type_ != DataAbilityOperation::TYPE_ASSERT && type_ != DataAbilityOperation::TYPE_DELETE) {
|
||||
HILOG_ERROR("DataAbilityOperationBuilder::withInterruptionAllowed only inserts, updates, delete, "
|
||||
"and asserts can have value back-references, type=%{public}d", type_);
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY,
|
||||
"DataAbilityOperationBuilder::withInterruptionAllowed only inserts, updates, delete, "
|
||||
"and asserts can have value back-references, type=%{public}d",
|
||||
type_);
|
||||
return nullptr;
|
||||
}
|
||||
interrupted_ = interrupted;
|
||||
HILOG_DEBUG("DataAbilityOperationBuilder::WithInterruptionAllowed end");
|
||||
TAG_LOGD(AAFwkTag::DATA_ABILITY, "DataAbilityOperationBuilder::WithInterruptionAllowed end");
|
||||
return shared_from_this();
|
||||
}
|
||||
} // namespace AppExecFwk
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2021-2022 Huawei Device Co., Ltd.
|
||||
* Copyright (c) 2021-2024 Huawei Device Co., Ltd.
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
@@ -17,6 +17,7 @@
|
||||
|
||||
#include <memory>
|
||||
|
||||
#include "hilog_tag_wrapper.h"
|
||||
#include "hilog_wrapper.h"
|
||||
#include "parcel_macro_base.h"
|
||||
|
||||
@@ -87,7 +88,7 @@ DataAbilityResult *DataAbilityResult::CreateFromParcel(Parcel &parcel)
|
||||
{
|
||||
DataAbilityResult *dataAbilityResult = new (std::nothrow) DataAbilityResult(parcel);
|
||||
if (dataAbilityResult == nullptr) {
|
||||
HILOG_ERROR("DataAbilityResult::CreateFromParcel dataAbilityResult is nullptr");
|
||||
TAG_LOGE(AAFwkTag::DATA_ABILITY, "DataAbilityResult::CreateFromParcel dataAbilityResult is nullptr");
|
||||
}
|
||||
return dataAbilityResult;
|
||||
}
|
||||
@@ -157,7 +158,7 @@ bool DataAbilityResult::ReadFromParcel(Parcel &parcel)
|
||||
int32_t empty = VALUE_NULL;
|
||||
if (!parcel.ReadInt32(empty)) {
|
||||
return false;
|
||||
HILOG_DEBUG("Failed to read parcel");
|
||||
TAG_LOGD(AAFwkTag::DATA_ABILITY, "Failed to read parcel");
|
||||
}
|
||||
|
||||
if (empty == VALUE_OBJECT) {
|
||||
@@ -168,7 +169,7 @@ bool DataAbilityResult::ReadFromParcel(Parcel &parcel)
|
||||
uri = nullptr;
|
||||
} else {
|
||||
return false;
|
||||
HILOG_DEBUG("Failed to read parcel");
|
||||
TAG_LOGD(AAFwkTag::DATA_ABILITY, "Failed to read parcel");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2021-2023 Huawei Device Co., Ltd.
|
||||
* Copyright (c) 2021-2024 Huawei Device Co., Ltd.
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
@@ -18,6 +18,7 @@
|
||||
#include "ability_local_record.h"
|
||||
#include "configuration.h"
|
||||
#include "extension_context.h"
|
||||
#include "hilog_tag_wrapper.h"
|
||||
#include "hilog_wrapper.h"
|
||||
#include "hitrace_meter.h"
|
||||
|
||||
@@ -28,9 +29,9 @@ void Extension::Init(const std::shared_ptr<AppExecFwk::AbilityLocalRecord> &reco
|
||||
std::shared_ptr<AppExecFwk::AbilityHandler> &handler,
|
||||
const sptr<IRemoteObject> &token)
|
||||
{
|
||||
HILOG_DEBUG("called");
|
||||
TAG_LOGD(AAFwkTag::EXT, "called");
|
||||
if ((record == nullptr) || (application == nullptr) || (handler == nullptr) || (token == nullptr)) {
|
||||
HILOG_ERROR("Extension::init failed, some object is nullptr");
|
||||
TAG_LOGE(AAFwkTag::EXT, "Extension::init failed, some object is nullptr");
|
||||
return;
|
||||
}
|
||||
abilityInfo_ = record->GetAbilityInfo();
|
||||
@@ -41,7 +42,7 @@ void Extension::Init(const std::shared_ptr<AppExecFwk::AbilityLocalRecord> &reco
|
||||
void Extension::OnStart(const AAFwk::Want &want)
|
||||
{
|
||||
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
|
||||
HILOG_DEBUG("extension:%{public}s.", abilityInfo_->name.c_str());
|
||||
TAG_LOGD(AAFwkTag::EXT, "extension:%{public}s.", abilityInfo_->name.c_str());
|
||||
SetLaunchWant(want);
|
||||
SetLastRequestWant(want);
|
||||
}
|
||||
@@ -49,14 +50,14 @@ void Extension::OnStart(const AAFwk::Want &want)
|
||||
void Extension::OnStart(const AAFwk::Want &want, sptr<AAFwk::SessionInfo> sessionInfo)
|
||||
{
|
||||
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
|
||||
HILOG_DEBUG("extension:%{public}s.", abilityInfo_->name.c_str());
|
||||
TAG_LOGD(AAFwkTag::EXT, "extension:%{public}s.", abilityInfo_->name.c_str());
|
||||
SetLaunchWant(want);
|
||||
SetLastRequestWant(want);
|
||||
}
|
||||
|
||||
void Extension::OnStop()
|
||||
{
|
||||
HILOG_DEBUG("extension:%{public}s.", abilityInfo_->name.c_str());
|
||||
TAG_LOGD(AAFwkTag::EXT, "extension:%{public}s.", abilityInfo_->name.c_str());
|
||||
}
|
||||
|
||||
void Extension::OnStop(AppExecFwk::AbilityTransactionCallbackInfo<> *callbackInfo, bool &isAsyncCallback)
|
||||
@@ -72,7 +73,7 @@ void Extension::OnStopCallBack()
|
||||
sptr<IRemoteObject> Extension::OnConnect(const AAFwk::Want &want)
|
||||
{
|
||||
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
|
||||
HILOG_DEBUG("extension:%{public}s.", abilityInfo_->name.c_str());
|
||||
TAG_LOGD(AAFwkTag::EXT, "extension:%{public}s.", abilityInfo_->name.c_str());
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
@@ -86,7 +87,7 @@ sptr<IRemoteObject> Extension::OnConnect(const AAFwk::Want &want,
|
||||
void Extension::OnDisconnect(const AAFwk::Want &want)
|
||||
{
|
||||
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
|
||||
HILOG_DEBUG("extension:%{public}s.", abilityInfo_->name.c_str());
|
||||
TAG_LOGD(AAFwkTag::EXT, "extension:%{public}s.", abilityInfo_->name.c_str());
|
||||
}
|
||||
|
||||
void Extension::OnDisconnect(const AAFwk::Want &want, AppExecFwk::AbilityTransactionCallbackInfo<> *callbackInfo,
|
||||
@@ -98,7 +99,7 @@ void Extension::OnDisconnect(const AAFwk::Want &want, AppExecFwk::AbilityTransac
|
||||
|
||||
void Extension::OnCommand(const AAFwk::Want &want, bool restart, int startId)
|
||||
{
|
||||
HILOG_DEBUG("restart=%{public}s,startId=%{public}d.",
|
||||
TAG_LOGD(AAFwkTag::EXT, "restart=%{public}s,startId=%{public}d.",
|
||||
restart ? "true" : "false",
|
||||
startId);
|
||||
SetLastRequestWant(want);
|
||||
@@ -107,19 +108,19 @@ void Extension::OnCommand(const AAFwk::Want &want, bool restart, int startId)
|
||||
void Extension::OnCommandWindow(const AAFwk::Want &want, const sptr<AAFwk::SessionInfo> &sessionInfo,
|
||||
AAFwk::WindowCommand winCmd)
|
||||
{
|
||||
HILOG_DEBUG("call");
|
||||
TAG_LOGD(AAFwkTag::EXT, "call");
|
||||
}
|
||||
|
||||
void Extension::OnForeground(const AAFwk::Want &want, sptr<AAFwk::SessionInfo> sessionInfo)
|
||||
{
|
||||
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
|
||||
HILOG_DEBUG("extension:%{public}s.", abilityInfo_->name.c_str());
|
||||
TAG_LOGD(AAFwkTag::EXT, "extension:%{public}s.", abilityInfo_->name.c_str());
|
||||
}
|
||||
|
||||
void Extension::OnBackground()
|
||||
{
|
||||
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
|
||||
HILOG_DEBUG("extension:%{public}s.", abilityInfo_->name.c_str());
|
||||
TAG_LOGD(AAFwkTag::EXT, "extension:%{public}s.", abilityInfo_->name.c_str());
|
||||
}
|
||||
|
||||
void Extension::SetLaunchWant(const AAFwk::Want &want)
|
||||
@@ -149,17 +150,17 @@ std::shared_ptr<CallingInfo> Extension::GetCallingInfo()
|
||||
|
||||
void Extension::OnConfigurationUpdated(const AppExecFwk::Configuration &configuration)
|
||||
{
|
||||
HILOG_DEBUG("call");
|
||||
TAG_LOGD(AAFwkTag::EXT, "call");
|
||||
}
|
||||
|
||||
void Extension::OnMemoryLevel(int level)
|
||||
{
|
||||
HILOG_DEBUG("call");
|
||||
TAG_LOGD(AAFwkTag::EXT, "call");
|
||||
}
|
||||
|
||||
void Extension::Dump(const std::vector<std::string> ¶ms, std::vector<std::string> &info)
|
||||
{
|
||||
HILOG_DEBUG("call");
|
||||
TAG_LOGD(AAFwkTag::EXT, "call");
|
||||
}
|
||||
|
||||
void Extension::SetExtensionWindowLifeCycleListener(const sptr<Rosen::IWindowLifeCycle> &listener)
|
||||
@@ -169,29 +170,29 @@ void Extension::SetExtensionWindowLifeCycleListener(const sptr<Rosen::IWindowLif
|
||||
|
||||
void Extension::OnAbilityResult(int requestCode, int resultCode, const Want &want)
|
||||
{
|
||||
HILOG_DEBUG("call.");
|
||||
TAG_LOGD(AAFwkTag::EXT, "call.");
|
||||
}
|
||||
|
||||
void Extension::OnCommandWindowDone(const sptr<AAFwk::SessionInfo> &sessionInfo, AAFwk::WindowCommand winCmd)
|
||||
{
|
||||
HILOG_DEBUG("call.");
|
||||
TAG_LOGD(AAFwkTag::EXT, "call.");
|
||||
}
|
||||
|
||||
void Extension::OnInsightIntentExecuteDone(const sptr<AAFwk::SessionInfo> &sessionInfo,
|
||||
const AppExecFwk::InsightIntentExecuteResult &result)
|
||||
{
|
||||
HILOG_DEBUG("call.");
|
||||
TAG_LOGD(AAFwkTag::EXT, "call.");
|
||||
}
|
||||
|
||||
bool Extension::HandleInsightIntent(const AAFwk::Want &want)
|
||||
{
|
||||
HILOG_DEBUG("call.");
|
||||
TAG_LOGD(AAFwkTag::EXT, "call.");
|
||||
return true;
|
||||
}
|
||||
|
||||
bool Extension::OnInsightIntentExecuteDone(uint64_t intentId, const AppExecFwk::InsightIntentExecuteResult &result)
|
||||
{
|
||||
HILOG_DEBUG("call.");
|
||||
TAG_LOGD(AAFwkTag::EXT, "call.");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
#include "ability_handler.h"
|
||||
#include "ability_loader.h"
|
||||
#include "ability_manager_client.h"
|
||||
#include "hilog_tag_wrapper.h"
|
||||
#include "hilog_wrapper.h"
|
||||
#include "hitrace_meter.h"
|
||||
#include "ui_extension_utils.h"
|
||||
@@ -75,24 +76,24 @@ std::string ExtensionAbilityThread::CreateAbilityName(
|
||||
{
|
||||
std::string abilityName;
|
||||
if (abilityRecord == nullptr || application == nullptr) {
|
||||
HILOG_ERROR("AbilityRecord or application is nullptr.");
|
||||
TAG_LOGE(AAFwkTag::EXT, "AbilityRecord or application is nullptr.");
|
||||
return abilityName;
|
||||
}
|
||||
|
||||
std::shared_ptr<AppExecFwk::AbilityInfo> abilityInfo = abilityRecord->GetAbilityInfo();
|
||||
if (abilityInfo == nullptr) {
|
||||
HILOG_ERROR("AbilityInfo is nullptr.");
|
||||
TAG_LOGE(AAFwkTag::EXT, "AbilityInfo is nullptr.");
|
||||
return abilityName;
|
||||
}
|
||||
|
||||
if (abilityInfo->isNativeAbility || abilityInfo->type != AppExecFwk::AbilityType::EXTENSION) {
|
||||
HILOG_DEBUG("Ability info name is %{public}s", abilityInfo->name.c_str());
|
||||
TAG_LOGD(AAFwkTag::EXT, "Ability info name is %{public}s", abilityInfo->name.c_str());
|
||||
return abilityInfo->name;
|
||||
}
|
||||
|
||||
application->GetExtensionNameByType(static_cast<int32_t>(abilityInfo->extensionAbilityType), abilityName);
|
||||
if (!abilityName.empty()) {
|
||||
HILOG_DEBUG("Get extension name: %{public}s success.", abilityName.c_str());
|
||||
TAG_LOGD(AAFwkTag::EXT, "Get extension name: %{public}s success.", abilityName.c_str());
|
||||
return abilityName;
|
||||
}
|
||||
|
||||
@@ -111,7 +112,7 @@ std::string ExtensionAbilityThread::CreateAbilityName(
|
||||
}
|
||||
}
|
||||
CreateExtensionAbilityName(abilityInfo, abilityName);
|
||||
HILOG_DEBUG("Ability name is %{public}s.", abilityName.c_str());
|
||||
TAG_LOGD(AAFwkTag::EXT, "Ability name is %{public}s.", abilityName.c_str());
|
||||
return abilityName;
|
||||
}
|
||||
|
||||
@@ -169,13 +170,13 @@ void ExtensionAbilityThread::Attach(const std::shared_ptr<AppExecFwk::OHOSApplic
|
||||
[[maybe_unused]] const std::shared_ptr<Context> &appContext)
|
||||
{
|
||||
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
|
||||
HILOG_DEBUG("Begin.");
|
||||
TAG_LOGD(AAFwkTag::EXT, "Begin.");
|
||||
if (application == nullptr || abilityRecord == nullptr || mainRunner == nullptr) {
|
||||
HILOG_ERROR("application or abilityRecord or mainRunner is nullptr.");
|
||||
TAG_LOGE(AAFwkTag::EXT, "application or abilityRecord or mainRunner is nullptr.");
|
||||
return;
|
||||
}
|
||||
HandleAttach(application, abilityRecord, mainRunner);
|
||||
HILOG_DEBUG("End.");
|
||||
TAG_LOGD(AAFwkTag::EXT, "End.");
|
||||
}
|
||||
|
||||
void ExtensionAbilityThread::Attach(const std::shared_ptr<AppExecFwk::OHOSApplication> &application,
|
||||
@@ -183,13 +184,13 @@ void ExtensionAbilityThread::Attach(const std::shared_ptr<AppExecFwk::OHOSApplic
|
||||
[[maybe_unused]] const std::shared_ptr<Context> &appContext)
|
||||
{
|
||||
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
|
||||
HILOG_DEBUG("Begin.");
|
||||
TAG_LOGD(AAFwkTag::EXT, "Begin.");
|
||||
if ((application == nullptr) || (abilityRecord == nullptr)) {
|
||||
HILOG_ERROR("application or abilityRecord is nullptr.");
|
||||
TAG_LOGE(AAFwkTag::EXT, "application or abilityRecord is nullptr.");
|
||||
return;
|
||||
}
|
||||
HandleAttach(application, abilityRecord, nullptr);
|
||||
HILOG_DEBUG("End.");
|
||||
TAG_LOGD(AAFwkTag::EXT, "End.");
|
||||
}
|
||||
|
||||
void ExtensionAbilityThread::HandleAttach(const std::shared_ptr<AppExecFwk::OHOSApplication> &application,
|
||||
@@ -197,33 +198,33 @@ void ExtensionAbilityThread::HandleAttach(const std::shared_ptr<AppExecFwk::OHOS
|
||||
const std::shared_ptr<AppExecFwk::EventRunner> &mainRunner)
|
||||
{
|
||||
if (application == nullptr || abilityRecord == nullptr) {
|
||||
HILOG_ERROR("Application or abilityRecord is nullptr.");
|
||||
TAG_LOGE(AAFwkTag::EXT, "Application or abilityRecord is nullptr.");
|
||||
return;
|
||||
}
|
||||
|
||||
// 1.new AbilityHandler
|
||||
std::string abilityName = CreateAbilityName(abilityRecord, application);
|
||||
if (abilityName.empty()) {
|
||||
HILOG_ERROR("AbilityName is empty.");
|
||||
TAG_LOGE(AAFwkTag::EXT, "AbilityName is empty.");
|
||||
return;
|
||||
}
|
||||
|
||||
HILOG_DEBUG("Begin, extension: %{public}s.", abilityName.c_str());
|
||||
TAG_LOGD(AAFwkTag::EXT, "Begin, extension: %{public}s.", abilityName.c_str());
|
||||
if (mainRunner == nullptr) {
|
||||
runner_ = AppExecFwk::EventRunner::Create(abilityName);
|
||||
if (runner_ == nullptr) {
|
||||
HILOG_ERROR("runner_ is nullptr.");
|
||||
TAG_LOGE(AAFwkTag::EXT, "runner_ is nullptr.");
|
||||
return;
|
||||
}
|
||||
abilityHandler_ = std::make_shared<AppExecFwk::AbilityHandler>(runner_);
|
||||
if (abilityHandler_ == nullptr) {
|
||||
HILOG_ERROR("abilityHandler_ is nullptr.");
|
||||
TAG_LOGE(AAFwkTag::EXT, "abilityHandler_ is nullptr.");
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
abilityHandler_ = std::make_shared<AppExecFwk::AbilityHandler>(mainRunner);
|
||||
if (abilityHandler_ == nullptr) {
|
||||
HILOG_ERROR("abilityHandler_ is nullptr.");
|
||||
TAG_LOGE(AAFwkTag::EXT, "abilityHandler_ is nullptr.");
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -231,7 +232,7 @@ void ExtensionAbilityThread::HandleAttach(const std::shared_ptr<AppExecFwk::OHOS
|
||||
// 2.new ability
|
||||
auto extension = AppExecFwk::AbilityLoader::GetInstance().GetExtensionByName(abilityName);
|
||||
if (extension == nullptr) {
|
||||
HILOG_ERROR("Extension is nullptr.");
|
||||
TAG_LOGE(AAFwkTag::EXT, "Extension is nullptr.");
|
||||
return;
|
||||
}
|
||||
currentExtension_.reset(extension);
|
||||
@@ -247,7 +248,7 @@ void ExtensionAbilityThread::HandleAttachInner(const std::shared_ptr<AppExecFwk:
|
||||
{
|
||||
extensionImpl_ = std::make_shared<ExtensionImpl>();
|
||||
if (extensionImpl_ == nullptr) {
|
||||
HILOG_ERROR("extensionImpl_ is nullptr");
|
||||
TAG_LOGE(AAFwkTag::EXT, "extensionImpl_ is nullptr");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -256,7 +257,7 @@ void ExtensionAbilityThread::HandleAttachInner(const std::shared_ptr<AppExecFwk:
|
||||
// 4.ipc attach init
|
||||
ErrCode err = AbilityManagerClient::GetInstance()->AttachAbilityThread(this, token_);
|
||||
if (err != ERR_OK) {
|
||||
HILOG_ERROR("Attach failed err is %{public}d", err);
|
||||
TAG_LOGE(AAFwkTag::EXT, "Attach failed err is %{public}d", err);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -264,21 +265,21 @@ void ExtensionAbilityThread::HandleExtensionTransaction(
|
||||
const Want &want, const LifeCycleStateInfo &lifeCycleStateInfo, sptr<AAFwk::SessionInfo> sessionInfo)
|
||||
{
|
||||
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
|
||||
HILOG_DEBUG("Begin.");
|
||||
TAG_LOGD(AAFwkTag::EXT, "Begin.");
|
||||
if (extensionImpl_ == nullptr) {
|
||||
HILOG_ERROR("extensionImpl_ is nullptr.");
|
||||
TAG_LOGE(AAFwkTag::EXT, "extensionImpl_ is nullptr.");
|
||||
return;
|
||||
}
|
||||
extensionImpl_->HandleExtensionTransaction(want, lifeCycleStateInfo, sessionInfo);
|
||||
HILOG_DEBUG("End.");
|
||||
TAG_LOGD(AAFwkTag::EXT, "End.");
|
||||
}
|
||||
|
||||
void ExtensionAbilityThread::HandleConnectExtension(const Want &want)
|
||||
{
|
||||
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
|
||||
HILOG_DEBUG("Begin.");
|
||||
TAG_LOGD(AAFwkTag::EXT, "Begin.");
|
||||
if (extensionImpl_ == nullptr) {
|
||||
HILOG_ERROR("extensionImpl_ is nullptr.");
|
||||
TAG_LOGE(AAFwkTag::EXT, "extensionImpl_ is nullptr.");
|
||||
return;
|
||||
}
|
||||
bool isAsyncCallback = false;
|
||||
@@ -286,15 +287,15 @@ void ExtensionAbilityThread::HandleConnectExtension(const Want &want)
|
||||
if (!isAsyncCallback) {
|
||||
extensionImpl_->ConnectExtensionCallback(service);
|
||||
}
|
||||
HILOG_DEBUG("End.");
|
||||
TAG_LOGD(AAFwkTag::EXT, "End.");
|
||||
}
|
||||
|
||||
void ExtensionAbilityThread::HandleDisconnectExtension(const Want &want)
|
||||
{
|
||||
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
|
||||
HILOG_DEBUG("Begin.");
|
||||
TAG_LOGD(AAFwkTag::EXT, "Begin.");
|
||||
if (extensionImpl_ == nullptr) {
|
||||
HILOG_ERROR("extensionImpl_ is nullptr.");
|
||||
TAG_LOGE(AAFwkTag::EXT, "extensionImpl_ is nullptr.");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -303,174 +304,174 @@ void ExtensionAbilityThread::HandleDisconnectExtension(const Want &want)
|
||||
if (!isAsyncCallback) {
|
||||
extensionImpl_->DisconnectExtensionCallback();
|
||||
}
|
||||
HILOG_DEBUG("End.");
|
||||
TAG_LOGD(AAFwkTag::EXT, "End.");
|
||||
}
|
||||
|
||||
void ExtensionAbilityThread::HandleCommandExtension(const Want &want, bool restart, int32_t startId)
|
||||
{
|
||||
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
|
||||
HILOG_DEBUG("Begin.");
|
||||
TAG_LOGD(AAFwkTag::EXT, "Begin.");
|
||||
if (extensionImpl_ == nullptr) {
|
||||
HILOG_ERROR("extensionImpl_ is nullptr.");
|
||||
TAG_LOGE(AAFwkTag::EXT, "extensionImpl_ is nullptr.");
|
||||
return;
|
||||
}
|
||||
extensionImpl_->CommandExtension(want, restart, startId);
|
||||
ErrCode err = AbilityManagerClient::GetInstance()->ScheduleCommandAbilityDone(token_);
|
||||
if (err != ERR_OK) {
|
||||
HILOG_ERROR("Failed err is %{public}d.", err);
|
||||
TAG_LOGE(AAFwkTag::EXT, "Failed err is %{public}d.", err);
|
||||
}
|
||||
HILOG_DEBUG("End.");
|
||||
TAG_LOGD(AAFwkTag::EXT, "End.");
|
||||
}
|
||||
|
||||
void ExtensionAbilityThread::HandleInsightIntent(const Want &want)
|
||||
{
|
||||
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
|
||||
HILOG_DEBUG("Begin.");
|
||||
TAG_LOGD(AAFwkTag::EXT, "Begin.");
|
||||
if (extensionImpl_ == nullptr) {
|
||||
HILOG_ERROR("extensionImpl_ is nullptr.");
|
||||
TAG_LOGE(AAFwkTag::EXT, "extensionImpl_ is nullptr.");
|
||||
return;
|
||||
}
|
||||
auto ret = extensionImpl_->HandleInsightIntent(want);
|
||||
if (!ret) {
|
||||
HILOG_ERROR("extensionImpl_ HandleInsightIntent failed.");
|
||||
TAG_LOGE(AAFwkTag::EXT, "extensionImpl_ HandleInsightIntent failed.");
|
||||
return;
|
||||
}
|
||||
HILOG_DEBUG("End.");
|
||||
TAG_LOGD(AAFwkTag::EXT, "End.");
|
||||
}
|
||||
|
||||
void ExtensionAbilityThread::HandleCommandExtensionWindow(
|
||||
const Want &want, const sptr<AAFwk::SessionInfo> &sessionInfo, AAFwk::WindowCommand winCmd)
|
||||
{
|
||||
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
|
||||
HILOG_DEBUG("Begin.");
|
||||
TAG_LOGD(AAFwkTag::EXT, "Begin.");
|
||||
if (extensionImpl_ == nullptr) {
|
||||
HILOG_ERROR("extensionImpl_ is nullptr.");
|
||||
TAG_LOGE(AAFwkTag::EXT, "extensionImpl_ is nullptr.");
|
||||
return;
|
||||
}
|
||||
extensionImpl_->CommandExtensionWindow(want, sessionInfo, winCmd);
|
||||
HILOG_DEBUG("End.");
|
||||
TAG_LOGD(AAFwkTag::EXT, "End.");
|
||||
}
|
||||
|
||||
void ExtensionAbilityThread::ScheduleUpdateConfiguration(const AppExecFwk::Configuration &config)
|
||||
{
|
||||
HILOG_DEBUG("Begin.");
|
||||
TAG_LOGD(AAFwkTag::EXT, "Begin.");
|
||||
if (abilityHandler_ == nullptr) {
|
||||
HILOG_ERROR("abilityHandler_ is nullptr.");
|
||||
TAG_LOGE(AAFwkTag::EXT, "abilityHandler_ is nullptr.");
|
||||
return;
|
||||
}
|
||||
wptr<ExtensionAbilityThread> weak = this;
|
||||
auto task = [weak, config]() {
|
||||
auto abilityThread = weak.promote();
|
||||
if (abilityThread == nullptr) {
|
||||
HILOG_ERROR("Ability thread is nullptr.");
|
||||
TAG_LOGE(AAFwkTag::EXT, "Ability thread is nullptr.");
|
||||
return;
|
||||
}
|
||||
abilityThread->HandleExtensionUpdateConfiguration(config);
|
||||
};
|
||||
bool ret = abilityHandler_->PostTask(task);
|
||||
if (!ret) {
|
||||
HILOG_ERROR("PostTask error");
|
||||
TAG_LOGE(AAFwkTag::EXT, "PostTask error");
|
||||
}
|
||||
HILOG_DEBUG("End.");
|
||||
TAG_LOGD(AAFwkTag::EXT, "End.");
|
||||
}
|
||||
|
||||
void ExtensionAbilityThread::HandleExtensionUpdateConfiguration(const AppExecFwk::Configuration &config)
|
||||
{
|
||||
HILOG_DEBUG("Begin.");
|
||||
TAG_LOGD(AAFwkTag::EXT, "Begin.");
|
||||
if (extensionImpl_ == nullptr) {
|
||||
HILOG_ERROR("extensionImpl_ is nullptr.");
|
||||
TAG_LOGE(AAFwkTag::EXT, "extensionImpl_ is nullptr.");
|
||||
return;
|
||||
}
|
||||
extensionImpl_->ScheduleUpdateConfiguration(config);
|
||||
HILOG_DEBUG("End.");
|
||||
TAG_LOGD(AAFwkTag::EXT, "End.");
|
||||
}
|
||||
|
||||
void ExtensionAbilityThread::ScheduleAbilityTransaction(
|
||||
const Want &want, const LifeCycleStateInfo &lifeCycleStateInfo, sptr<AAFwk::SessionInfo> sessionInfo)
|
||||
{
|
||||
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
|
||||
HILOG_DEBUG("Name is %{public}s, targeState is %{public}d, isNewWant is %{public}d",
|
||||
TAG_LOGD(AAFwkTag::EXT, "Name is %{public}s, targeState is %{public}d, isNewWant is %{public}d",
|
||||
want.GetElement().GetAbilityName().c_str(), lifeCycleStateInfo.state, lifeCycleStateInfo.isNewWant);
|
||||
if (token_ == nullptr) {
|
||||
HILOG_ERROR("token_ is nullptr.");
|
||||
TAG_LOGE(AAFwkTag::EXT, "token_ is nullptr.");
|
||||
return;
|
||||
}
|
||||
if (abilityHandler_ == nullptr) {
|
||||
HILOG_ERROR("abilityHandler_ is nullptr.");
|
||||
TAG_LOGE(AAFwkTag::EXT, "abilityHandler_ is nullptr.");
|
||||
return;
|
||||
}
|
||||
wptr<ExtensionAbilityThread> weak = this;
|
||||
auto task = [weak, want, lifeCycleStateInfo, sessionInfo]() {
|
||||
auto abilityThread = weak.promote();
|
||||
if (abilityThread == nullptr) {
|
||||
HILOG_ERROR("Ability thread is nullptr.");
|
||||
TAG_LOGE(AAFwkTag::EXT, "Ability thread is nullptr.");
|
||||
return;
|
||||
}
|
||||
abilityThread->HandleExtensionTransaction(want, lifeCycleStateInfo, sessionInfo);
|
||||
};
|
||||
bool ret = abilityHandler_->PostTask(task);
|
||||
if (!ret) {
|
||||
HILOG_ERROR("PostTask error.");
|
||||
TAG_LOGE(AAFwkTag::EXT, "PostTask error.");
|
||||
}
|
||||
}
|
||||
|
||||
void ExtensionAbilityThread::ScheduleConnectAbility(const Want &want)
|
||||
{
|
||||
HILOG_DEBUG("Called.");
|
||||
TAG_LOGD(AAFwkTag::EXT, "Called.");
|
||||
if (abilityHandler_ == nullptr) {
|
||||
HILOG_ERROR("abilityHandler_ is nullptr.");
|
||||
TAG_LOGE(AAFwkTag::EXT, "abilityHandler_ is nullptr.");
|
||||
return;
|
||||
}
|
||||
wptr<ExtensionAbilityThread> weak = this;
|
||||
auto task = [weak, want]() {
|
||||
auto abilityThread = weak.promote();
|
||||
if (abilityThread == nullptr) {
|
||||
HILOG_ERROR("AbilityThread is nullptr.");
|
||||
TAG_LOGE(AAFwkTag::EXT, "AbilityThread is nullptr.");
|
||||
return;
|
||||
}
|
||||
abilityThread->HandleConnectExtension(want);
|
||||
};
|
||||
bool ret = abilityHandler_->PostTask(task);
|
||||
if (!ret) {
|
||||
HILOG_ERROR("PostTask error.");
|
||||
TAG_LOGE(AAFwkTag::EXT, "PostTask error.");
|
||||
}
|
||||
}
|
||||
|
||||
void ExtensionAbilityThread::ScheduleDisconnectAbility(const Want &want)
|
||||
{
|
||||
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
|
||||
HILOG_DEBUG("Called.");
|
||||
TAG_LOGD(AAFwkTag::EXT, "Called.");
|
||||
if (abilityHandler_ == nullptr) {
|
||||
HILOG_ERROR("abilityHandler_ is nullptr.");
|
||||
TAG_LOGE(AAFwkTag::EXT, "abilityHandler_ is nullptr.");
|
||||
return;
|
||||
}
|
||||
wptr<ExtensionAbilityThread> weak = this;
|
||||
auto task = [weak, want]() {
|
||||
auto abilityThread = weak.promote();
|
||||
if (abilityThread == nullptr) {
|
||||
HILOG_ERROR("AbilityThread is nullptr.");
|
||||
TAG_LOGE(AAFwkTag::EXT, "AbilityThread is nullptr.");
|
||||
return;
|
||||
}
|
||||
abilityThread->HandleDisconnectExtension(want);
|
||||
};
|
||||
bool ret = abilityHandler_->PostTask(task);
|
||||
if (!ret) {
|
||||
HILOG_ERROR("PostTask error.");
|
||||
TAG_LOGE(AAFwkTag::EXT, "PostTask error.");
|
||||
}
|
||||
}
|
||||
|
||||
void ExtensionAbilityThread::ScheduleCommandAbility(const Want &want, bool restart, int32_t startId)
|
||||
{
|
||||
HILOG_DEBUG("Begin startId: %{public}d", startId);
|
||||
TAG_LOGD(AAFwkTag::EXT, "Begin startId: %{public}d", startId);
|
||||
if (abilityHandler_ == nullptr) {
|
||||
HILOG_ERROR("abilityHandler_ is nullptr.");
|
||||
TAG_LOGE(AAFwkTag::EXT, "abilityHandler_ is nullptr.");
|
||||
return;
|
||||
}
|
||||
ScheduleCommandAbilityInner(want, restart, startId);
|
||||
if (AppExecFwk::InsightIntentExecuteParam::IsInsightIntentExecute(want)) {
|
||||
ScheduleInsightIntentInner(want);
|
||||
}
|
||||
HILOG_DEBUG("End.");
|
||||
TAG_LOGD(AAFwkTag::EXT, "End.");
|
||||
}
|
||||
|
||||
void ExtensionAbilityThread::ScheduleCommandAbilityInner(const Want &want, bool restart, int32_t startId)
|
||||
@@ -479,14 +480,14 @@ void ExtensionAbilityThread::ScheduleCommandAbilityInner(const Want &want, bool
|
||||
auto task = [weak, want, restart, startId]() {
|
||||
auto abilityThread = weak.promote();
|
||||
if (abilityThread == nullptr) {
|
||||
HILOG_ERROR("AbilityThread is nullptr.");
|
||||
TAG_LOGE(AAFwkTag::EXT, "AbilityThread is nullptr.");
|
||||
return;
|
||||
}
|
||||
abilityThread->HandleCommandExtension(want, restart, startId);
|
||||
};
|
||||
bool ret = abilityHandler_->PostTask(task);
|
||||
if (!ret) {
|
||||
HILOG_ERROR("PostTask error.");
|
||||
TAG_LOGE(AAFwkTag::EXT, "PostTask error.");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -496,46 +497,46 @@ void ExtensionAbilityThread::ScheduleInsightIntentInner(const Want &want)
|
||||
auto task = [weak, want]() {
|
||||
auto abilityThread = weak.promote();
|
||||
if (abilityThread == nullptr) {
|
||||
HILOG_ERROR("AbilityThread is nullptr.");
|
||||
TAG_LOGE(AAFwkTag::EXT, "AbilityThread is nullptr.");
|
||||
return;
|
||||
}
|
||||
abilityThread->HandleInsightIntent(want);
|
||||
};
|
||||
bool ret = abilityHandler_->PostTask(task);
|
||||
if (!ret) {
|
||||
HILOG_ERROR("PostTask error.");
|
||||
TAG_LOGE(AAFwkTag::EXT, "PostTask error.");
|
||||
}
|
||||
}
|
||||
|
||||
void ExtensionAbilityThread::ScheduleCommandAbilityWindow(
|
||||
const Want &want, const sptr<AAFwk::SessionInfo> &sessionInfo, AAFwk::WindowCommand winCmd)
|
||||
{
|
||||
HILOG_DEBUG("Begin, winCmd: %{public}d.", winCmd);
|
||||
TAG_LOGD(AAFwkTag::EXT, "Begin, winCmd: %{public}d.", winCmd);
|
||||
if (abilityHandler_ == nullptr) {
|
||||
HILOG_ERROR("abilityHandler_ is nullptr.");
|
||||
TAG_LOGE(AAFwkTag::EXT, "abilityHandler_ is nullptr.");
|
||||
return;
|
||||
}
|
||||
wptr<ExtensionAbilityThread> weak = this;
|
||||
auto task = [weak, want, sessionInfo, winCmd]() {
|
||||
auto abilityThread = weak.promote();
|
||||
if (abilityThread == nullptr) {
|
||||
HILOG_ERROR("AbilityThread is nullptr.");
|
||||
TAG_LOGE(AAFwkTag::EXT, "AbilityThread is nullptr.");
|
||||
return;
|
||||
}
|
||||
abilityThread->HandleCommandExtensionWindow(want, sessionInfo, winCmd);
|
||||
};
|
||||
bool ret = abilityHandler_->PostTask(task);
|
||||
if (!ret) {
|
||||
HILOG_ERROR("PostTask error.");
|
||||
TAG_LOGE(AAFwkTag::EXT, "PostTask error.");
|
||||
}
|
||||
HILOG_DEBUG("End.");
|
||||
TAG_LOGD(AAFwkTag::EXT, "End.");
|
||||
}
|
||||
|
||||
void ExtensionAbilityThread::SendResult(int requestCode, int resultCode, const Want &want)
|
||||
{
|
||||
HILOG_DEBUG("Begin.");
|
||||
TAG_LOGD(AAFwkTag::EXT, "Begin.");
|
||||
if (abilityHandler_ == nullptr || requestCode == -1) {
|
||||
HILOG_ERROR("abilityHandler_ is nullptr or requestCode is -1.");
|
||||
TAG_LOGE(AAFwkTag::EXT, "abilityHandler_ is nullptr or requestCode is -1.");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -543,28 +544,28 @@ void ExtensionAbilityThread::SendResult(int requestCode, int resultCode, const W
|
||||
auto task = [weak, requestCode, resultCode, want]() {
|
||||
auto abilityThread = weak.promote();
|
||||
if (abilityThread == nullptr) {
|
||||
HILOG_ERROR("AbilityThread is nullptr.");
|
||||
TAG_LOGE(AAFwkTag::EXT, "AbilityThread is nullptr.");
|
||||
return;
|
||||
}
|
||||
|
||||
if (abilityThread->extensionImpl_ == nullptr) {
|
||||
HILOG_ERROR("ExtensionImpl is nullptr.");
|
||||
TAG_LOGE(AAFwkTag::EXT, "ExtensionImpl is nullptr.");
|
||||
return;
|
||||
}
|
||||
abilityThread->extensionImpl_->SendResult(requestCode, resultCode, want);
|
||||
};
|
||||
bool ret = abilityHandler_->PostTask(task);
|
||||
if (!ret) {
|
||||
HILOG_ERROR("PostTask error.");
|
||||
TAG_LOGE(AAFwkTag::EXT, "PostTask error.");
|
||||
}
|
||||
HILOG_DEBUG("End.");
|
||||
TAG_LOGD(AAFwkTag::EXT, "End.");
|
||||
}
|
||||
|
||||
void ExtensionAbilityThread::NotifyMemoryLevel(int32_t level)
|
||||
{
|
||||
HILOG_DEBUG("called, result: %{public}d.", level);
|
||||
TAG_LOGD(AAFwkTag::EXT, "called, result: %{public}d.", level);
|
||||
if (extensionImpl_ == nullptr) {
|
||||
HILOG_ERROR("extensionImpl_ is nullptr.");
|
||||
TAG_LOGE(AAFwkTag::EXT, "extensionImpl_ is nullptr.");
|
||||
return;
|
||||
}
|
||||
extensionImpl_->NotifyMemoryLevel(level);
|
||||
@@ -572,38 +573,38 @@ void ExtensionAbilityThread::NotifyMemoryLevel(int32_t level)
|
||||
|
||||
void ExtensionAbilityThread::DumpAbilityInfo(const std::vector<std::string> ¶ms, std::vector<std::string> &info)
|
||||
{
|
||||
HILOG_DEBUG("Begin.");
|
||||
TAG_LOGD(AAFwkTag::EXT, "Begin.");
|
||||
if (token_ == nullptr || abilityHandler_ == nullptr) {
|
||||
HILOG_ERROR("token_ or abilityHandler_ is nullptr.");
|
||||
TAG_LOGE(AAFwkTag::EXT, "token_ or abilityHandler_ is nullptr.");
|
||||
return;
|
||||
}
|
||||
wptr<ExtensionAbilityThread> weak = this;
|
||||
auto task = [weak, params, token = token_]() {
|
||||
auto abilityThread = weak.promote();
|
||||
if (abilityThread == nullptr) {
|
||||
HILOG_ERROR("AbilityThread is nullptr.");
|
||||
TAG_LOGE(AAFwkTag::EXT, "AbilityThread is nullptr.");
|
||||
return;
|
||||
}
|
||||
std::vector<std::string> dumpInfo;
|
||||
abilityThread->DumpAbilityInfoInner(params, dumpInfo);
|
||||
ErrCode err = AbilityManagerClient::GetInstance()->DumpAbilityInfoDone(dumpInfo, token);
|
||||
if (err != ERR_OK) {
|
||||
HILOG_ERROR("Dump ability info failed err is %{public}d.", err);
|
||||
TAG_LOGE(AAFwkTag::EXT, "Dump ability info failed err is %{public}d.", err);
|
||||
}
|
||||
};
|
||||
bool ret = abilityHandler_->PostTask(task);
|
||||
if (!ret) {
|
||||
HILOG_ERROR("PostTask error.");
|
||||
TAG_LOGE(AAFwkTag::EXT, "PostTask error.");
|
||||
}
|
||||
HILOG_DEBUG("End.");
|
||||
TAG_LOGD(AAFwkTag::EXT, "End.");
|
||||
}
|
||||
|
||||
void ExtensionAbilityThread::DumpAbilityInfoInner(
|
||||
const std::vector<std::string> ¶ms, std::vector<std::string> &info)
|
||||
{
|
||||
HILOG_DEBUG("Begin.");
|
||||
TAG_LOGD(AAFwkTag::EXT, "Begin.");
|
||||
if (currentExtension_ == nullptr) {
|
||||
HILOG_DEBUG("currentExtension_ is nullptr.");
|
||||
TAG_LOGD(AAFwkTag::EXT, "currentExtension_ is nullptr.");
|
||||
return;
|
||||
}
|
||||
currentExtension_->Dump(params, info);
|
||||
@@ -616,7 +617,7 @@ void ExtensionAbilityThread::DumpAbilityInfoInner(
|
||||
#else
|
||||
DumpOtherInfo(info);
|
||||
#endif
|
||||
HILOG_DEBUG("End.");
|
||||
TAG_LOGD(AAFwkTag::EXT, "End.");
|
||||
}
|
||||
|
||||
void ExtensionAbilityThread::DumpOtherInfo(std::vector<std::string> &info)
|
||||
@@ -624,12 +625,12 @@ void ExtensionAbilityThread::DumpOtherInfo(std::vector<std::string> &info)
|
||||
std::string dumpInfo = " event:";
|
||||
info.push_back(dumpInfo);
|
||||
if (abilityHandler_ == nullptr) {
|
||||
HILOG_DEBUG("abilityHandler_ is nullptr.");
|
||||
TAG_LOGD(AAFwkTag::EXT, "abilityHandler_ is nullptr.");
|
||||
return;
|
||||
}
|
||||
auto runner = abilityHandler_->GetEventRunner();
|
||||
if (runner == nullptr) {
|
||||
HILOG_DEBUG("runner_ is nullptr.");
|
||||
TAG_LOGD(AAFwkTag::EXT, "runner_ is nullptr.");
|
||||
return;
|
||||
}
|
||||
dumpInfo = "";
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2023 Huawei Device Co., Ltd.
|
||||
* Copyright (c) 2023-2024 Huawei Device Co., Ltd.
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
@@ -19,6 +19,7 @@
|
||||
#include <nlohmann/json.hpp>
|
||||
|
||||
#include "app_module_checker.h"
|
||||
#include "hilog_tag_wrapper.h"
|
||||
#include "hilog_wrapper.h"
|
||||
|
||||
namespace OHOS::AbilityRuntime {
|
||||
@@ -36,18 +37,18 @@ void ExtensionConfigMgr::Init()
|
||||
std::ifstream inFile;
|
||||
inFile.open(EXTENSION_BLOCKLIST_FILE_PATH, std::ios::in);
|
||||
if (!inFile.is_open()) {
|
||||
HILOG_ERROR("read extension config error");
|
||||
TAG_LOGE(AAFwkTag::EXT, "read extension config error");
|
||||
return;
|
||||
}
|
||||
nlohmann::json extensionConfig;
|
||||
inFile >> extensionConfig;
|
||||
if (extensionConfig.is_discarded()) {
|
||||
HILOG_ERROR("extension config json discarded error");
|
||||
TAG_LOGE(AAFwkTag::EXT, "extension config json discarded error");
|
||||
inFile.close();
|
||||
return;
|
||||
}
|
||||
if (!extensionConfig.contains(ExtensionConfigItem::ITEM_NAME_BLOCKLIST)) {
|
||||
HILOG_ERROR("extension config file have no blocklist node");
|
||||
TAG_LOGE(AAFwkTag::EXT, "extension config file have no blocklist node");
|
||||
inFile.close();
|
||||
return;
|
||||
}
|
||||
@@ -68,10 +69,10 @@ void ExtensionConfigMgr::Init()
|
||||
|
||||
void ExtensionConfigMgr::AddBlockListItem(const std::string& name, int32_t type)
|
||||
{
|
||||
HILOG_DEBUG("AddBlockListItem name = %{public}s, type = %{public}d", name.c_str(), type);
|
||||
TAG_LOGD(AAFwkTag::EXT, "AddBlockListItem name = %{public}s, type = %{public}d", name.c_str(), type);
|
||||
auto iter = blocklistConfig_.find(name);
|
||||
if (iter == blocklistConfig_.end()) {
|
||||
HILOG_DEBUG("Extension name = %{public}s, not exist in blocklist config", name.c_str());
|
||||
TAG_LOGD(AAFwkTag::EXT, "Extension name = %{public}s, not exist in blocklist config", name.c_str());
|
||||
return;
|
||||
}
|
||||
extensionBlocklist_.emplace(type, iter->second);
|
||||
@@ -80,10 +81,10 @@ void ExtensionConfigMgr::AddBlockListItem(const std::string& name, int32_t type)
|
||||
void ExtensionConfigMgr::UpdateRuntimeModuleChecker(const std::unique_ptr<AbilityRuntime::Runtime> &runtime)
|
||||
{
|
||||
if (!runtime) {
|
||||
HILOG_ERROR("UpdateRuntimeModuleChecker faild, runtime is null");
|
||||
TAG_LOGE(AAFwkTag::EXT, "UpdateRuntimeModuleChecker faild, runtime is null");
|
||||
return;
|
||||
}
|
||||
HILOG_DEBUG("extensionType_ = %{public}d", extensionType_);
|
||||
TAG_LOGD(AAFwkTag::EXT, "extensionType_ = %{public}d", extensionType_);
|
||||
auto moduleChecker = std::make_shared<AppModuleChecker>(extensionType_, std::move(extensionBlocklist_));
|
||||
runtime->SetModuleLoadChecker(moduleChecker);
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2021-2023 Huawei Device Co., Ltd.
|
||||
* Copyright (c) 2021-2024 Huawei Device Co., Ltd.
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
@@ -20,6 +20,7 @@
|
||||
#include "ability_transaction_callback_info.h"
|
||||
#include "hitrace_meter.h"
|
||||
#include "extension_context.h"
|
||||
#include "hilog_tag_wrapper.h"
|
||||
#include "hilog_wrapper.h"
|
||||
#include "ui_extension_utils.h"
|
||||
|
||||
@@ -32,10 +33,10 @@ void ExtensionImpl::Init(const std::shared_ptr<AppExecFwk::OHOSApplication> &app
|
||||
const sptr<IRemoteObject> &token)
|
||||
{
|
||||
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
|
||||
HILOG_DEBUG("call");
|
||||
TAG_LOGD(AAFwkTag::EXT, "call");
|
||||
if ((token == nullptr) || (application == nullptr) || (handler == nullptr) || (record == nullptr) ||
|
||||
extension == nullptr) {
|
||||
HILOG_ERROR("ExtensionImpl::init failed, some object is nullptr");
|
||||
TAG_LOGE(AAFwkTag::EXT, "ExtensionImpl::init failed, some object is nullptr");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -65,10 +66,10 @@ void ExtensionImpl::HandleExtensionTransaction(const Want &want, const AAFwk::Li
|
||||
sptr<AAFwk::SessionInfo> sessionInfo)
|
||||
{
|
||||
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
|
||||
HILOG_DEBUG("sourceState:%{public}d;targetState:%{public}d;isNewWant:%{public}d",
|
||||
TAG_LOGD(AAFwkTag::EXT, "sourceState:%{public}d;targetState:%{public}d;isNewWant:%{public}d",
|
||||
lifecycleState_, targetState.state, targetState.isNewWant);
|
||||
if (lifecycleState_ == targetState.state) {
|
||||
HILOG_ERROR("Org lifeCycleState equals to Dst lifeCycleState.");
|
||||
TAG_LOGE(AAFwkTag::EXT, "Org lifeCycleState equals to Dst lifeCycleState.");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -104,13 +105,13 @@ void ExtensionImpl::HandleExtensionTransaction(const Want &want, const AAFwk::Li
|
||||
}
|
||||
default: {
|
||||
ret = false;
|
||||
HILOG_ERROR("ExtensionImpl::HandleExtensionTransaction state is error");
|
||||
TAG_LOGE(AAFwkTag::EXT, "ExtensionImpl::HandleExtensionTransaction state is error");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (ret && !UIExtensionAbilityExecuteInsightIntent(want)) {
|
||||
HILOG_DEBUG("call abilityms");
|
||||
TAG_LOGD(AAFwkTag::EXT, "call abilityms");
|
||||
AAFwk::PacMap restoreData;
|
||||
AAFwk::AbilityManagerClient::GetInstance()->AbilityTransitionDone(token_, targetState.state, restoreData);
|
||||
}
|
||||
@@ -124,9 +125,9 @@ bool ExtensionImpl::UIExtensionAbilityExecuteInsightIntent(const Want &want)
|
||||
|
||||
void ExtensionImpl::ScheduleUpdateConfiguration(const AppExecFwk::Configuration &config)
|
||||
{
|
||||
HILOG_DEBUG("call");
|
||||
TAG_LOGD(AAFwkTag::EXT, "call");
|
||||
if (extension_ == nullptr) {
|
||||
HILOG_ERROR("ExtensionImpl::ScheduleUpdateConfiguration extension_ is nullptr");
|
||||
TAG_LOGE(AAFwkTag::EXT, "ExtensionImpl::ScheduleUpdateConfiguration extension_ is nullptr");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -137,9 +138,9 @@ void ExtensionImpl::ScheduleUpdateConfiguration(const AppExecFwk::Configuration
|
||||
|
||||
void ExtensionImpl::NotifyMemoryLevel(int level)
|
||||
{
|
||||
HILOG_DEBUG("call");
|
||||
TAG_LOGD(AAFwkTag::EXT, "call");
|
||||
if (extension_ == nullptr) {
|
||||
HILOG_ERROR("ExtensionImpl::NotifyMemoryLevel extension_ is nullptr");
|
||||
TAG_LOGE(AAFwkTag::EXT, "ExtensionImpl::NotifyMemoryLevel extension_ is nullptr");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -158,20 +159,20 @@ void ExtensionImpl::NotifyMemoryLevel(int level)
|
||||
void ExtensionImpl::Start(const Want &want, sptr<AAFwk::SessionInfo> sessionInfo)
|
||||
{
|
||||
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
|
||||
HILOG_DEBUG("call");
|
||||
TAG_LOGD(AAFwkTag::EXT, "call");
|
||||
if (extension_ == nullptr) {
|
||||
HILOG_ERROR("ExtensionImpl::Start extension_ is nullptr");
|
||||
TAG_LOGE(AAFwkTag::EXT, "ExtensionImpl::Start extension_ is nullptr");
|
||||
return;
|
||||
}
|
||||
|
||||
HILOG_DEBUG("ExtensionImpl::Start");
|
||||
TAG_LOGD(AAFwkTag::EXT, "ExtensionImpl::Start");
|
||||
if (extension_->abilityInfo_->extensionAbilityType == AppExecFwk::ExtensionAbilityType::WINDOW) {
|
||||
extension_->OnStart(want, sessionInfo);
|
||||
} else {
|
||||
extension_->OnStart(want);
|
||||
}
|
||||
lifecycleState_ = AAFwk::ABILITY_STATE_INACTIVE;
|
||||
HILOG_DEBUG("ok");
|
||||
TAG_LOGD(AAFwkTag::EXT, "ok");
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -181,23 +182,23 @@ void ExtensionImpl::Start(const Want &want, sptr<AAFwk::SessionInfo> sessionInfo
|
||||
*/
|
||||
void ExtensionImpl::Stop()
|
||||
{
|
||||
HILOG_DEBUG("call");
|
||||
TAG_LOGD(AAFwkTag::EXT, "call");
|
||||
if (extension_ == nullptr) {
|
||||
HILOG_ERROR("ExtensionImpl::Stop extension_ is nullptr");
|
||||
TAG_LOGE(AAFwkTag::EXT, "ExtensionImpl::Stop extension_ is nullptr");
|
||||
return;
|
||||
}
|
||||
|
||||
extension_->OnStop();
|
||||
lifecycleState_ = AAFwk::ABILITY_STATE_INITIAL;
|
||||
HILOG_DEBUG("ok");
|
||||
TAG_LOGD(AAFwkTag::EXT, "ok");
|
||||
}
|
||||
|
||||
void ExtensionImpl::Stop(bool &isAsyncCallback, const Want &want, sptr<AAFwk::SessionInfo> sessionInfo)
|
||||
{
|
||||
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
|
||||
HILOG_DEBUG("call");
|
||||
TAG_LOGD(AAFwkTag::EXT, "call");
|
||||
if (extension_ == nullptr) {
|
||||
HILOG_ERROR("ExtensionImpl::Stop extension_ is nullptr");
|
||||
TAG_LOGE(AAFwkTag::EXT, "ExtensionImpl::Stop extension_ is nullptr");
|
||||
isAsyncCallback = false;
|
||||
return;
|
||||
}
|
||||
@@ -217,7 +218,7 @@ void ExtensionImpl::Stop(bool &isAsyncCallback, const Want &want, sptr<AAFwk::Se
|
||||
auto asyncCallback = [ExtensionImplWeakPtr = weakPtr, state = AAFwk::ABILITY_STATE_INITIAL]() {
|
||||
auto extensionImpl = ExtensionImplWeakPtr.lock();
|
||||
if (extensionImpl == nullptr) {
|
||||
HILOG_ERROR("extensionImpl is nullptr.");
|
||||
TAG_LOGE(AAFwkTag::EXT, "extensionImpl is nullptr.");
|
||||
return;
|
||||
}
|
||||
extensionImpl->lifecycleState_ = AAFwk::ABILITY_STATE_INITIAL;
|
||||
@@ -231,12 +232,12 @@ void ExtensionImpl::Stop(bool &isAsyncCallback, const Want &want, sptr<AAFwk::Se
|
||||
AppExecFwk::AbilityTransactionCallbackInfo<>::Destroy(callbackInfo);
|
||||
}
|
||||
// else: callbackInfo will be destroyed after the async callback
|
||||
HILOG_DEBUG("%{public}s end.", __func__);
|
||||
TAG_LOGD(AAFwkTag::EXT, "%{public}s end.", __func__);
|
||||
}
|
||||
|
||||
void ExtensionImpl::AbilityTransactionCallback(const AAFwk::AbilityLifeCycleState &state)
|
||||
{
|
||||
HILOG_DEBUG("called");
|
||||
TAG_LOGD(AAFwkTag::EXT, "called");
|
||||
AAFwk::PacMap restoreData;
|
||||
AAFwk::AbilityManagerClient::GetInstance()->AbilityTransitionDone(token_, state, restoreData);
|
||||
}
|
||||
@@ -249,25 +250,25 @@ void ExtensionImpl::AbilityTransactionCallback(const AAFwk::AbilityLifeCycleStat
|
||||
*/
|
||||
sptr<IRemoteObject> ExtensionImpl::ConnectExtension(const Want &want)
|
||||
{
|
||||
HILOG_DEBUG("call");
|
||||
TAG_LOGD(AAFwkTag::EXT, "call");
|
||||
if (extension_ == nullptr) {
|
||||
HILOG_ERROR("ExtensionImpl::ConnectAbility extension_ is nullptr");
|
||||
TAG_LOGE(AAFwkTag::EXT, "ExtensionImpl::ConnectAbility extension_ is nullptr");
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
skipCommandExtensionWithIntent_ = true;
|
||||
sptr<IRemoteObject> object = extension_->OnConnect(want);
|
||||
lifecycleState_ = AAFwk::ABILITY_STATE_ACTIVE;
|
||||
HILOG_DEBUG("ok");
|
||||
TAG_LOGD(AAFwkTag::EXT, "ok");
|
||||
|
||||
return object;
|
||||
}
|
||||
|
||||
sptr<IRemoteObject> ExtensionImpl::ConnectExtension(const Want &want, bool &isAsyncCallback)
|
||||
{
|
||||
HILOG_DEBUG("call");
|
||||
TAG_LOGD(AAFwkTag::EXT, "call");
|
||||
if (extension_ == nullptr) {
|
||||
HILOG_ERROR("ExtensionImpl::ConnectAbility extension_ is nullptr");
|
||||
TAG_LOGE(AAFwkTag::EXT, "ExtensionImpl::ConnectAbility extension_ is nullptr");
|
||||
isAsyncCallback = false;
|
||||
return nullptr;
|
||||
}
|
||||
@@ -278,7 +279,7 @@ sptr<IRemoteObject> ExtensionImpl::ConnectExtension(const Want &want, bool &isAs
|
||||
sptr<IRemoteObject> object = extension_->OnConnect(want);
|
||||
lifecycleState_ = AAFwk::ABILITY_STATE_ACTIVE;
|
||||
isAsyncCallback = false;
|
||||
HILOG_INFO("%{public}s end.", __func__);
|
||||
TAG_LOGI(AAFwkTag::EXT, "%{public}s end.", __func__);
|
||||
return object;
|
||||
}
|
||||
|
||||
@@ -286,7 +287,7 @@ sptr<IRemoteObject> ExtensionImpl::ConnectExtension(const Want &want, bool &isAs
|
||||
auto asyncCallback = [extensionImplWeakPtr = weakPtr](sptr<IRemoteObject> &service) {
|
||||
auto extensionImpl = extensionImplWeakPtr.lock();
|
||||
if (extensionImpl == nullptr) {
|
||||
HILOG_ERROR("extensionImpl is nullptr.");
|
||||
TAG_LOGE(AAFwkTag::EXT, "extensionImpl is nullptr.");
|
||||
return;
|
||||
}
|
||||
extensionImpl->lifecycleState_ = AAFwk::ABILITY_STATE_ACTIVE;
|
||||
@@ -300,7 +301,7 @@ sptr<IRemoteObject> ExtensionImpl::ConnectExtension(const Want &want, bool &isAs
|
||||
AppExecFwk::AbilityTransactionCallbackInfo<sptr<IRemoteObject>>::Destroy(callbackInfo);
|
||||
}
|
||||
// else: callbackInfo will be destroyed after the async callback
|
||||
HILOG_DEBUG("ok");
|
||||
TAG_LOGD(AAFwkTag::EXT, "ok");
|
||||
return object;
|
||||
}
|
||||
|
||||
@@ -308,7 +309,7 @@ void ExtensionImpl::ConnectExtensionCallback(sptr<IRemoteObject> &service)
|
||||
{
|
||||
ErrCode err = AAFwk::AbilityManagerClient::GetInstance()->ScheduleConnectAbilityDone(token_, service);
|
||||
if (err != ERR_OK) {
|
||||
HILOG_ERROR("AbilityThread::HandleConnectExtension failed err = %{public}d", err);
|
||||
TAG_LOGE(AAFwkTag::EXT, "AbilityThread::HandleConnectExtension failed err = %{public}d", err);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -319,21 +320,21 @@ void ExtensionImpl::ConnectExtensionCallback(sptr<IRemoteObject> &service)
|
||||
*/
|
||||
void ExtensionImpl::DisconnectExtension(const Want &want)
|
||||
{
|
||||
HILOG_DEBUG("call");
|
||||
TAG_LOGD(AAFwkTag::EXT, "call");
|
||||
if (extension_ == nullptr) {
|
||||
HILOG_ERROR("ExtensionImpl::DisconnectAbility extension_ is nullptr");
|
||||
TAG_LOGE(AAFwkTag::EXT, "ExtensionImpl::DisconnectAbility extension_ is nullptr");
|
||||
return;
|
||||
}
|
||||
|
||||
extension_->OnDisconnect(want);
|
||||
HILOG_DEBUG("ok");
|
||||
TAG_LOGD(AAFwkTag::EXT, "ok");
|
||||
}
|
||||
|
||||
void ExtensionImpl::DisconnectExtension(const Want &want, bool &isAsyncCallback)
|
||||
{
|
||||
HILOG_DEBUG("%{public}s begin.", __func__);
|
||||
TAG_LOGD(AAFwkTag::EXT, "%{public}s begin.", __func__);
|
||||
if (extension_ == nullptr) {
|
||||
HILOG_ERROR("Failed to disconnect, extension_ is nullptr");
|
||||
TAG_LOGE(AAFwkTag::EXT, "Failed to disconnect, extension_ is nullptr");
|
||||
isAsyncCallback = false;
|
||||
return;
|
||||
}
|
||||
@@ -348,7 +349,7 @@ void ExtensionImpl::DisconnectExtension(const Want &want, bool &isAsyncCallback)
|
||||
auto asyncCallback = [extensionImplWeakPtr = weakPtr]() {
|
||||
auto extensionImpl = extensionImplWeakPtr.lock();
|
||||
if (extensionImpl == nullptr) {
|
||||
HILOG_ERROR("extensionImpl is nullptr.");
|
||||
TAG_LOGE(AAFwkTag::EXT, "extensionImpl is nullptr.");
|
||||
return;
|
||||
}
|
||||
extensionImpl->DisconnectExtensionCallback();
|
||||
@@ -360,14 +361,14 @@ void ExtensionImpl::DisconnectExtension(const Want &want, bool &isAsyncCallback)
|
||||
AppExecFwk::AbilityTransactionCallbackInfo<>::Destroy(callbackInfo);
|
||||
}
|
||||
// else: callbackInfo will be destroyed after the async callback
|
||||
HILOG_DEBUG("%{public}s end.", __func__);
|
||||
TAG_LOGD(AAFwkTag::EXT, "%{public}s end.", __func__);
|
||||
}
|
||||
|
||||
void ExtensionImpl::DisconnectExtensionCallback()
|
||||
{
|
||||
ErrCode err = AAFwk::AbilityManagerClient::GetInstance()->ScheduleDisconnectAbilityDone(token_);
|
||||
if (err != ERR_OK) {
|
||||
HILOG_ERROR("ExtensionImpl::DisconnectExtensionCallback failed err = %{public}d", err);
|
||||
TAG_LOGE(AAFwkTag::EXT, "ExtensionImpl::DisconnectExtensionCallback failed err = %{public}d", err);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -385,9 +386,9 @@ void ExtensionImpl::DisconnectExtensionCallback()
|
||||
*/
|
||||
void ExtensionImpl::CommandExtension(const Want &want, bool restart, int startId)
|
||||
{
|
||||
HILOG_DEBUG("call");
|
||||
TAG_LOGD(AAFwkTag::EXT, "call");
|
||||
if (extension_ == nullptr) {
|
||||
HILOG_ERROR("ExtensionImpl::CommandAbility extension_ is nullptr");
|
||||
TAG_LOGE(AAFwkTag::EXT, "ExtensionImpl::CommandAbility extension_ is nullptr");
|
||||
return;
|
||||
}
|
||||
if (!AppExecFwk::InsightIntentExecuteParam::IsInsightIntentExecute(want) || !skipCommandExtensionWithIntent_) {
|
||||
@@ -395,22 +396,22 @@ void ExtensionImpl::CommandExtension(const Want &want, bool restart, int startId
|
||||
extension_->OnCommand(want, restart, startId);
|
||||
}
|
||||
lifecycleState_ = AAFwk::ABILITY_STATE_ACTIVE;
|
||||
HILOG_DEBUG("ok");
|
||||
TAG_LOGD(AAFwkTag::EXT, "ok");
|
||||
}
|
||||
|
||||
bool ExtensionImpl::HandleInsightIntent(const Want &want)
|
||||
{
|
||||
HILOG_DEBUG("call");
|
||||
TAG_LOGD(AAFwkTag::EXT, "call");
|
||||
if (extension_ == nullptr) {
|
||||
HILOG_ERROR("ExtensionImpl::HandleInsightIntent extension_ is nullptr");
|
||||
TAG_LOGE(AAFwkTag::EXT, "ExtensionImpl::HandleInsightIntent extension_ is nullptr");
|
||||
return false;
|
||||
}
|
||||
auto ret = extension_->HandleInsightIntent(want);
|
||||
if (!ret) {
|
||||
HILOG_ERROR("ExtensionImpl::extension HandleInsightIntent failed");
|
||||
TAG_LOGE(AAFwkTag::EXT, "ExtensionImpl::extension HandleInsightIntent failed");
|
||||
return false;
|
||||
}
|
||||
HILOG_DEBUG("ok");
|
||||
TAG_LOGD(AAFwkTag::EXT, "ok");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -419,34 +420,34 @@ void ExtensionImpl::CommandExtensionWindow(const Want &want, const sptr<AAFwk::S
|
||||
{
|
||||
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
|
||||
if (extension_ == nullptr || sessionInfo == nullptr) {
|
||||
HILOG_ERROR("extension_ or sessionInfo is nullptr");
|
||||
TAG_LOGE(AAFwkTag::EXT, "extension_ or sessionInfo is nullptr");
|
||||
return;
|
||||
}
|
||||
|
||||
HILOG_DEBUG("persistentId: %{private}d, componentId: %{public}" PRId64 ", winCmd: %{public}d",
|
||||
TAG_LOGD(AAFwkTag::EXT, "persistentId: %{private}d, componentId: %{public}" PRId64 ", winCmd: %{public}d",
|
||||
sessionInfo->persistentId, sessionInfo->uiExtensionComponentId, winCmd);
|
||||
extension_->OnCommandWindow(want, sessionInfo, winCmd);
|
||||
HILOG_DEBUG("ok");
|
||||
TAG_LOGD(AAFwkTag::EXT, "ok");
|
||||
}
|
||||
|
||||
void ExtensionImpl::SendResult(int requestCode, int resultCode, const Want &resultData)
|
||||
{
|
||||
HILOG_DEBUG("begin.");
|
||||
TAG_LOGD(AAFwkTag::EXT, "begin.");
|
||||
if (extension_ == nullptr) {
|
||||
HILOG_ERROR("extension_ is nullptr");
|
||||
TAG_LOGE(AAFwkTag::EXT, "extension_ is nullptr");
|
||||
return;
|
||||
}
|
||||
|
||||
extension_->OnAbilityResult(requestCode, resultCode, resultData);
|
||||
HILOG_DEBUG("end.");
|
||||
TAG_LOGD(AAFwkTag::EXT, "end.");
|
||||
}
|
||||
|
||||
void ExtensionImpl::Foreground(const Want &want, sptr<AAFwk::SessionInfo> sessionInfo)
|
||||
{
|
||||
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
|
||||
HILOG_DEBUG("ExtensionImpl::Foreground begin");
|
||||
TAG_LOGD(AAFwkTag::EXT, "ExtensionImpl::Foreground begin");
|
||||
if (extension_ == nullptr) {
|
||||
HILOG_ERROR("ExtensionImpl::Foreground ability is nullptr");
|
||||
TAG_LOGE(AAFwkTag::EXT, "ExtensionImpl::Foreground ability is nullptr");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -457,9 +458,9 @@ void ExtensionImpl::Foreground(const Want &want, sptr<AAFwk::SessionInfo> sessio
|
||||
void ExtensionImpl::Background(const Want &want, sptr<AAFwk::SessionInfo> sessionInfo)
|
||||
{
|
||||
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
|
||||
HILOG_DEBUG("ExtensionImpl::Background begin");
|
||||
TAG_LOGD(AAFwkTag::EXT, "ExtensionImpl::Background begin");
|
||||
if (extension_ == nullptr) {
|
||||
HILOG_ERROR("ExtensionImpl::Background ability is nullptr");
|
||||
TAG_LOGE(AAFwkTag::EXT, "ExtensionImpl::Background ability is nullptr");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -473,22 +474,22 @@ void ExtensionImpl::Background(const Want &want, sptr<AAFwk::SessionInfo> sessio
|
||||
|
||||
void ExtensionImpl::ExtensionWindowLifeCycleImpl::AfterForeground()
|
||||
{
|
||||
HILOG_DEBUG("called.");
|
||||
TAG_LOGD(AAFwkTag::EXT, "called.");
|
||||
}
|
||||
|
||||
void ExtensionImpl::ExtensionWindowLifeCycleImpl::AfterBackground()
|
||||
{
|
||||
HILOG_DEBUG("called.");
|
||||
TAG_LOGD(AAFwkTag::EXT, "called.");
|
||||
}
|
||||
|
||||
void ExtensionImpl::ExtensionWindowLifeCycleImpl::AfterActive()
|
||||
{
|
||||
HILOG_DEBUG("called.");
|
||||
TAG_LOGD(AAFwkTag::EXT, "called.");
|
||||
}
|
||||
|
||||
void ExtensionImpl::ExtensionWindowLifeCycleImpl::AfterInactive()
|
||||
{
|
||||
HILOG_DEBUG("called.");
|
||||
TAG_LOGD(AAFwkTag::EXT, "called.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2021-2022 Huawei Device Co., Ltd.
|
||||
* Copyright (c) 2021-2024 Huawei Device Co., Ltd.
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
@@ -17,6 +17,7 @@
|
||||
|
||||
#include <dlfcn.h>
|
||||
|
||||
#include "hilog_tag_wrapper.h"
|
||||
#include "hilog_wrapper.h"
|
||||
|
||||
namespace OHOS::AbilityRuntime {
|
||||
@@ -47,27 +48,29 @@ DummyExtensionModuleLoader::~DummyExtensionModuleLoader() = default;
|
||||
ExtensionModuleLoader& GetExtensionModuleLoader(const char* sharedLibrary)
|
||||
{
|
||||
if (sharedLibrary == nullptr) {
|
||||
HILOG_ERROR("Name of shared extension library MUST NOT be null pointer");
|
||||
TAG_LOGE(AAFwkTag::EXT, "Name of shared extension library MUST NOT be null pointer");
|
||||
return DummyExtensionModuleLoader::GetInstance();
|
||||
}
|
||||
|
||||
void* handle = dlopen(sharedLibrary, RTLD_LAZY);
|
||||
if (handle == nullptr) {
|
||||
HILOG_ERROR("Failed to open extension library %{public}s, reason: %{public}sn", sharedLibrary, dlerror());
|
||||
TAG_LOGE(AAFwkTag::EXT, "Failed to open extension library %{public}s, reason: %{public}sn", sharedLibrary,
|
||||
dlerror());
|
||||
return DummyExtensionModuleLoader::GetInstance();
|
||||
}
|
||||
|
||||
auto entry = reinterpret_cast<DynamicEntry>(dlsym(handle, EXTENSION_MODULE_ENTRY));
|
||||
if (entry == nullptr) {
|
||||
dlclose(handle);
|
||||
HILOG_ERROR("Failed to get extension symbol %{public}s in %{public}s", EXTENSION_MODULE_ENTRY, sharedLibrary);
|
||||
TAG_LOGE(AAFwkTag::EXT, "Failed to get extension symbol %{public}s in %{public}s", EXTENSION_MODULE_ENTRY,
|
||||
sharedLibrary);
|
||||
return DummyExtensionModuleLoader::GetInstance();
|
||||
}
|
||||
|
||||
auto loader = reinterpret_cast<ExtensionModuleLoader*>(entry());
|
||||
if (loader == nullptr) {
|
||||
dlclose(handle);
|
||||
HILOG_ERROR("Failed to get extension module loader in %{public}s", sharedLibrary);
|
||||
TAG_LOGE(AAFwkTag::EXT, "Failed to get extension module loader in %{public}s", sharedLibrary);
|
||||
return DummyExtensionModuleLoader::GetInstance();
|
||||
}
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2021-2022 Huawei Device Co., Ltd.
|
||||
* Copyright (c) 2021-2024 Huawei Device Co., Ltd.
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
@@ -18,6 +18,7 @@
|
||||
#include "configuration_utils.h"
|
||||
#include "form_extension_context.h"
|
||||
#include "form_runtime/js_form_extension.h"
|
||||
#include "hilog_tag_wrapper.h"
|
||||
#include "hilog_wrapper.h"
|
||||
#include "runtime.h"
|
||||
|
||||
@@ -29,7 +30,7 @@ FormExtension* FormExtension::Create(const std::unique_ptr<Runtime>& runtime)
|
||||
if (!runtime) {
|
||||
return new FormExtension();
|
||||
}
|
||||
HILOG_INFO("call");
|
||||
TAG_LOGI(AAFwkTag::FORM_EXT, "call");
|
||||
switch (runtime->GetLanguage()) {
|
||||
case Runtime::Language::JS:
|
||||
return JsFormExtension::Create(runtime);
|
||||
@@ -44,7 +45,7 @@ void FormExtension::Init(const std::shared_ptr<AbilityLocalRecord> &record,
|
||||
const sptr<IRemoteObject> &token)
|
||||
{
|
||||
ExtensionBase<FormExtensionContext>::Init(record, application, handler, token);
|
||||
HILOG_DEBUG("FormExtension begin init");
|
||||
TAG_LOGD(AAFwkTag::FORM_EXT, "FormExtension begin init");
|
||||
}
|
||||
|
||||
std::shared_ptr<FormExtensionContext> FormExtension::CreateAndInitContext(
|
||||
@@ -56,7 +57,7 @@ std::shared_ptr<FormExtensionContext> FormExtension::CreateAndInitContext(
|
||||
std::shared_ptr<FormExtensionContext> context =
|
||||
ExtensionBase<FormExtensionContext>::CreateAndInitContext(record, application, handler, token);
|
||||
if (record == nullptr) {
|
||||
HILOG_ERROR("FormExtension::CreateAndInitContext record is nullptr");
|
||||
TAG_LOGE(AAFwkTag::FORM_EXT, "FormExtension::CreateAndInitContext record is nullptr");
|
||||
return context;
|
||||
}
|
||||
context->SetAbilityInfo(record->GetAbilityInfo());
|
||||
@@ -65,51 +66,51 @@ std::shared_ptr<FormExtensionContext> FormExtension::CreateAndInitContext(
|
||||
|
||||
OHOS::AppExecFwk::FormProviderInfo FormExtension::OnCreate(const OHOS::AAFwk::Want& want)
|
||||
{
|
||||
HILOG_INFO("call");
|
||||
TAG_LOGI(AAFwkTag::FORM_EXT, "call");
|
||||
OHOS::AppExecFwk::FormProviderInfo formProviderInfo;
|
||||
return formProviderInfo;
|
||||
}
|
||||
|
||||
void FormExtension::OnDestroy(const int64_t formId)
|
||||
{
|
||||
HILOG_DEBUG("call");
|
||||
TAG_LOGD(AAFwkTag::FORM_EXT, "call");
|
||||
}
|
||||
|
||||
void FormExtension::OnEvent(const int64_t formId, const std::string& message)
|
||||
{
|
||||
HILOG_INFO("call");
|
||||
TAG_LOGI(AAFwkTag::FORM_EXT, "call");
|
||||
}
|
||||
|
||||
void FormExtension::OnUpdate(const int64_t formId, const AAFwk::WantParams &wantParams)
|
||||
{
|
||||
HILOG_DEBUG("call");
|
||||
TAG_LOGD(AAFwkTag::FORM_EXT, "call");
|
||||
}
|
||||
|
||||
void FormExtension::OnCastToNormal(const int64_t formId)
|
||||
{
|
||||
HILOG_INFO("call");
|
||||
TAG_LOGI(AAFwkTag::FORM_EXT, "call");
|
||||
}
|
||||
|
||||
void FormExtension::OnVisibilityChange(const std::map<int64_t, int32_t>& formEventsMap)
|
||||
{
|
||||
HILOG_INFO("call");
|
||||
TAG_LOGI(AAFwkTag::FORM_EXT, "call");
|
||||
}
|
||||
|
||||
FormState FormExtension::OnAcquireFormState(const Want &want)
|
||||
{
|
||||
HILOG_INFO("call");
|
||||
TAG_LOGI(AAFwkTag::FORM_EXT, "call");
|
||||
return FormState::DEFAULT;
|
||||
}
|
||||
|
||||
bool FormExtension::OnShare(int64_t formId, AAFwk::WantParams &wantParams)
|
||||
{
|
||||
HILOG_DEBUG("call");
|
||||
TAG_LOGD(AAFwkTag::FORM_EXT, "call");
|
||||
return false;
|
||||
}
|
||||
|
||||
bool FormExtension::OnAcquireData(int64_t formId, AAFwk::WantParams &wantParams)
|
||||
{
|
||||
HILOG_DEBUG("call");
|
||||
TAG_LOGD(AAFwkTag::FORM_EXT, "call");
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -119,7 +120,7 @@ void FormExtension::OnConfigurationUpdated(const AppExecFwk::Configuration &conf
|
||||
|
||||
auto context = GetContext();
|
||||
if (context == nullptr) {
|
||||
HILOG_ERROR("Context is invalid.");
|
||||
TAG_LOGE(AAFwkTag::FORM_EXT, "Context is invalid.");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2023 Huawei Device Co., Ltd.
|
||||
* Copyright (c) 2024 Huawei Device Co., Ltd.
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
@@ -16,6 +16,7 @@
|
||||
#include "form_extension_module_loader.h"
|
||||
|
||||
#include "form_extension.h"
|
||||
#include "hilog_tag_wrapper.h"
|
||||
#include "hilog_wrapper.h"
|
||||
|
||||
namespace OHOS::AbilityRuntime {
|
||||
@@ -24,13 +25,13 @@ FormExtensionModuleLoader::~FormExtensionModuleLoader() = default;
|
||||
|
||||
Extension *FormExtensionModuleLoader::Create(const std::unique_ptr<Runtime> &runtime) const
|
||||
{
|
||||
HILOG_DEBUG("called");
|
||||
TAG_LOGD(AAFwkTag::FORM_EXT, "called");
|
||||
return FormExtension::Create(runtime);
|
||||
}
|
||||
|
||||
std::map<std::string, std::string> FormExtensionModuleLoader::GetParams()
|
||||
{
|
||||
HILOG_DEBUG("called");
|
||||
TAG_LOGD(AAFwkTag::FORM_EXT, "called");
|
||||
std::map<std::string, std::string> params;
|
||||
// type means extension type in ExtensionAbilityType of extension_ability_info.h, 0 means form.
|
||||
params.insert(std::pair<std::string, std::string>("type", "0"));
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2023 Huawei Device Co., Ltd.
|
||||
* Copyright (c) 2024 Huawei Device Co., Ltd.
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
@@ -15,6 +15,7 @@
|
||||
|
||||
#include "free_install_observer_proxy.h"
|
||||
|
||||
#include "hilog_tag_wrapper.h"
|
||||
#include "hilog_wrapper.h"
|
||||
#include "ipc_types.h"
|
||||
|
||||
@@ -27,7 +28,7 @@ FreeInstallObserverProxy::FreeInstallObserverProxy(
|
||||
bool FreeInstallObserverProxy::WriteInterfaceToken(MessageParcel &data)
|
||||
{
|
||||
if (!data.WriteInterfaceToken(FreeInstallObserverProxy::GetDescriptor())) {
|
||||
HILOG_ERROR("write interface token failed.");
|
||||
TAG_LOGE(AAFwkTag::FREE_INSTALL, "write interface token failed.");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
@@ -45,20 +46,20 @@ void FreeInstallObserverProxy::OnInstallFinished(const std::string &bundleName,
|
||||
|
||||
if (!data.WriteString(bundleName) || !data.WriteString(abilityName) || !data.WriteString(startTime) ||
|
||||
!data.WriteInt32(resultCode)) {
|
||||
HILOG_ERROR("params is wrong");
|
||||
TAG_LOGE(AAFwkTag::FREE_INSTALL, "params is wrong");
|
||||
return;
|
||||
}
|
||||
|
||||
sptr<IRemoteObject> remote = Remote();
|
||||
if (remote == nullptr) {
|
||||
HILOG_ERROR("Remote() is NULL");
|
||||
TAG_LOGE(AAFwkTag::FREE_INSTALL, "Remote() is NULL");
|
||||
return;
|
||||
}
|
||||
int32_t ret = remote->SendRequest(
|
||||
IFreeInstallObserver::ON_INSTALL_FINISHED,
|
||||
data, reply, option);
|
||||
if (ret != NO_ERROR) {
|
||||
HILOG_WARN("SendRequest is failed, error code: %{public}d", ret);
|
||||
TAG_LOGW(AAFwkTag::FREE_INSTALL, "SendRequest is failed, error code: %{public}d", ret);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2023 Huawei Device Co., Ltd.
|
||||
* Copyright (c) 2024 Huawei Device Co., Ltd.
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
@@ -15,6 +15,7 @@
|
||||
|
||||
#include "free_install_observer_stub.h"
|
||||
|
||||
#include "hilog_tag_wrapper.h"
|
||||
#include "hilog_wrapper.h"
|
||||
#include "ipc_types.h"
|
||||
#include "iremote_object.h"
|
||||
@@ -49,7 +50,7 @@ int FreeInstallObserverStub::OnRemoteRequest(
|
||||
std::u16string descriptor = FreeInstallObserverStub::GetDescriptor();
|
||||
std::u16string remoteDescriptor = data.ReadInterfaceToken();
|
||||
if (descriptor != remoteDescriptor) {
|
||||
HILOG_ERROR("Local descriptor is not equal to remote");
|
||||
TAG_LOGE(AAFwkTag::FREE_INSTALL, "Local descriptor is not equal to remote");
|
||||
return ERR_INVALID_STATE;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2023 Huawei Device Co., Ltd.
|
||||
* Copyright (c) 2024 Huawei Device Co., Ltd.
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
@@ -13,6 +13,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
#include "insight_intent_host_client.h"
|
||||
#include "hilog_tag_wrapper.h"
|
||||
#include "hilog_wrapper.h"
|
||||
|
||||
namespace OHOS {
|
||||
@@ -27,7 +28,7 @@ sptr<InsightIntentHostClient> InsightIntentHostClient::GetInstance()
|
||||
if (instance_ == nullptr) {
|
||||
instance_ = new (std::nothrow) InsightIntentHostClient();
|
||||
if (instance_ == nullptr) {
|
||||
HILOG_ERROR("failed to create InsightIntentHostClient.");
|
||||
TAG_LOGE(AAFwkTag::INTENT, "failed to create InsightIntentHostClient.");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -37,7 +38,7 @@ sptr<InsightIntentHostClient> InsightIntentHostClient::GetInstance()
|
||||
uint64_t InsightIntentHostClient::AddInsightIntentExecute(
|
||||
const std::shared_ptr<InsightIntentExecuteCallbackInterface> &callback)
|
||||
{
|
||||
HILOG_DEBUG("called.");
|
||||
TAG_LOGD(AAFwkTag::INTENT, "called.");
|
||||
std::lock_guard<std::mutex> lock(insightIntentExecutebackMutex_);
|
||||
callbackMap_.emplace(++key_, callback);
|
||||
return key_;
|
||||
@@ -45,7 +46,7 @@ uint64_t InsightIntentHostClient::AddInsightIntentExecute(
|
||||
|
||||
void InsightIntentHostClient::RemoveInsightIntentExecute(uint64_t key)
|
||||
{
|
||||
HILOG_DEBUG("called.");
|
||||
TAG_LOGD(AAFwkTag::INTENT, "called.");
|
||||
std::lock_guard<std::mutex> lock(insightIntentExecutebackMutex_);
|
||||
auto iter = callbackMap_.find(key);
|
||||
if (iter != callbackMap_.end()) {
|
||||
@@ -56,14 +57,14 @@ void InsightIntentHostClient::RemoveInsightIntentExecute(uint64_t key)
|
||||
void InsightIntentHostClient::OnExecuteDone(uint64_t key, int32_t resultCode,
|
||||
const AppExecFwk::InsightIntentExecuteResult &executeResult)
|
||||
{
|
||||
HILOG_DEBUG("called.");
|
||||
TAG_LOGD(AAFwkTag::INTENT, "called.");
|
||||
|
||||
std::shared_ptr<InsightIntentExecuteCallbackInterface> callback = nullptr;
|
||||
{
|
||||
std::lock_guard<std::mutex> lock(insightIntentExecutebackMutex_);
|
||||
auto iter = callbackMap_.find(key);
|
||||
if (iter == callbackMap_.end()) {
|
||||
HILOG_INFO("InsightIntent execute callback not found");
|
||||
TAG_LOGI(AAFwkTag::INTENT, "InsightIntent execute callback not found");
|
||||
} else {
|
||||
callback = iter->second;
|
||||
callbackMap_.erase(key);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2022 Huawei Device Co., Ltd.
|
||||
* Copyright (c) 2022-2024 Huawei Device Co., Ltd.
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
@@ -15,6 +15,7 @@
|
||||
|
||||
#include "js_extension_common.h"
|
||||
|
||||
#include "hilog_tag_wrapper.h"
|
||||
#include "hilog_wrapper.h"
|
||||
#include "js_extension_context.h"
|
||||
#include "js_runtime.h"
|
||||
@@ -49,9 +50,9 @@ JsExtensionCommon::~JsExtensionCommon()
|
||||
|
||||
void JsExtensionCommon::OnConfigurationUpdated(const std::shared_ptr<AppExecFwk::Configuration> &fullConfig)
|
||||
{
|
||||
HILOG_INFO("%{public}s called.", __func__);
|
||||
TAG_LOGI(AAFwkTag::EXT, "%{public}s called.", __func__);
|
||||
if (!fullConfig) {
|
||||
HILOG_ERROR("invalid configuration.");
|
||||
TAG_LOGE(AAFwkTag::EXT, "invalid configuration.");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -65,14 +66,14 @@ void JsExtensionCommon::OnConfigurationUpdated(const std::shared_ptr<AppExecFwk:
|
||||
|
||||
void JsExtensionCommon::OnMemoryLevel(int level)
|
||||
{
|
||||
HILOG_DEBUG("%{public}s called.", __func__);
|
||||
TAG_LOGD(AAFwkTag::EXT, "%{public}s called.", __func__);
|
||||
|
||||
HandleScope handleScope(jsRuntime_);
|
||||
auto env = jsRuntime_.GetNapiEnv();
|
||||
|
||||
napi_value obj = jsObj_.GetNapiValue();
|
||||
if (!CheckTypeForNapiValue(env, obj, napi_object)) {
|
||||
HILOG_ERROR("Failed to get js instance object");
|
||||
TAG_LOGE(AAFwkTag::EXT, "Failed to get js instance object");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -85,23 +86,23 @@ void JsExtensionCommon::OnMemoryLevel(int level)
|
||||
|
||||
napi_value JsExtensionCommon::CallObjectMethod(const char* name, napi_value const* argv, size_t argc)
|
||||
{
|
||||
HILOG_DEBUG("name: %{public}s", name);
|
||||
TAG_LOGD(AAFwkTag::EXT, "name: %{public}s", name);
|
||||
|
||||
HandleScope handleScope(jsRuntime_);
|
||||
auto env = jsRuntime_.GetNapiEnv();
|
||||
napi_value obj = jsObj_.GetNapiValue();
|
||||
if (!CheckTypeForNapiValue(env, obj, napi_object)) {
|
||||
HILOG_ERROR("Failed to get js instance object");
|
||||
TAG_LOGE(AAFwkTag::EXT, "Failed to get js instance object");
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
napi_value method = nullptr;
|
||||
napi_get_named_property(env, obj, name, &method);
|
||||
if (!CheckTypeForNapiValue(env, obj, napi_function)) {
|
||||
HILOG_ERROR("Failed to get '%{public}s' from js object", name);
|
||||
TAG_LOGE(AAFwkTag::EXT, "Failed to get '%{public}s' from js object", name);
|
||||
return nullptr;
|
||||
}
|
||||
HILOG_DEBUG("(%{public}s), success", name);
|
||||
TAG_LOGD(AAFwkTag::EXT, "(%{public}s), success", name);
|
||||
napi_value result = nullptr;
|
||||
napi_call_function(env, obj, method, argc, argv, &result);
|
||||
return result;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2023 Huawei Device Co., Ltd.
|
||||
* Copyright (c) 2023-2024 Huawei Device Co., Ltd.
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
@@ -15,6 +15,7 @@
|
||||
|
||||
#include "js_free_install_observer.h"
|
||||
|
||||
#include "hilog_tag_wrapper.h"
|
||||
#include "hilog_wrapper.h"
|
||||
#include "hitrace_meter.h"
|
||||
#include "js_error_utils.h"
|
||||
@@ -31,7 +32,7 @@ JsFreeInstallObserver::~JsFreeInstallObserver() = default;
|
||||
void JsFreeInstallObserver::OnInstallFinished(const std::string &bundleName, const std::string &abilityName,
|
||||
const std::string &startTime, const int &resultCode)
|
||||
{
|
||||
HILOG_DEBUG("call");
|
||||
TAG_LOGD(AAFwkTag::FREE_INSTALL, "call");
|
||||
wptr<JsFreeInstallObserver> jsObserver = this;
|
||||
std::unique_ptr<NapiAsyncTask::CompleteCallback> complete = std::make_unique<NapiAsyncTask::CompleteCallback>
|
||||
([jsObserver, bundleName, abilityName, startTime, resultCode](napi_env env, NapiAsyncTask &task,
|
||||
@@ -50,7 +51,7 @@ void JsFreeInstallObserver::OnInstallFinished(const std::string &bundleName, con
|
||||
void JsFreeInstallObserver::OnInstallFinished(const std::string &bundleName, const std::string &abilityName,
|
||||
const std::string &startTime, napi_value abilityResult)
|
||||
{
|
||||
HILOG_DEBUG("call");
|
||||
TAG_LOGD(AAFwkTag::FREE_INSTALL, "call");
|
||||
for (auto it = jsObserverObjectList_.begin(); it != jsObserverObjectList_.end();) {
|
||||
if ((it->bundleName == bundleName) && (it->abilityName == abilityName) && (it->startTime == startTime)) {
|
||||
if (it->callback == nullptr && it->deferred == nullptr) {
|
||||
@@ -68,7 +69,8 @@ void JsFreeInstallObserver::OnInstallFinished(const std::string &bundleName, con
|
||||
}
|
||||
FinishAsyncTrace(HITRACE_TAG_ABILITY_MANAGER, "StartFreeInstall", atoi(startTime.c_str()));
|
||||
it = jsObserverObjectList_.erase(it);
|
||||
HILOG_DEBUG("the size of jsObserverObjectList_:%{public}zu", jsObserverObjectList_.size());
|
||||
TAG_LOGD(AAFwkTag::FREE_INSTALL,
|
||||
"the size of jsObserverObjectList_:%{public}zu", jsObserverObjectList_.size());
|
||||
} else {
|
||||
it++;
|
||||
}
|
||||
@@ -78,7 +80,7 @@ void JsFreeInstallObserver::OnInstallFinished(const std::string &bundleName, con
|
||||
void JsFreeInstallObserver::HandleOnInstallFinished(const std::string &bundleName, const std::string &abilityName,
|
||||
const std::string &startTime, const int &resultCode)
|
||||
{
|
||||
HILOG_DEBUG("call");
|
||||
TAG_LOGD(AAFwkTag::FREE_INSTALL, "call");
|
||||
for (auto it = jsObserverObjectList_.begin(); it != jsObserverObjectList_.end();) {
|
||||
if ((it->bundleName == bundleName) && (it->abilityName == abilityName) && (it->startTime == startTime)) {
|
||||
if (it->callback == nullptr && it->deferred == nullptr) {
|
||||
@@ -96,7 +98,8 @@ void JsFreeInstallObserver::HandleOnInstallFinished(const std::string &bundleNam
|
||||
}
|
||||
FinishAsyncTrace(HITRACE_TAG_ABILITY_MANAGER, "StartFreeInstall", atoi(startTime.c_str()));
|
||||
it = jsObserverObjectList_.erase(it);
|
||||
HILOG_DEBUG("the size of jsObserverObjectList_:%{public}zu", jsObserverObjectList_.size());
|
||||
TAG_LOGD(
|
||||
AAFwkTag::FREE_INSTALL, "the size of jsObserverObjectList_:%{public}zu", jsObserverObjectList_.size());
|
||||
} else {
|
||||
it++;
|
||||
}
|
||||
@@ -105,9 +108,9 @@ void JsFreeInstallObserver::HandleOnInstallFinished(const std::string &bundleNam
|
||||
|
||||
void JsFreeInstallObserver::CallCallback(napi_ref callback, int32_t resultCode)
|
||||
{
|
||||
HILOG_DEBUG("call");
|
||||
TAG_LOGD(AAFwkTag::FREE_INSTALL, "call");
|
||||
if (callback == nullptr) {
|
||||
HILOG_ERROR("callback is nullptr.");
|
||||
TAG_LOGE(AAFwkTag::FREE_INSTALL, "callback is nullptr.");
|
||||
return;
|
||||
}
|
||||
napi_value value;
|
||||
@@ -124,9 +127,9 @@ void JsFreeInstallObserver::CallCallback(napi_ref callback, int32_t resultCode)
|
||||
|
||||
void JsFreeInstallObserver::CallCallback(napi_ref callback, napi_value abilityResult)
|
||||
{
|
||||
HILOG_DEBUG("call");
|
||||
TAG_LOGD(AAFwkTag::FREE_INSTALL, "call");
|
||||
if (callback == nullptr) {
|
||||
HILOG_ERROR("callback is nullptr.");
|
||||
TAG_LOGE(AAFwkTag::FREE_INSTALL, "callback is nullptr.");
|
||||
return;
|
||||
}
|
||||
napi_value argv[] = {
|
||||
@@ -141,7 +144,7 @@ void JsFreeInstallObserver::CallCallback(napi_ref callback, napi_value abilityRe
|
||||
void JsFreeInstallObserver::CallPromise(napi_deferred deferred, int32_t resultCode)
|
||||
{
|
||||
if (deferred == nullptr) {
|
||||
HILOG_ERROR("deferred is nullptr.");
|
||||
TAG_LOGE(AAFwkTag::FREE_INSTALL, "deferred is nullptr.");
|
||||
return;
|
||||
}
|
||||
if (resultCode == ERR_OK) {
|
||||
@@ -156,7 +159,7 @@ void JsFreeInstallObserver::CallPromise(napi_deferred deferred, int32_t resultCo
|
||||
void JsFreeInstallObserver::CallPromise(napi_deferred deferred, napi_value abilityResult)
|
||||
{
|
||||
if (deferred == nullptr) {
|
||||
HILOG_ERROR("deferred is nullptr.");
|
||||
TAG_LOGE(AAFwkTag::FREE_INSTALL, "deferred is nullptr.");
|
||||
return;
|
||||
}
|
||||
napi_resolve_deferred(env_, deferred, abilityResult);
|
||||
@@ -165,11 +168,11 @@ void JsFreeInstallObserver::CallPromise(napi_deferred deferred, napi_value abili
|
||||
void JsFreeInstallObserver::AddJsObserverObject(const std::string &bundleName, const std::string &abilityName,
|
||||
const std::string &startTime, napi_value jsObserverObject, napi_value* result, bool isAbilityResult)
|
||||
{
|
||||
HILOG_DEBUG("call");
|
||||
TAG_LOGD(AAFwkTag::FREE_INSTALL, "call");
|
||||
for (auto it = jsObserverObjectList_.begin(); it != jsObserverObjectList_.end(); ++it) {
|
||||
if (it->bundleName == bundleName && it->abilityName == abilityName &&
|
||||
it->startTime == startTime) {
|
||||
HILOG_WARN("The jsObject has been added.");
|
||||
TAG_LOGW(AAFwkTag::FREE_INSTALL, "The jsObject has been added.");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2021-2022 Huawei Device Co., Ltd.
|
||||
* Copyright (c) 2021-2024 Huawei Device Co., Ltd.
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
@@ -21,6 +21,7 @@
|
||||
#include "ability_manager_client.h"
|
||||
#include "configuration_utils.h"
|
||||
#include "hitrace_meter.h"
|
||||
#include "hilog_tag_wrapper.h"
|
||||
#include "hilog_wrapper.h"
|
||||
#include "insight_intent_execute_param.h"
|
||||
#include "insight_intent_execute_result.h"
|
||||
@@ -63,7 +64,7 @@ napi_value PromiseCallback(napi_env env, napi_callback_info info)
|
||||
|
||||
napi_value OnConnectPromiseCallback(napi_env env, napi_callback_info info)
|
||||
{
|
||||
HILOG_DEBUG("enter");
|
||||
TAG_LOGD(AAFwkTag::SERVICE_EXT, "enter");
|
||||
void *data = nullptr;
|
||||
size_t argc = ARGC_MAX_COUNT;
|
||||
napi_value argv[ARGC_MAX_COUNT] = {nullptr};
|
||||
@@ -76,7 +77,7 @@ napi_value OnConnectPromiseCallback(napi_env env, napi_callback_info info)
|
||||
callbackInfo->Call(service);
|
||||
AppExecFwk::AbilityTransactionCallbackInfo<sptr<IRemoteObject>>::Destroy(callbackInfo);
|
||||
data = nullptr;
|
||||
HILOG_DEBUG("end");
|
||||
TAG_LOGD(AAFwkTag::SERVICE_EXT, "end");
|
||||
return nullptr;
|
||||
}
|
||||
}
|
||||
@@ -86,19 +87,19 @@ using namespace OHOS::AppExecFwk;
|
||||
napi_value AttachServiceExtensionContext(napi_env env, void *value, void *)
|
||||
{
|
||||
if (value == nullptr) {
|
||||
HILOG_WARN("invalid parameter.");
|
||||
TAG_LOGW(AAFwkTag::SERVICE_EXT, "invalid parameter.");
|
||||
return nullptr;
|
||||
}
|
||||
auto ptr = reinterpret_cast<std::weak_ptr<ServiceExtensionContext> *>(value)->lock();
|
||||
if (ptr == nullptr) {
|
||||
HILOG_WARN("invalid context.");
|
||||
TAG_LOGW(AAFwkTag::SERVICE_EXT, "invalid context.");
|
||||
return nullptr;
|
||||
}
|
||||
napi_value object = CreateJsServiceExtensionContext(env, ptr);
|
||||
auto sysModule = JsRuntime::LoadSystemModuleByEngine(env,
|
||||
"application.ServiceExtensionContext", &object, 1);
|
||||
if (sysModule == nullptr) {
|
||||
HILOG_WARN("load module failed.");
|
||||
TAG_LOGW(AAFwkTag::SERVICE_EXT, "load module failed.");
|
||||
return nullptr;
|
||||
}
|
||||
auto contextObj = sysModule->GetNapiValue();
|
||||
@@ -107,7 +108,7 @@ napi_value AttachServiceExtensionContext(napi_env env, void *value, void *)
|
||||
auto workContext = new (std::nothrow) std::weak_ptr<ServiceExtensionContext>(ptr);
|
||||
napi_wrap(env, contextObj, workContext,
|
||||
[](napi_env, void *data, void *) {
|
||||
HILOG_DEBUG("Finalizer for weak_ptr service extension context is called");
|
||||
TAG_LOGD(AAFwkTag::SERVICE_EXT, "Finalizer for weak_ptr service extension context is called");
|
||||
delete static_cast<std::weak_ptr<ServiceExtensionContext> *>(data);
|
||||
},
|
||||
nullptr, nullptr);
|
||||
@@ -122,7 +123,7 @@ JsServiceExtension* JsServiceExtension::Create(const std::unique_ptr<Runtime>& r
|
||||
JsServiceExtension::JsServiceExtension(JsRuntime& jsRuntime) : jsRuntime_(jsRuntime) {}
|
||||
JsServiceExtension::~JsServiceExtension()
|
||||
{
|
||||
HILOG_DEBUG("Js service extension destructor.");
|
||||
TAG_LOGD(AAFwkTag::SERVICE_EXT, "Js service extension destructor.");
|
||||
auto context = GetContext();
|
||||
if (context) {
|
||||
context->Unbind();
|
||||
@@ -140,13 +141,13 @@ void JsServiceExtension::Init(const std::shared_ptr<AbilityLocalRecord> &record,
|
||||
std::string srcPath = "";
|
||||
GetSrcPath(srcPath);
|
||||
if (srcPath.empty()) {
|
||||
HILOG_ERROR("Failed to get srcPath");
|
||||
TAG_LOGE(AAFwkTag::SERVICE_EXT, "Failed to get srcPath");
|
||||
return;
|
||||
}
|
||||
|
||||
std::string moduleName(Extension::abilityInfo_->moduleName);
|
||||
moduleName.append("::").append(abilityInfo_->name);
|
||||
HILOG_DEBUG("JsServiceExtension::Init moduleName:%{public}s,srcPath:%{public}s.",
|
||||
TAG_LOGD(AAFwkTag::SERVICE_EXT, "JsServiceExtension::Init moduleName:%{public}s,srcPath:%{public}s.",
|
||||
moduleName.c_str(), srcPath.c_str());
|
||||
HandleScope handleScope(jsRuntime_);
|
||||
auto env = jsRuntime_.GetNapiEnv();
|
||||
@@ -154,14 +155,14 @@ void JsServiceExtension::Init(const std::shared_ptr<AbilityLocalRecord> &record,
|
||||
jsObj_ = jsRuntime_.LoadModule(
|
||||
moduleName, srcPath, abilityInfo_->hapPath, abilityInfo_->compileMode == CompileMode::ES_MODULE);
|
||||
if (jsObj_ == nullptr) {
|
||||
HILOG_ERROR("Failed to get jsObj_");
|
||||
TAG_LOGE(AAFwkTag::SERVICE_EXT, "Failed to get jsObj_");
|
||||
return;
|
||||
}
|
||||
|
||||
HILOG_DEBUG("ConvertNativeValueTo.");
|
||||
TAG_LOGD(AAFwkTag::SERVICE_EXT, "ConvertNativeValueTo.");
|
||||
napi_value obj = jsObj_->GetNapiValue();
|
||||
if (!CheckTypeForNapiValue(env, obj, napi_object)) {
|
||||
HILOG_ERROR("Failed to get JsServiceExtension object");
|
||||
TAG_LOGE(AAFwkTag::SERVICE_EXT, "Failed to get JsServiceExtension object");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -175,7 +176,7 @@ void JsServiceExtension::Init(const std::shared_ptr<AbilityLocalRecord> &record,
|
||||
if (context != nullptr && appContext != nullptr) {
|
||||
auto appConfig = appContext->GetConfiguration();
|
||||
if (appConfig != nullptr) {
|
||||
HILOG_DEBUG("Original config dump: %{public}s", appConfig->GetName().c_str());
|
||||
TAG_LOGD(AAFwkTag::SERVICE_EXT, "Original config dump: %{public}s", appConfig->GetName().c_str());
|
||||
context->SetConfiguration(std::make_shared<Configuration>(*appConfig));
|
||||
}
|
||||
}
|
||||
@@ -185,29 +186,29 @@ void JsServiceExtension::Init(const std::shared_ptr<AbilityLocalRecord> &record,
|
||||
void JsServiceExtension::ListenWMS()
|
||||
{
|
||||
#ifdef SUPPORT_GRAPHICS
|
||||
HILOG_DEBUG("RegisterDisplayListener");
|
||||
TAG_LOGD(AAFwkTag::SERVICE_EXT, "RegisterDisplayListener");
|
||||
auto abilityManager = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
|
||||
if (abilityManager == nullptr) {
|
||||
HILOG_ERROR("Failed to get SaMgr.");
|
||||
TAG_LOGE(AAFwkTag::SERVICE_EXT, "Failed to get SaMgr.");
|
||||
return;
|
||||
}
|
||||
|
||||
auto jsServiceExtension = std::static_pointer_cast<JsServiceExtension>(shared_from_this());
|
||||
displayListener_ = sptr<JsServiceExtensionDisplayListener>::MakeSptr(jsServiceExtension);
|
||||
if (displayListener_ == nullptr) {
|
||||
HILOG_ERROR("Failed to create display listener.");
|
||||
TAG_LOGE(AAFwkTag::SERVICE_EXT, "Failed to create display listener.");
|
||||
return;
|
||||
}
|
||||
|
||||
auto listener = sptr<SystemAbilityStatusChangeListener>::MakeSptr(displayListener_);
|
||||
if (listener == nullptr) {
|
||||
HILOG_ERROR("Failed to create status change listener.");
|
||||
TAG_LOGE(AAFwkTag::SERVICE_EXT, "Failed to create status change listener.");
|
||||
return;
|
||||
}
|
||||
|
||||
auto ret = abilityManager->SubscribeSystemAbility(WINDOW_MANAGER_SERVICE_ID, listener);
|
||||
if (ret != 0) {
|
||||
HILOG_ERROR("subscribe system ability failed, ret = %{public}d.", ret);
|
||||
TAG_LOGE(AAFwkTag::SERVICE_EXT, "subscribe system ability failed, ret = %{public}d.", ret);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
@@ -215,7 +216,7 @@ void JsServiceExtension::ListenWMS()
|
||||
void JsServiceExtension::SystemAbilityStatusChangeListener::OnAddSystemAbility(int32_t systemAbilityId,
|
||||
const std::string& deviceId)
|
||||
{
|
||||
HILOG_DEBUG("systemAbilityId: %{public}d add", systemAbilityId);
|
||||
TAG_LOGD(AAFwkTag::SERVICE_EXT, "systemAbilityId: %{public}d add", systemAbilityId);
|
||||
if (systemAbilityId == WINDOW_MANAGER_SERVICE_ID) {
|
||||
Rosen::DisplayManager::GetInstance().RegisterDisplayListener(tmpDisplayListener_);
|
||||
}
|
||||
@@ -225,26 +226,26 @@ void JsServiceExtension::BindContext(napi_env env, napi_value obj)
|
||||
{
|
||||
auto context = GetContext();
|
||||
if (context == nullptr) {
|
||||
HILOG_ERROR("Failed to get context");
|
||||
TAG_LOGE(AAFwkTag::SERVICE_EXT, "Failed to get context");
|
||||
return;
|
||||
}
|
||||
HILOG_DEBUG("call");
|
||||
TAG_LOGD(AAFwkTag::SERVICE_EXT, "call");
|
||||
napi_value contextObj = CreateJsServiceExtensionContext(env, context);
|
||||
shellContextRef_ = JsRuntime::LoadSystemModuleByEngine(env, "application.ServiceExtensionContext",
|
||||
&contextObj, ARGC_ONE);
|
||||
if (shellContextRef_ == nullptr) {
|
||||
HILOG_ERROR("Failed to load module");
|
||||
TAG_LOGE(AAFwkTag::SERVICE_EXT, "Failed to load module");
|
||||
return;
|
||||
}
|
||||
contextObj = shellContextRef_->GetNapiValue();
|
||||
if (!CheckTypeForNapiValue(env, contextObj, napi_object)) {
|
||||
HILOG_ERROR("Failed to get context native object");
|
||||
TAG_LOGE(AAFwkTag::SERVICE_EXT, "Failed to get context native object");
|
||||
return;
|
||||
}
|
||||
auto workContext = new (std::nothrow) std::weak_ptr<ServiceExtensionContext>(context);
|
||||
napi_coerce_to_native_binding_object(
|
||||
env, contextObj, DetachCallbackFunc, AttachServiceExtensionContext, workContext, nullptr);
|
||||
HILOG_DEBUG("Bind.");
|
||||
TAG_LOGD(AAFwkTag::SERVICE_EXT, "Bind.");
|
||||
context->Bind(jsRuntime_, shellContextRef_.get());
|
||||
napi_set_named_property(env, obj, "context", contextObj);
|
||||
|
||||
@@ -254,19 +255,19 @@ void JsServiceExtension::BindContext(napi_env env, napi_value obj)
|
||||
},
|
||||
nullptr, nullptr);
|
||||
|
||||
HILOG_DEBUG("end.");
|
||||
TAG_LOGD(AAFwkTag::SERVICE_EXT, "end.");
|
||||
}
|
||||
|
||||
void JsServiceExtension::OnStart(const AAFwk::Want &want)
|
||||
{
|
||||
Extension::OnStart(want);
|
||||
HILOG_DEBUG("call");
|
||||
TAG_LOGD(AAFwkTag::SERVICE_EXT, "call");
|
||||
|
||||
auto context = GetContext();
|
||||
if (context != nullptr) {
|
||||
int32_t displayId = static_cast<int32_t>(Rosen::DisplayManager::GetInstance().GetDefaultDisplayId());
|
||||
displayId = want.GetIntParam(Want::PARAM_RESV_DISPLAY_ID, displayId);
|
||||
HILOG_DEBUG("displayId %{public}d", displayId);
|
||||
TAG_LOGD(AAFwkTag::SERVICE_EXT, "displayId %{public}d", displayId);
|
||||
auto configUtils = std::make_shared<ConfigurationUtils>();
|
||||
configUtils->InitDisplayConfig(displayId, context->GetConfiguration(), context->GetResourceManager());
|
||||
}
|
||||
@@ -282,21 +283,21 @@ void JsServiceExtension::OnStart(const AAFwk::Want &want)
|
||||
napi_value napiWant = OHOS::AppExecFwk::WrapWant(env, want);
|
||||
napi_value argv[] = {napiWant};
|
||||
CallObjectMethod("onCreate", argv, ARGC_ONE);
|
||||
HILOG_DEBUG("ok");
|
||||
TAG_LOGD(AAFwkTag::SERVICE_EXT, "ok");
|
||||
}
|
||||
|
||||
void JsServiceExtension::OnStop()
|
||||
{
|
||||
ServiceExtension::OnStop();
|
||||
HILOG_DEBUG("call");
|
||||
TAG_LOGD(AAFwkTag::SERVICE_EXT, "call");
|
||||
CallObjectMethod("onDestroy");
|
||||
bool ret = ConnectionManager::GetInstance().DisconnectCaller(GetContext()->GetToken());
|
||||
if (ret) {
|
||||
ConnectionManager::GetInstance().ReportConnectionLeakEvent(getpid(), gettid());
|
||||
HILOG_DEBUG("The service extension connection is not disconnected.");
|
||||
TAG_LOGD(AAFwkTag::SERVICE_EXT, "The service extension connection is not disconnected.");
|
||||
}
|
||||
Rosen::DisplayManager::GetInstance().UnregisterDisplayListener(displayListener_);
|
||||
HILOG_DEBUG("ok");
|
||||
TAG_LOGD(AAFwkTag::SERVICE_EXT, "ok");
|
||||
}
|
||||
|
||||
sptr<IRemoteObject> JsServiceExtension::OnConnect(const AAFwk::Want &want)
|
||||
@@ -306,7 +307,7 @@ sptr<IRemoteObject> JsServiceExtension::OnConnect(const AAFwk::Want &want)
|
||||
napi_env env = jsRuntime_.GetNapiEnv();
|
||||
auto remoteObj = NAPI_ohos_rpc_getNativeRemoteObject(env, result);
|
||||
if (remoteObj == nullptr) {
|
||||
HILOG_ERROR("remoteObj null.");
|
||||
TAG_LOGE(AAFwkTag::SERVICE_EXT, "remoteObj null.");
|
||||
}
|
||||
return remoteObj;
|
||||
}
|
||||
@@ -322,7 +323,7 @@ sptr<IRemoteObject> JsServiceExtension::OnConnect(const AAFwk::Want &want,
|
||||
isAsyncCallback = false;
|
||||
sptr<IRemoteObject> remoteObj = NAPI_ohos_rpc_getNativeRemoteObject(env, result);
|
||||
if (remoteObj == nullptr) {
|
||||
HILOG_ERROR("remoteObj null.");
|
||||
TAG_LOGE(AAFwkTag::SERVICE_EXT, "remoteObj null.");
|
||||
}
|
||||
return remoteObj;
|
||||
}
|
||||
@@ -330,19 +331,19 @@ sptr<IRemoteObject> JsServiceExtension::OnConnect(const AAFwk::Want &want,
|
||||
bool callResult = false;
|
||||
do {
|
||||
if (!CheckTypeForNapiValue(env, result, napi_object)) {
|
||||
HILOG_ERROR("CallPromise, error to convert native value to NativeObject.");
|
||||
TAG_LOGE(AAFwkTag::SERVICE_EXT, "CallPromise, error to convert native value to NativeObject.");
|
||||
break;
|
||||
}
|
||||
napi_value then = nullptr;
|
||||
napi_get_named_property(env, result, "then", &then);
|
||||
if (then == nullptr) {
|
||||
HILOG_ERROR("CallPromise, error to get property: then.");
|
||||
TAG_LOGE(AAFwkTag::SERVICE_EXT, "CallPromise, error to get property: then.");
|
||||
break;
|
||||
}
|
||||
bool isCallable = false;
|
||||
napi_is_callable(env, then, &isCallable);
|
||||
if (!isCallable) {
|
||||
HILOG_ERROR("CallPromise, property then is not callable");
|
||||
TAG_LOGE(AAFwkTag::SERVICE_EXT, "CallPromise, property then is not callable");
|
||||
break;
|
||||
}
|
||||
napi_value promiseCallback = nullptr;
|
||||
@@ -354,7 +355,7 @@ sptr<IRemoteObject> JsServiceExtension::OnConnect(const AAFwk::Want &want,
|
||||
} while (false);
|
||||
|
||||
if (!callResult) {
|
||||
HILOG_ERROR("error to call promise.");
|
||||
TAG_LOGE(AAFwkTag::SERVICE_EXT, "error to call promise.");
|
||||
isAsyncCallback = false;
|
||||
} else {
|
||||
isAsyncCallback = true;
|
||||
@@ -367,9 +368,9 @@ void JsServiceExtension::OnDisconnect(const AAFwk::Want &want)
|
||||
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
|
||||
HandleScope handleScope(jsRuntime_);
|
||||
Extension::OnDisconnect(want);
|
||||
HILOG_DEBUG("%{public}s begin.", __func__);
|
||||
TAG_LOGD(AAFwkTag::SERVICE_EXT, "%{public}s begin.", __func__);
|
||||
CallOnDisconnect(want, false);
|
||||
HILOG_DEBUG("%{public}s end.", __func__);
|
||||
TAG_LOGD(AAFwkTag::SERVICE_EXT, "%{public}s end.", __func__);
|
||||
}
|
||||
|
||||
void JsServiceExtension::OnDisconnect(const AAFwk::Want &want,
|
||||
@@ -378,7 +379,7 @@ void JsServiceExtension::OnDisconnect(const AAFwk::Want &want,
|
||||
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
|
||||
HandleScope handleScope(jsRuntime_);
|
||||
Extension::OnDisconnect(want);
|
||||
HILOG_DEBUG("%{public}s start.", __func__);
|
||||
TAG_LOGD(AAFwkTag::SERVICE_EXT, "%{public}s start.", __func__);
|
||||
napi_value result = CallOnDisconnect(want, true);
|
||||
bool isPromise = CheckPromise(result);
|
||||
if (!isPromise) {
|
||||
@@ -387,19 +388,19 @@ void JsServiceExtension::OnDisconnect(const AAFwk::Want &want,
|
||||
}
|
||||
bool callResult = CallPromise(result, callbackInfo);
|
||||
if (!callResult) {
|
||||
HILOG_ERROR("error to call promise.");
|
||||
TAG_LOGE(AAFwkTag::SERVICE_EXT, "error to call promise.");
|
||||
isAsyncCallback = false;
|
||||
} else {
|
||||
isAsyncCallback = true;
|
||||
}
|
||||
|
||||
HILOG_DEBUG("%{public}s end.", __func__);
|
||||
TAG_LOGD(AAFwkTag::SERVICE_EXT, "%{public}s end.", __func__);
|
||||
}
|
||||
|
||||
void JsServiceExtension::OnCommand(const AAFwk::Want &want, bool restart, int startId)
|
||||
{
|
||||
Extension::OnCommand(want, restart, startId);
|
||||
HILOG_DEBUG("restart=%{public}s,startId=%{public}d.",
|
||||
TAG_LOGD(AAFwkTag::SERVICE_EXT, "restart=%{public}s,startId=%{public}d.",
|
||||
restart ? "true" : "false",
|
||||
startId);
|
||||
// wrap want
|
||||
@@ -411,48 +412,49 @@ void JsServiceExtension::OnCommand(const AAFwk::Want &want, bool restart, int st
|
||||
napi_create_int32(env, startId, &napiStartId);
|
||||
napi_value argv[] = {napiWant, napiStartId};
|
||||
CallObjectMethod("onRequest", argv, ARGC_TWO);
|
||||
HILOG_DEBUG("ok");
|
||||
TAG_LOGD(AAFwkTag::SERVICE_EXT, "ok");
|
||||
}
|
||||
|
||||
bool JsServiceExtension::HandleInsightIntent(const AAFwk::Want &want)
|
||||
{
|
||||
HILOG_DEBUG("called.");
|
||||
TAG_LOGD(AAFwkTag::SERVICE_EXT, "called.");
|
||||
auto callback = std::make_unique<InsightIntentExecutorAsyncCallback>();
|
||||
callback.reset(InsightIntentExecutorAsyncCallback::Create());
|
||||
if (callback == nullptr) {
|
||||
HILOG_ERROR("Create async callback failed.");
|
||||
TAG_LOGE(AAFwkTag::SERVICE_EXT, "Create async callback failed.");
|
||||
return false;
|
||||
}
|
||||
auto executeParam = std::make_shared<AppExecFwk::InsightIntentExecuteParam>();
|
||||
bool ret = AppExecFwk::InsightIntentExecuteParam::GenerateFromWant(want, *executeParam);
|
||||
if (!ret) {
|
||||
HILOG_ERROR("Generate execute param failed.");
|
||||
TAG_LOGE(AAFwkTag::SERVICE_EXT, "Generate execute param failed.");
|
||||
InsightIntentExecutorMgr::TriggerCallbackInner(std::move(callback),
|
||||
static_cast<int32_t>(AbilityErrorCode::ERROR_CODE_INVALID_PARAM));
|
||||
return false;
|
||||
}
|
||||
HILOG_DEBUG("Insight intent bundleName: %{public}s, moduleName: %{public}s, abilityName: %{public}s"
|
||||
"insightIntentName: %{public}s, executeMode: %{public}d, intentId: %{public}" PRIu64"",
|
||||
TAG_LOGD(AAFwkTag::SERVICE_EXT,
|
||||
"Insight intent bundleName: %{public}s, moduleName: %{public}s, abilityName: %{public}s"
|
||||
"insightIntentName: %{public}s, executeMode: %{public}d, intentId: %{public}" PRIu64 "",
|
||||
executeParam->bundleName_.c_str(), executeParam->moduleName_.c_str(), executeParam->abilityName_.c_str(),
|
||||
executeParam->insightIntentName_.c_str(), executeParam->executeMode_, executeParam->insightIntentId_);
|
||||
auto asyncCallback = [weak = weak_from_this(), intentId = executeParam->insightIntentId_]
|
||||
(AppExecFwk::InsightIntentExecuteResult result) {
|
||||
HILOG_DEBUG("Execute insight intent finshed, intentId %{public}" PRIu64"", intentId);
|
||||
TAG_LOGD(AAFwkTag::SERVICE_EXT, "Execute insight intent finshed, intentId %{public}" PRIu64"", intentId);
|
||||
auto extension = weak.lock();
|
||||
if (extension == nullptr) {
|
||||
HILOG_ERROR("extension is nullptr.");
|
||||
TAG_LOGE(AAFwkTag::SERVICE_EXT, "extension is nullptr.");
|
||||
return;
|
||||
}
|
||||
auto ret = extension->OnInsightIntentExecuteDone(intentId, result);
|
||||
if (!ret) {
|
||||
HILOG_ERROR("OnInsightIntentExecuteDone failed.");
|
||||
TAG_LOGE(AAFwkTag::SERVICE_EXT, "OnInsightIntentExecuteDone failed.");
|
||||
}
|
||||
};
|
||||
callback->Push(asyncCallback);
|
||||
InsightIntentExecutorInfo executorInfo;
|
||||
ret = GetInsightIntentExecutorInfo(want, executeParam, executorInfo);
|
||||
if (!ret) {
|
||||
HILOG_ERROR("Get Intent executor failed.");
|
||||
TAG_LOGE(AAFwkTag::SERVICE_EXT, "Get Intent executor failed.");
|
||||
InsightIntentExecutorMgr::TriggerCallbackInner(std::move(callback),
|
||||
static_cast<int32_t>(AbilityErrorCode::ERROR_CODE_INVALID_PARAM));
|
||||
return false;
|
||||
@@ -460,7 +462,7 @@ bool JsServiceExtension::HandleInsightIntent(const AAFwk::Want &want)
|
||||
ret = DelayedSingleton<InsightIntentExecutorMgr>::GetInstance()->ExecuteInsightIntent(
|
||||
jsRuntime_, executorInfo, std::move(callback));
|
||||
if (!ret) {
|
||||
HILOG_ERROR("Execute insight intent failed.");
|
||||
TAG_LOGE(AAFwkTag::SERVICE_EXT, "Execute insight intent failed.");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
@@ -470,10 +472,10 @@ bool JsServiceExtension::GetInsightIntentExecutorInfo(const Want &want,
|
||||
const std::shared_ptr<AppExecFwk::InsightIntentExecuteParam> &executeParam,
|
||||
InsightIntentExecutorInfo &executorInfo)
|
||||
{
|
||||
HILOG_DEBUG("called.");
|
||||
TAG_LOGD(AAFwkTag::SERVICE_EXT, "called.");
|
||||
auto context = GetContext();
|
||||
if (executeParam == nullptr || context == nullptr || abilityInfo_ == nullptr) {
|
||||
HILOG_ERROR("Param invalid.");
|
||||
TAG_LOGE(AAFwkTag::SERVICE_EXT, "Param invalid.");
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -489,20 +491,20 @@ bool JsServiceExtension::GetInsightIntentExecutorInfo(const Want &want,
|
||||
bool JsServiceExtension::OnInsightIntentExecuteDone(uint64_t intentId,
|
||||
const AppExecFwk::InsightIntentExecuteResult &result)
|
||||
{
|
||||
HILOG_INFO("Notify execute done, intentId %{public}" PRIu64"", intentId);
|
||||
TAG_LOGI(AAFwkTag::SERVICE_EXT, "Notify execute done, intentId %{public}" PRIu64"", intentId);
|
||||
auto context = GetContext();
|
||||
if (context == nullptr) {
|
||||
HILOG_ERROR("context is null.");
|
||||
TAG_LOGE(AAFwkTag::SERVICE_EXT, "context is null.");
|
||||
return false;
|
||||
}
|
||||
auto token = context->GetToken();
|
||||
if (token == nullptr) {
|
||||
HILOG_ERROR("token is null.");
|
||||
TAG_LOGE(AAFwkTag::SERVICE_EXT, "token is null.");
|
||||
return false;
|
||||
}
|
||||
auto ret = AAFwk::AbilityManagerClient::GetInstance()->ExecuteInsightIntentDone(token, intentId, result);
|
||||
if (ret != ERR_OK) {
|
||||
HILOG_ERROR("Notify execute done faild.");
|
||||
TAG_LOGE(AAFwkTag::SERVICE_EXT, "Notify execute done faild.");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
@@ -510,10 +512,10 @@ bool JsServiceExtension::OnInsightIntentExecuteDone(uint64_t intentId,
|
||||
|
||||
napi_value JsServiceExtension::CallObjectMethod(const char* name, napi_value const* argv, size_t argc)
|
||||
{
|
||||
HILOG_DEBUG("name:%{public}s", name);
|
||||
TAG_LOGD(AAFwkTag::SERVICE_EXT, "name:%{public}s", name);
|
||||
|
||||
if (!jsObj_) {
|
||||
HILOG_WARN("Not found ServiceExtension.js");
|
||||
TAG_LOGW(AAFwkTag::SERVICE_EXT, "Not found ServiceExtension.js");
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
@@ -522,17 +524,17 @@ napi_value JsServiceExtension::CallObjectMethod(const char* name, napi_value con
|
||||
|
||||
napi_value obj = jsObj_->GetNapiValue();
|
||||
if (!CheckTypeForNapiValue(env, obj, napi_object)) {
|
||||
HILOG_ERROR("Failed to get ServiceExtension object");
|
||||
TAG_LOGE(AAFwkTag::SERVICE_EXT, "Failed to get ServiceExtension object");
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
napi_value method = nullptr;
|
||||
napi_get_named_property(env, obj, name, &method);
|
||||
if (!CheckTypeForNapiValue(env, method, napi_function)) {
|
||||
HILOG_ERROR("Failed to get '%{public}s' from ServiceExtension object", name);
|
||||
TAG_LOGE(AAFwkTag::SERVICE_EXT, "Failed to get '%{public}s' from ServiceExtension object", name);
|
||||
return nullptr;
|
||||
}
|
||||
HILOG_DEBUG("CallFunction(%{public}s) ok", name);
|
||||
TAG_LOGD(AAFwkTag::SERVICE_EXT, "CallFunction(%{public}s) ok", name);
|
||||
napi_value result = nullptr;
|
||||
napi_call_function(env, obj, method, argc, argv, &result);
|
||||
return result;
|
||||
@@ -540,7 +542,7 @@ napi_value JsServiceExtension::CallObjectMethod(const char* name, napi_value con
|
||||
|
||||
void JsServiceExtension::GetSrcPath(std::string &srcPath)
|
||||
{
|
||||
HILOG_DEBUG("GetSrcPath start.");
|
||||
TAG_LOGD(AAFwkTag::SERVICE_EXT, "GetSrcPath start.");
|
||||
if (!Extension::abilityInfo_->isModuleJson) {
|
||||
/* temporary compatibility api8 + config.json */
|
||||
srcPath.append(Extension::abilityInfo_->package);
|
||||
@@ -564,33 +566,33 @@ napi_value JsServiceExtension::CallOnConnect(const AAFwk::Want &want)
|
||||
{
|
||||
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
|
||||
Extension::OnConnect(want);
|
||||
HILOG_DEBUG("call");
|
||||
TAG_LOGD(AAFwkTag::SERVICE_EXT, "call");
|
||||
napi_env env = jsRuntime_.GetNapiEnv();
|
||||
napi_value napiWant = OHOS::AppExecFwk::WrapWant(env, want);
|
||||
napi_value argv[] = {napiWant};
|
||||
if (!jsObj_) {
|
||||
HILOG_WARN("Not found ServiceExtension.js");
|
||||
TAG_LOGW(AAFwkTag::SERVICE_EXT, "Not found ServiceExtension.js");
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
napi_value obj = jsObj_->GetNapiValue();
|
||||
if (!CheckTypeForNapiValue(env, obj, napi_object)) {
|
||||
HILOG_ERROR("Failed to get ServiceExtension object");
|
||||
TAG_LOGE(AAFwkTag::SERVICE_EXT, "Failed to get ServiceExtension object");
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
napi_value method = nullptr;
|
||||
napi_get_named_property(env, obj, "onConnect", &method);
|
||||
if (method == nullptr) {
|
||||
HILOG_ERROR("Failed to get onConnect from ServiceExtension object");
|
||||
TAG_LOGE(AAFwkTag::SERVICE_EXT, "Failed to get onConnect from ServiceExtension object");
|
||||
return nullptr;
|
||||
}
|
||||
napi_value remoteNative = nullptr;
|
||||
napi_call_function(env, obj, method, ARGC_ONE, argv, &remoteNative);
|
||||
if (remoteNative == nullptr) {
|
||||
HILOG_ERROR("remoteNative nullptr.");
|
||||
TAG_LOGE(AAFwkTag::SERVICE_EXT, "remoteNative nullptr.");
|
||||
}
|
||||
HILOG_DEBUG("ok");
|
||||
TAG_LOGD(AAFwkTag::SERVICE_EXT, "ok");
|
||||
return remoteNative;
|
||||
}
|
||||
|
||||
@@ -601,20 +603,20 @@ napi_value JsServiceExtension::CallOnDisconnect(const AAFwk::Want &want, bool wi
|
||||
napi_value napiWant = OHOS::AppExecFwk::WrapWant(env, want);
|
||||
napi_value argv[] = { napiWant };
|
||||
if (!jsObj_) {
|
||||
HILOG_WARN("Not found ServiceExtension.js");
|
||||
TAG_LOGW(AAFwkTag::SERVICE_EXT, "Not found ServiceExtension.js");
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
napi_value obj = jsObj_->GetNapiValue();
|
||||
if (!CheckTypeForNapiValue(env, obj, napi_object)) {
|
||||
HILOG_ERROR("Failed to get ServiceExtension object");
|
||||
TAG_LOGE(AAFwkTag::SERVICE_EXT, "Failed to get ServiceExtension object");
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
napi_value method = nullptr;
|
||||
napi_get_named_property(env, obj, "onDisconnect", &method);
|
||||
if (method == nullptr) {
|
||||
HILOG_ERROR("Failed to get onDisconnect from ServiceExtension object");
|
||||
TAG_LOGE(AAFwkTag::SERVICE_EXT, "Failed to get onDisconnect from ServiceExtension object");
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
@@ -631,14 +633,14 @@ napi_value JsServiceExtension::CallOnDisconnect(const AAFwk::Want &want, bool wi
|
||||
bool JsServiceExtension::CheckPromise(napi_value result)
|
||||
{
|
||||
if (result == nullptr) {
|
||||
HILOG_DEBUG("CheckPromise, result is nullptr, no need to call promise.");
|
||||
TAG_LOGD(AAFwkTag::SERVICE_EXT, "CheckPromise, result is nullptr, no need to call promise.");
|
||||
return false;
|
||||
}
|
||||
napi_env env = jsRuntime_.GetNapiEnv();
|
||||
bool isPromise = false;
|
||||
napi_is_promise(env, result, &isPromise);
|
||||
if (!isPromise) {
|
||||
HILOG_DEBUG("CheckPromise, result is not promise, no need to call promise.");
|
||||
TAG_LOGD(AAFwkTag::SERVICE_EXT, "CheckPromise, result is not promise, no need to call promise.");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
@@ -648,19 +650,19 @@ bool JsServiceExtension::CallPromise(napi_value result, AppExecFwk::AbilityTrans
|
||||
{
|
||||
napi_env env = jsRuntime_.GetNapiEnv();
|
||||
if (!CheckTypeForNapiValue(env, result, napi_object)) {
|
||||
HILOG_ERROR("CallPromise, Error to convert native value to NativeObject.");
|
||||
TAG_LOGE(AAFwkTag::SERVICE_EXT, "CallPromise, Error to convert native value to NativeObject.");
|
||||
return false;
|
||||
}
|
||||
napi_value then = nullptr;
|
||||
napi_get_named_property(env, result, "then", &then);
|
||||
if (then == nullptr) {
|
||||
HILOG_ERROR("CallPromise, Error to get property: then.");
|
||||
TAG_LOGE(AAFwkTag::SERVICE_EXT, "CallPromise, Error to get property: then.");
|
||||
return false;
|
||||
}
|
||||
bool isCallable = false;
|
||||
napi_is_callable(env, then, &isCallable);
|
||||
if (!isCallable) {
|
||||
HILOG_ERROR("CallPromise, Property then is not callable.");
|
||||
TAG_LOGE(AAFwkTag::SERVICE_EXT, "CallPromise, Property then is not callable.");
|
||||
return false;
|
||||
}
|
||||
HandleScope handleScope(jsRuntime_);
|
||||
@@ -669,43 +671,43 @@ bool JsServiceExtension::CallPromise(napi_value result, AppExecFwk::AbilityTrans
|
||||
callbackInfo, &promiseCallback);
|
||||
napi_value argv[1] = { promiseCallback };
|
||||
napi_call_function(env, result, then, 1, argv, nullptr);
|
||||
HILOG_DEBUG("end");
|
||||
TAG_LOGD(AAFwkTag::SERVICE_EXT, "end");
|
||||
return true;
|
||||
}
|
||||
|
||||
void JsServiceExtension::OnConfigurationUpdated(const AppExecFwk::Configuration& configuration)
|
||||
{
|
||||
ServiceExtension::OnConfigurationUpdated(configuration);
|
||||
HILOG_DEBUG("call");
|
||||
TAG_LOGD(AAFwkTag::SERVICE_EXT, "call");
|
||||
auto context = GetContext();
|
||||
if (context == nullptr) {
|
||||
HILOG_ERROR("Context is invalid.");
|
||||
TAG_LOGE(AAFwkTag::SERVICE_EXT, "Context is invalid.");
|
||||
return;
|
||||
}
|
||||
|
||||
auto contextConfig = context->GetConfiguration();
|
||||
if (contextConfig != nullptr) {
|
||||
HILOG_DEBUG("Config dump: %{public}s", contextConfig->GetName().c_str());
|
||||
TAG_LOGD(AAFwkTag::SERVICE_EXT, "Config dump: %{public}s", contextConfig->GetName().c_str());
|
||||
std::vector<std::string> changeKeyV;
|
||||
contextConfig->CompareDifferent(changeKeyV, configuration);
|
||||
if (!changeKeyV.empty()) {
|
||||
contextConfig->Merge(changeKeyV, configuration);
|
||||
}
|
||||
HILOG_DEBUG("Config dump after merge: %{public}s", contextConfig->GetName().c_str());
|
||||
TAG_LOGD(AAFwkTag::SERVICE_EXT, "Config dump after merge: %{public}s", contextConfig->GetName().c_str());
|
||||
}
|
||||
ConfigurationUpdated();
|
||||
}
|
||||
|
||||
void JsServiceExtension::ConfigurationUpdated()
|
||||
{
|
||||
HILOG_DEBUG("called.");
|
||||
TAG_LOGD(AAFwkTag::SERVICE_EXT, "called.");
|
||||
HandleScope handleScope(jsRuntime_);
|
||||
napi_env env = jsRuntime_.GetNapiEnv();
|
||||
|
||||
// Notify extension context
|
||||
auto fullConfig = GetContext()->GetConfiguration();
|
||||
if (!fullConfig) {
|
||||
HILOG_ERROR("configuration is nullptr.");
|
||||
TAG_LOGE(AAFwkTag::SERVICE_EXT, "configuration is nullptr.");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -718,20 +720,20 @@ void JsServiceExtension::ConfigurationUpdated()
|
||||
void JsServiceExtension::Dump(const std::vector<std::string> ¶ms, std::vector<std::string> &info)
|
||||
{
|
||||
Extension::Dump(params, info);
|
||||
HILOG_DEBUG("call");
|
||||
TAG_LOGD(AAFwkTag::SERVICE_EXT, "call");
|
||||
HandleScope handleScope(jsRuntime_);
|
||||
napi_env env = jsRuntime_.GetNapiEnv();
|
||||
// create js array object of params
|
||||
napi_value argv[] = { CreateNativeArray(env, params) };
|
||||
|
||||
if (!jsObj_) {
|
||||
HILOG_WARN("Not found ServiceExtension.js");
|
||||
TAG_LOGW(AAFwkTag::SERVICE_EXT, "Not found ServiceExtension.js");
|
||||
return;
|
||||
}
|
||||
|
||||
napi_value obj = jsObj_->GetNapiValue();
|
||||
if (!CheckTypeForNapiValue(env, obj, napi_object)) {
|
||||
HILOG_ERROR("Failed to get ServiceExtension object");
|
||||
TAG_LOGE(AAFwkTag::SERVICE_EXT, "Failed to get ServiceExtension object");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -741,15 +743,15 @@ void JsServiceExtension::Dump(const std::vector<std::string> ¶ms, std::vecto
|
||||
method = nullptr;
|
||||
napi_get_named_property(env, obj, "dump", &method);
|
||||
if (!CheckTypeForNapiValue(env, method, napi_function)) {
|
||||
HILOG_ERROR("Failed to get onConnect from ServiceExtension object");
|
||||
TAG_LOGE(AAFwkTag::SERVICE_EXT, "Failed to get onConnect from ServiceExtension object");
|
||||
return;
|
||||
}
|
||||
}
|
||||
HILOG_DEBUG("success");
|
||||
TAG_LOGD(AAFwkTag::SERVICE_EXT, "success");
|
||||
napi_value dumpInfo = nullptr;
|
||||
napi_call_function(env, obj, method, ARGC_ONE, argv, &dumpInfo);
|
||||
if (dumpInfo == nullptr) {
|
||||
HILOG_ERROR("dumpInfo nullptr.");
|
||||
TAG_LOGE(AAFwkTag::SERVICE_EXT, "dumpInfo nullptr.");
|
||||
return;
|
||||
}
|
||||
uint32_t len = 0;
|
||||
@@ -759,45 +761,45 @@ void JsServiceExtension::Dump(const std::vector<std::string> ¶ms, std::vecto
|
||||
napi_value element = nullptr;
|
||||
napi_get_element(env, dumpInfo, i, &element);
|
||||
if (!ConvertFromJsValue(env, element, dumpInfoStr)) {
|
||||
HILOG_ERROR("Parse dumpInfoStr failed.");
|
||||
TAG_LOGE(AAFwkTag::SERVICE_EXT, "Parse dumpInfoStr failed.");
|
||||
return;
|
||||
}
|
||||
info.push_back(dumpInfoStr);
|
||||
}
|
||||
HILOG_DEBUG("Dump info size: %{public}zu", info.size());
|
||||
TAG_LOGD(AAFwkTag::SERVICE_EXT, "Dump info size: %{public}zu", info.size());
|
||||
}
|
||||
|
||||
#ifdef SUPPORT_GRAPHICS
|
||||
void JsServiceExtension::OnCreate(Rosen::DisplayId displayId)
|
||||
{
|
||||
HILOG_DEBUG("enter.");
|
||||
TAG_LOGD(AAFwkTag::SERVICE_EXT, "enter.");
|
||||
}
|
||||
|
||||
void JsServiceExtension::OnDestroy(Rosen::DisplayId displayId)
|
||||
{
|
||||
HILOG_DEBUG("exit.");
|
||||
TAG_LOGD(AAFwkTag::SERVICE_EXT, "exit.");
|
||||
}
|
||||
|
||||
void JsServiceExtension::OnChange(Rosen::DisplayId displayId)
|
||||
{
|
||||
HILOG_DEBUG("displayId: %{public}" PRIu64"", displayId);
|
||||
TAG_LOGD(AAFwkTag::SERVICE_EXT, "displayId: %{public}" PRIu64"", displayId);
|
||||
auto context = GetContext();
|
||||
if (context == nullptr) {
|
||||
HILOG_ERROR("Context is invalid.");
|
||||
TAG_LOGE(AAFwkTag::SERVICE_EXT, "Context is invalid.");
|
||||
return;
|
||||
}
|
||||
|
||||
auto contextConfig = context->GetConfiguration();
|
||||
if (contextConfig == nullptr) {
|
||||
HILOG_ERROR("Configuration is invalid.");
|
||||
TAG_LOGE(AAFwkTag::SERVICE_EXT, "Configuration is invalid.");
|
||||
return;
|
||||
}
|
||||
|
||||
HILOG_DEBUG("Config dump: %{public}s", contextConfig->GetName().c_str());
|
||||
TAG_LOGD(AAFwkTag::SERVICE_EXT, "Config dump: %{public}s", contextConfig->GetName().c_str());
|
||||
bool configChanged = false;
|
||||
auto configUtils = std::make_shared<ConfigurationUtils>();
|
||||
configUtils->UpdateDisplayConfig(displayId, contextConfig, context->GetResourceManager(), configChanged);
|
||||
HILOG_DEBUG("Config dump after update: %{public}s", contextConfig->GetName().c_str());
|
||||
TAG_LOGD(AAFwkTag::SERVICE_EXT, "Config dump after update: %{public}s", contextConfig->GetName().c_str());
|
||||
|
||||
if (configChanged) {
|
||||
auto jsServiceExtension = std::static_pointer_cast<JsServiceExtension>(shared_from_this());
|
||||
@@ -811,7 +813,7 @@ void JsServiceExtension::OnChange(Rosen::DisplayId displayId)
|
||||
}
|
||||
}
|
||||
|
||||
HILOG_DEBUG("finished.");
|
||||
TAG_LOGD(AAFwkTag::SERVICE_EXT, "finished.");
|
||||
}
|
||||
#endif
|
||||
} // AbilityRuntime
|
||||
|
||||
Reference in New Issue
Block a user