From f842316e46d8042371c7e42a821418ceeee893e6 Mon Sep 17 00:00:00 2001 From: songbao1 Date: Fri, 6 Jun 2025 15:05:11 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=A4=9A=E7=BA=BF?= =?UTF-8?q?=E7=A8=8B=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: songbao1 --- .../napi/src/manager/napi_open_settings.cpp | 39 ++++++++++--------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/frameworks/js/napi/src/manager/napi_open_settings.cpp b/frameworks/js/napi/src/manager/napi_open_settings.cpp index cda74b8d7..de2fc6b1d 100644 --- a/frameworks/js/napi/src/manager/napi_open_settings.cpp +++ b/frameworks/js/napi/src/manager/napi_open_settings.cpp @@ -76,35 +76,36 @@ napi_value NapiOpenNotificationSettings(napi_env env, napi_callback_info info) napi_create_string_latin1(env, "openNotificationSettings", NAPI_AUTO_LENGTH, &resourceName); auto createExtension = [](napi_env env, void* data) { + }; + auto jsCb = [](napi_env env, napi_status status, void* data) { ANS_LOGD("enter"); if (data == nullptr) { ANS_LOGE("data is invalid"); return; } auto* asynccallbackinfo = static_cast(data); - - if (asynccallbackinfo->params.context != nullptr) { - ANS_LOGD("stage mode"); - std::string bundleName {""}; - if (isExist.exchange(true)) { - ANS_LOGE("SettingsUIExtension existed"); - asynccallbackinfo->info.errorCode = ERROR_SETTING_WINDOW_EXIST; - return; - } - bool success = CreateSettingsUIExtension(asynccallbackinfo->params.context, bundleName); - if (success) { - asynccallbackinfo->info.errorCode = ERR_ANS_DIALOG_POP_SUCCEEDED; + while (true) { + if (asynccallbackinfo->params.context != nullptr) { + ANS_LOGD("stage mode"); + std::string bundleName {""}; + if (isExist.exchange(true)) { + ANS_LOGE("SettingsUIExtension existed"); + asynccallbackinfo->info.errorCode = ERROR_SETTING_WINDOW_EXIST; + break; + } + bool success = CreateSettingsUIExtension(asynccallbackinfo->params.context, bundleName); + if (success) { + asynccallbackinfo->info.errorCode = ERR_ANS_DIALOG_POP_SUCCEEDED; + } else { + asynccallbackinfo->info.errorCode = ERROR_INTERNAL_ERROR; + } } else { asynccallbackinfo->info.errorCode = ERROR_INTERNAL_ERROR; } - } else { - ANS_LOGD("un stage mode"); + ANS_LOGI("done, code is %{public}d.", asynccallbackinfo->info.errorCode); + break; } - ANS_LOGI("done, code is %{public}d.", asynccallbackinfo->info.errorCode); - }; - auto jsCb = [](napi_env env, napi_status status, void* data) { - ANS_LOGD("enter jsCb"); - auto* asynccallbackinfo = static_cast(data); + ErrCode errCode = asynccallbackinfo->info.errorCode; if (errCode != ERR_ANS_DIALOG_POP_SUCCEEDED) { ANS_LOGE("error, code is %{public}d.", errCode); -- Gitee From 24ebf6ef2e347aad1c1ea657d4bbcb5a54e5399c Mon Sep 17 00:00:00 2001 From: songbao1 Date: Fri, 6 Jun 2025 16:15:53 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=A4=9A=E7=BA=BF?= =?UTF-8?q?=E7=A8=8B=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: songbao1 --- .../napi/include/manager/napi_open_settings.h | 1 + .../napi/src/manager/napi_open_settings.cpp | 45 ++++++++++--------- 2 files changed, 24 insertions(+), 22 deletions(-) diff --git a/frameworks/js/napi/include/manager/napi_open_settings.h b/frameworks/js/napi/include/manager/napi_open_settings.h index 925e03954..ebf5b9188 100644 --- a/frameworks/js/napi/include/manager/napi_open_settings.h +++ b/frameworks/js/napi/include/manager/napi_open_settings.h @@ -43,6 +43,7 @@ napi_value ParseOpenSettingsParameters(const napi_env &env, const napi_callback_ bool CreateSettingsUIExtension(std::shared_ptr context, std::string &bundleName); bool Init(napi_env env, AsyncCallbackInfoOpenSettings* callbackInfo, JsAnsCallbackComplete complete); void ProcessStatusChanged(int32_t code); +void CreateExtension(AsyncCallbackInfoOpenSettings* asynccallbackinfo); class SettingsModalExtensionCallback { public: diff --git a/frameworks/js/napi/src/manager/napi_open_settings.cpp b/frameworks/js/napi/src/manager/napi_open_settings.cpp index de2fc6b1d..f4acf5ac2 100644 --- a/frameworks/js/napi/src/manager/napi_open_settings.cpp +++ b/frameworks/js/napi/src/manager/napi_open_settings.cpp @@ -84,28 +84,7 @@ napi_value NapiOpenNotificationSettings(napi_env env, napi_callback_info info) return; } auto* asynccallbackinfo = static_cast(data); - while (true) { - if (asynccallbackinfo->params.context != nullptr) { - ANS_LOGD("stage mode"); - std::string bundleName {""}; - if (isExist.exchange(true)) { - ANS_LOGE("SettingsUIExtension existed"); - asynccallbackinfo->info.errorCode = ERROR_SETTING_WINDOW_EXIST; - break; - } - bool success = CreateSettingsUIExtension(asynccallbackinfo->params.context, bundleName); - if (success) { - asynccallbackinfo->info.errorCode = ERR_ANS_DIALOG_POP_SUCCEEDED; - } else { - asynccallbackinfo->info.errorCode = ERROR_INTERNAL_ERROR; - } - } else { - asynccallbackinfo->info.errorCode = ERROR_INTERNAL_ERROR; - } - ANS_LOGI("done, code is %{public}d.", asynccallbackinfo->info.errorCode); - break; - } - + CreateExtension(asynccallbackinfo); ErrCode errCode = asynccallbackinfo->info.errorCode; if (errCode != ERR_ANS_DIALOG_POP_SUCCEEDED) { ANS_LOGE("error, code is %{public}d.", errCode); @@ -308,6 +287,28 @@ void ProcessStatusChanged(int32_t code) work.release(); } +void CreateExtension(AsyncCallbackInfoOpenSettings* asynccallbackinfo) +{ + if (asynccallbackinfo->params.context != nullptr) { + ANS_LOGD("stage mode"); + std::string bundleName {""}; + if (isExist.exchange(true)) { + ANS_LOGE("SettingsUIExtension existed"); + asynccallbackinfo->info.errorCode = ERROR_SETTING_WINDOW_EXIST; + return; + } + bool success = CreateSettingsUIExtension(asynccallbackinfo->params.context, bundleName); + if (success) { + asynccallbackinfo->info.errorCode = ERR_ANS_DIALOG_POP_SUCCEEDED; + } else { + asynccallbackinfo->info.errorCode = ERROR_INTERNAL_ERROR; + } + } else { + asynccallbackinfo->info.errorCode = ERROR_INTERNAL_ERROR; + } + ANS_LOGI("done, code is %{public}d.", asynccallbackinfo->info.errorCode); +} + SettingsModalExtensionCallback::SettingsModalExtensionCallback() {} -- Gitee From 24cd7c22c38f5587d352be69fd7e51d620b62823 Mon Sep 17 00:00:00 2001 From: songbao1 Date: Sat, 7 Jun 2025 09:09:47 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=A4=9A=E7=BA=BF?= =?UTF-8?q?=E7=A8=8B=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: songbao1 --- frameworks/core/test/unittest/mock/mock_image_source.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frameworks/core/test/unittest/mock/mock_image_source.cpp b/frameworks/core/test/unittest/mock/mock_image_source.cpp index eba113721..f22eca363 100644 --- a/frameworks/core/test/unittest/mock/mock_image_source.cpp +++ b/frameworks/core/test/unittest/mock/mock_image_source.cpp @@ -69,7 +69,7 @@ std::unique_ptr ImageSource::CreateImageSource(std::unique_ptr ImageSource::CreateImageSource(const uint8_t *data, uint32_t size, - const SourceOptions &opts, uint32_t &errorCode) + const SourceOptions &opts, uint32_t &errorCode, bool isUserBuffer) { errorCode = g_mockImageSourceCreateImageSourceErrorCode; if (g_mockImageSourceCreateImageSourceRet) { -- Gitee From 4022430868382e4863e98e550f24a8accbb48da2 Mon Sep 17 00:00:00 2001 From: songbao1 Date: Sat, 7 Jun 2025 11:09:40 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=A4=9A=E7=BA=BF?= =?UTF-8?q?=E7=A8=8B=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: songbao1 --- frameworks/js/napi/src/manager/napi_open_settings.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/frameworks/js/napi/src/manager/napi_open_settings.cpp b/frameworks/js/napi/src/manager/napi_open_settings.cpp index f4acf5ac2..7fc9a8728 100644 --- a/frameworks/js/napi/src/manager/napi_open_settings.cpp +++ b/frameworks/js/napi/src/manager/napi_open_settings.cpp @@ -89,7 +89,9 @@ napi_value NapiOpenNotificationSettings(napi_env env, napi_callback_info info) if (errCode != ERR_ANS_DIALOG_POP_SUCCEEDED) { ANS_LOGE("error, code is %{public}d.", errCode); NapiAsyncCompleteCallbackOpenSettings(env, static_cast(asynccallbackinfo)); - isExist.store(false); + if (errCode != ERROR_SETTING_WINDOW_EXIST) { + isExist.store(false); + } return; } if (!Init(env, asynccallbackinfo, NapiAsyncCompleteCallbackOpenSettings)) { -- Gitee