diff --git a/frameworks/core/test/unittest/mock/mock_image_source.cpp b/frameworks/core/test/unittest/mock/mock_image_source.cpp index eba11372127ebfc1f38ead6e7a6f6da04ed95960..f22eca3630f937cdeeec6e06f2860c1e62f9f568 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) { diff --git a/frameworks/js/napi/include/manager/napi_open_settings.h b/frameworks/js/napi/include/manager/napi_open_settings.h index 925e03954837f55cf72ad4e70a4eee3388fd9a64..ebf5b9188d4652fe8f656d2ce3e16b5cd48734fb 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 cda74b8d73e60f3c68f87770cce5a7a86c1daa8a..7fc9a872886be86a7c454d005e9c9636592355f7 100644 --- a/frameworks/js/napi/src/manager/napi_open_settings.cpp +++ b/frameworks/js/napi/src/manager/napi_open_settings.cpp @@ -76,40 +76,22 @@ 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; - } else { - asynccallbackinfo->info.errorCode = ERROR_INTERNAL_ERROR; - } - } else { - ANS_LOGD("un stage mode"); - } - 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); + CreateExtension(asynccallbackinfo); ErrCode errCode = asynccallbackinfo->info.errorCode; 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)) { @@ -307,6 +289,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() {}