From 038c0c6fc7f1867aeac1a618d11bfc02921013dd Mon Sep 17 00:00:00 2001 From: cx983299475 Date: Tue, 25 Mar 2025 21:00:48 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=85=B3=E6=80=80=E6=A8=A1?= =?UTF-8?q?=E5=BC=8F=E5=BC=80=E5=85=B3=E6=83=85=E5=86=B5=E4=B8=8B=E5=8D=A1?= =?UTF-8?q?=E7=89=87=E5=AD=97=E4=BD=93=E5=A4=A7=E5=B0=8F=E4=B8=8D=E7=94=9F?= =?UTF-8?q?=E6=95=88=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: cx983299475 --- .../src/form_render_impl.cpp | 20 +++++++++---------- .../src/form_render_service_extension.cpp | 6 +++++- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/services/form_render_service/src/form_render_impl.cpp b/services/form_render_service/src/form_render_impl.cpp index a252dcc6d2..2bfb266346 100644 --- a/services/form_render_service/src/form_render_impl.cpp +++ b/services/form_render_service/src/form_render_impl.cpp @@ -384,17 +384,17 @@ void FormRenderImpl::OnConfigurationUpdatedInner() void FormRenderImpl::SetConfiguration(const std::shared_ptr& config) { if (config != nullptr && configuration_ != nullptr) { - std::string colorMode = config->GetItem(SYSTEM_COLORMODE); - std::string languageTag = config->GetItem(SYSTEM_LANGUAGE); - std::string colorModeOld = configuration_->GetItem(SYSTEM_COLORMODE); - std::string languageTagOld = configuration_->GetItem(SYSTEM_LANGUAGE); - configuration_ = config; - if (colorMode.empty()) { - configuration_->AddItem(SYSTEM_COLORMODE, colorModeOld); - } - if (languageTag.empty()) { - configuration_->AddItem(SYSTEM_LANGUAGE, languageTagOld); + auto checkConfigItem = { SYSTEM_COLORMODE, SYSTEM_LANGUAGE, SYSTEM_FONT_SIZE_SCALE, SYSTEM_FONT_WEIGHT_SCALE }; + for (const auto& item: checkConfigItem) { + std::string newValue = config->GetItem(item); + std::string oldValue = configuration_->GetItem(item); + if (newValue.empty() && !oldValue.empty()) { + config->AddItem(item, oldValue); + } } + + configuration_ = config; + HILOG_INFO("current configuration_:%{public}s", configuration_->GetName().c_str()); return; } diff --git a/services/form_render_service/src/form_render_service_extension.cpp b/services/form_render_service/src/form_render_service_extension.cpp index 2a8891dfa6..fbd7b8b000 100644 --- a/services/form_render_service/src/form_render_service_extension.cpp +++ b/services/form_render_service/src/form_render_service_extension.cpp @@ -97,8 +97,12 @@ void FormRenderServiceExtension::OnCommand(const AAFwk::Want &want, bool restart void FormRenderServiceExtension::OnConfigurationUpdated(const AppExecFwk::Configuration& configuration) { Extension::OnConfigurationUpdated(configuration); - HILOG_INFO("call"); auto config = std::make_shared(configuration); + if (!config) { + HILOG_ERROR("null configuration"); + return; + } + HILOG_INFO("configuration detail: %{public}s", config->GetName().c_str()); OHOS::DelayedSingleton::GetInstance()->OnConfigurationUpdated(config); } } -- Gitee