fix support passing want to window

Signed-off-by: xiehd <xiehuandong@huawei.com>
This commit is contained in:
xiehd
2025-02-08 09:16:10 +08:00
parent 78e9774a42
commit 70cd03d4e5
2 changed files with 10 additions and 0 deletions
@@ -715,6 +715,7 @@ bool JsUIExtension::HandleSessionCreate(const AAFwk::Want &want, const sptr<AAFw
std::lock_guard<std::mutex> lock(uiWindowMutex_);
TAG_LOGD(AAFwkTag::UI_EXT, "UIExtension component id: %{public}" PRId64 ", element: %{public}s",
sessionInfo->uiExtensionComponentId, want.GetElement().GetURI().c_str());
std::shared_ptr<AAFwk::Want> sharedWant = std::make_shared<AAFwk::Want>();
auto compId = sessionInfo->uiExtensionComponentId;
if (uiWindowMap_.find(compId) == uiWindowMap_.end()) {
auto context = GetContext();
@@ -746,11 +747,15 @@ bool JsUIExtension::HandleSessionCreate(const AAFwk::Want &want, const sptr<AAFw
CallObjectMethod("onSessionCreate", argv, ARGC_TWO);
}
uiWindowMap_[compId] = uiWindow;
uiWindow->UpdateExtensionConfig(sharedWant);
#ifdef SUPPORT_GRAPHICS
if (context->GetWindow() == nullptr) {
context->SetWindow(uiWindow);
}
#endif // SUPPORT_GRAPHICS
} else {
auto& uiWindow = uiWindowMap_[compId];
uiWindow->UpdateExtensionConfig(sharedWant);
}
return true;
}
@@ -707,6 +707,7 @@ bool JsUIExtensionBase::HandleSessionCreate(const AAFwk::Want &want, const sptr<
TAG_LOGE(AAFwkTag::UI_EXT, "Invalid sessionInfo");
return false;
}
std::shared_ptr<AAFwk::Want> sharedWant = std::make_shared<AAFwk::Want>();
auto componentId = sessionInfo->uiExtensionComponentId;
if (uiWindowMap_.find(componentId) == uiWindowMap_.end()) {
if (context_ == nullptr || context_->GetAbilityInfo() == nullptr) {
@@ -731,11 +732,15 @@ bool JsUIExtensionBase::HandleSessionCreate(const AAFwk::Want &want, const sptr<
return false;
}
uiWindowMap_[componentId] = uiWindow;
uiWindow->UpdateExtensionConfig(sharedWant);
#ifdef SUPPORT_GRAPHICS
if (context_->GetWindow() == nullptr) {
context_->SetWindow(uiWindow);
}
#endif // SUPPORT_GRAPHICS
} else {
auto& uiWindow = uiWindowMap_[componentId];
uiWindow->UpdateExtensionConfig(sharedWant);
}
return true;
}