diff --git a/interfaces/kits/picker/picker.js b/interfaces/kits/picker/picker.js index ba7200c3962587ccec5cb1dccf9d153846206642..f4e70ade1c92b8434b1defffa1c1534da1eb5458 100644 --- a/interfaces/kits/picker/picker.js +++ b/interfaces/kits/picker/picker.js @@ -353,6 +353,9 @@ function getDocumentPickerSelectResult(args) { } else if (args.ability_params_udkey) { selectResult.data = args.ability_params_udkey; selectResult.error = args.resultCode; + } else { + selectResult.data = []; + selectResult.error = RESULT_CODE_ERROR; } } else if (args.resultCode === RESULT_CODE_ERROR) { selectResult.data = []; @@ -490,6 +493,9 @@ function getDocumentPickerSaveResult(args) { if (args.userSuffixIndex >= 0) { saveResult.suffix = args.userSuffixIndex; } + } else { + saveResult.data = []; + saveResult.error = RESULT_CODE_ERROR; } } else if (args.resultCode === RESULT_CODE_ERROR) { saveResult.data = []; diff --git a/interfaces/kits/picker/src/modal_ui_callback.cpp b/interfaces/kits/picker/src/modal_ui_callback.cpp index d9b57398102033a6f10a99761f5c95806f59af33..e44faab861c0389564a1c68da36f3374c4d47fb9 100644 --- a/interfaces/kits/picker/src/modal_ui_callback.cpp +++ b/interfaces/kits/picker/src/modal_ui_callback.cpp @@ -34,8 +34,8 @@ void ModalUICallback::SetSessionId(int32_t sessionId) void ModalUICallback::OnRelease(int32_t releaseCode) { HILOG_INFO("[picker] OnRelease enter. release code is %{public}d", releaseCode); - if (!pickerCallBack_) { - HILOG_ERROR("[picker] OnRelease error"); + if (!pickerCallBack_ || !this->uiContent) { + HILOG_ERROR("[picker] OnRelease error."); return; } this->uiContent->CloseModalUIExtension(this->sessionId_); @@ -46,7 +46,12 @@ void ModalUICallback::OnError(int32_t code, const std::string& name, const std:: { HILOG_ERROR("[picker] OnError enter. errorCode=%{public}d, name=%{public}s, message=%{public}s", code, name.c_str(), message.c_str()); + if (!pickerCallBack_ || !this->uiContent) { + HILOG_ERROR("[picker] OnError error."); + return; + } this->uiContent->CloseModalUIExtension(this->sessionId_); + pickerCallBack_->ready = true; } void ModalUICallback::OnResultForModal(int32_t resultCode, const OHOS::AAFwk::Want &result) @@ -67,6 +72,12 @@ void ModalUICallback::OnReceive(const OHOS::AAFwk::WantParams &request) void ModalUICallback::OnDestroy() { + if (!pickerCallBack_ || !this->uiContent) { + HILOG_ERROR("[picker] OnDestroy error."); + return; + } + this->uiContent->CloseModalUIExtension(this->sessionId_); + pickerCallBack_->ready = true; HILOG_INFO("[picker] OnDestroy enter."); } } // namespace Picker diff --git a/interfaces/kits/picker/src/picker_napi_utils.cpp b/interfaces/kits/picker/src/picker_napi_utils.cpp index 32d251d966cef0b910111d11b5545f2b4ff7c0a8..ba7bf56ffd287a0cddc05bc6bf5a441dd0e75e9d 100644 --- a/interfaces/kits/picker/src/picker_napi_utils.cpp +++ b/interfaces/kits/picker/src/picker_napi_utils.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2024 Huawei Device Co., Ltd. + * Copyright (C) 2024-2025 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 @@ -36,7 +36,7 @@ void PickerNapiUtils::CreateNapiErrorObject(napi_env env, napi_value &errorObj, if (statusError == napi_ok) { statusError = napi_create_error(env, napiErrorCode, napiErrorMsg, &errorObj); if (statusError == napi_ok) { - HILOG_DEBUG("napi_create_error success"); + HILOG_DEBUG("[picker]: napi_create_error success"); } } } @@ -45,7 +45,7 @@ void PickerNapiUtils::CreateNapiErrorObject(napi_env env, napi_value &errorObj, void PickerNapiUtils::InvokeJSAsyncMethod(napi_env env, napi_deferred deferred, napi_ref callbackRef, napi_async_work work, const JSAsyncContextOutput &asyncContext) { - HILOG_INFO("modal picker: InvokeJSAsyncMethod begin."); + HILOG_INFO("[picker]: InvokeJSAsyncMethod begin."); if (asyncContext.status) { napi_resolve_deferred(env, deferred, asyncContext.data); } else {