Don't notify about accesibility settings change before app starts
Change-Id: Ia5e5e014f6eb85a07c304c96c366d4169a45d6d3
Signed-off-by: Eugene Mutavchi <Ievgen_Mutavchi@comcast.com>
diff --git a/src/third_party/starboard/rdk/shared/libcobalt.cc b/src/third_party/starboard/rdk/shared/libcobalt.cc
index 6dca752..c836c84 100644
--- a/src/third_party/starboard/rdk/shared/libcobalt.cc
+++ b/src/third_party/starboard/rdk/shared/libcobalt.cc
@@ -162,6 +162,11 @@
return exit_strategy_.c_str();
}
+ bool IsAppRunning() const
+ {
+ return (state_ == kRunning);
+ }
+
private:
enum State {
kUninitialized,
@@ -263,7 +268,7 @@
return;
if (strcmp(key, "accessibility") == 0) {
- Accessibility::SetSettings(json);
+ Accessibility::SetSettings(json, GetContext()->IsAppRunning());
}
else if (strcmp(key, "systemproperties") == 0) {
SystemProperties::SetSettings(json);
diff --git a/src/third_party/starboard/rdk/shared/rdkservices.cc b/src/third_party/starboard/rdk/shared/rdkservices.cc
index 2bb9be4..598af57 100644
--- a/src/third_party/starboard/rdk/shared/rdkservices.cc
+++ b/src/third_party/starboard/rdk/shared/rdkservices.cc
@@ -258,7 +258,7 @@
if (ServiceLink::enableEnvOverrides()) {
std::string envValue;
if (Core::SystemInfo::GetEnvironment("AccessibilitySettings_json", envValue) == true) {
- SetSettings(envValue);
+ SetSettings(envValue, false);
std::string test;
bool r = GetSettings(test);
@@ -270,7 +270,7 @@
}
}
- void SetSettings(const std::string& json) {
+ void SetSettings(const std::string& json, bool notify_app) {
SB_LOG(INFO) << "Updating accessibility settings: " << json;
JsonData::Accessibility::AccessibilityData settings;
@@ -338,6 +338,9 @@
settings.TextDisplay.IsHighContrastTextEnabled.Value();
}
+ if (!notify_app)
+ return;
+
if (auto* app = Application::Get(); app != nullptr) {
if (was_cc_enabled != caption_settings_.is_enabled)
app->InjectAccessibilityCaptionSettingsChanged();
@@ -1704,8 +1707,8 @@
return GetAccessibility()->GetDisplaySettings(out);
}
-void Accessibility::SetSettings(const std::string& json) {
- GetAccessibility()->SetSettings(json);
+void Accessibility::SetSettings(const std::string& json, bool notify_app) {
+ GetAccessibility()->SetSettings(json, notify_app);
}
bool Accessibility::GetSettings(std::string& out_json) {
diff --git a/src/third_party/starboard/rdk/shared/rdkservices.h b/src/third_party/starboard/rdk/shared/rdkservices.h
index 35aa965..eeb6baf 100644
--- a/src/third_party/starboard/rdk/shared/rdkservices.h
+++ b/src/third_party/starboard/rdk/shared/rdkservices.h
@@ -76,7 +76,7 @@
class Accessibility {
public:
- static void SetSettings(const std::string& json);
+ static void SetSettings(const std::string& json, bool notify_app);
static bool GetSettings(std::string& out_json);
static bool GetCaptionSettings(SbAccessibilityCaptionSettings* out);
static bool GetDisplaySettings(SbAccessibilityDisplaySettings* out);