From 389f0bd2e875445c7fa7a010b84c1a8475a0b4cc Mon Sep 17 00:00:00 2001 From: MichaelDvP Date: Tue, 11 Apr 2023 11:17:20 +0200 Subject: [PATCH] rebuild HA-mqtt on language change --- src/web/WebSettingsService.cpp | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/web/WebSettingsService.cpp b/src/web/WebSettingsService.cpp index 7fa82880f..03b879fb1 100644 --- a/src/web/WebSettingsService.cpp +++ b/src/web/WebSettingsService.cpp @@ -247,20 +247,27 @@ StateUpdateResult WebSettings::update(JsonObject & root, WebSettings & settings) prev = settings.bool_format; settings.bool_format = root["bool_format"] | EMSESP_DEFAULT_BOOL_FORMAT; EMSESP::system_.bool_format(settings.bool_format); - if (Mqtt::ha_enabled()) + if (Mqtt::ha_enabled()) { check_flag(prev, settings.bool_format, ChangeFlags::MQTT); + } prev = settings.enum_format; settings.enum_format = root["enum_format"] | EMSESP_DEFAULT_ENUM_FORMAT; EMSESP::system_.enum_format(settings.enum_format); - if (Mqtt::ha_enabled()) + if (Mqtt::ha_enabled()) { check_flag(prev, settings.enum_format, ChangeFlags::MQTT); + } + + String old_locale = settings.locale; + settings.locale = root["locale"] | EMSESP_DEFAULT_LOCALE; + EMSESP::system_.locale(settings.locale); + if (Mqtt::ha_enabled() && !old_locale.equals(settings.locale)) { + add_flags(ChangeFlags::MQTT); + } // // without checks or necessary restarts... // - settings.locale = root["locale"] | EMSESP_DEFAULT_LOCALE; - EMSESP::system_.locale(settings.locale); settings.trace_raw = root["trace_raw"] | EMSESP_DEFAULT_TRACELOG_RAW; EMSESP::trace_raw(settings.trace_raw);