From e2c59e22e7ae58f7015dfd53012b95b8a77df607 Mon Sep 17 00:00:00 2001 From: "wanchao.xu" Date: Wed, 23 Mar 2022 09:49:53 +0800 Subject: [PATCH 1/2] Implement the large font for accessibility. --- .../tizen/channels/settings_channel.cc | 42 ++++++++++++++++++- .../tizen/channels/settings_channel.h | 1 + 2 files changed, 42 insertions(+), 1 deletion(-) diff --git a/shell/platform/tizen/channels/settings_channel.cc b/shell/platform/tizen/channels/settings_channel.cc index d5751ea65d844..68dd6f3b7ff04 100644 --- a/shell/platform/tizen/channels/settings_channel.cc +++ b/shell/platform/tizen/channels/settings_channel.cc @@ -32,18 +32,26 @@ SettingsChannel::SettingsChannel(BinaryMessenger* messenger) self->SendSettingsEvent(); }, this); + system_settings_set_changed_cb( + SYSTEM_SETTINGS_KEY_FONT_SIZE, + [](system_settings_key_e key, void* user_data) -> void { + auto* self = reinterpret_cast(user_data); + self->SendSettingsEvent(); + }, + this); SendSettingsEvent(); } SettingsChannel::~SettingsChannel() { system_settings_unset_changed_cb( SYSTEM_SETTINGS_KEY_LOCALE_TIMEFORMAT_24HOUR); + system_settings_unset_changed_cb(SYSTEM_SETTINGS_KEY_FONT_SIZE); } void SettingsChannel::SendSettingsEvent() { rapidjson::Document event(rapidjson::kObjectType); auto& allocator = event.GetAllocator(); - event.AddMember(kTextScaleFactorKey, 1.0, allocator); + event.AddMember(kTextScaleFactorKey, GetTextScaleFactor(), allocator); event.AddMember(kAlwaysUse24HourFormatKey, Prefer24HourTime(), allocator); event.AddMember(kPlatformBrightnessKey, "light", allocator); channel_->Send(event); @@ -59,4 +67,36 @@ bool SettingsChannel::Prefer24HourTime() { return false; } +float SettingsChannel::GetTextScaleFactor() { + const float small = 0.8; + const float normal = 1.0; + const float large = 1.5; + const float huge = 1.9; + const float giant = 2.5; + + int value = 1; + if (system_settings_get_value_int(SYSTEM_SETTINGS_KEY_FONT_SIZE, &value) == + SYSTEM_SETTINGS_ERROR_NONE) { + float scale = normal; + switch (value) { + case SYSTEM_SETTINGS_FONT_SIZE_SMALL: + scale = small; + break; + case SYSTEM_SETTINGS_FONT_SIZE_LARGE: + scale = large; + break; + case SYSTEM_SETTINGS_FONT_SIZE_HUGE: + scale = huge; + break; + case SYSTEM_SETTINGS_FONT_SIZE_GIANT: + scale = giant; + break; + default: + break; + } + return scale; + } + return 1.0; +} + } // namespace flutter diff --git a/shell/platform/tizen/channels/settings_channel.h b/shell/platform/tizen/channels/settings_channel.h index ae9585778caa4..0bcf4840dbd06 100644 --- a/shell/platform/tizen/channels/settings_channel.h +++ b/shell/platform/tizen/channels/settings_channel.h @@ -21,6 +21,7 @@ class SettingsChannel { private: void SendSettingsEvent(); bool Prefer24HourTime(); + float GetTextScaleFactor(); std::unique_ptr> channel_; }; From bf520b461d4ada7c12c180489ff85417e7cb00a8 Mon Sep 17 00:00:00 2001 From: "wanchao.xu" Date: Fri, 25 Mar 2022 13:12:24 +0800 Subject: [PATCH 2/2] Fix review result. --- .../tizen/channels/settings_channel.cc | 20 +++++++------------ 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/shell/platform/tizen/channels/settings_channel.cc b/shell/platform/tizen/channels/settings_channel.cc index 68dd6f3b7ff04..a1001b56cb85d 100644 --- a/shell/platform/tizen/channels/settings_channel.cc +++ b/shell/platform/tizen/channels/settings_channel.cc @@ -74,29 +74,23 @@ float SettingsChannel::GetTextScaleFactor() { const float huge = 1.9; const float giant = 2.5; - int value = 1; + int value = SYSTEM_SETTINGS_FONT_SIZE_NORMAL; if (system_settings_get_value_int(SYSTEM_SETTINGS_KEY_FONT_SIZE, &value) == SYSTEM_SETTINGS_ERROR_NONE) { - float scale = normal; switch (value) { case SYSTEM_SETTINGS_FONT_SIZE_SMALL: - scale = small; - break; + return small; case SYSTEM_SETTINGS_FONT_SIZE_LARGE: - scale = large; - break; + return large; case SYSTEM_SETTINGS_FONT_SIZE_HUGE: - scale = huge; - break; + return huge; case SYSTEM_SETTINGS_FONT_SIZE_GIANT: - scale = giant; - break; + return giant; default: - break; + return normal; } - return scale; } - return 1.0; + return normal; } } // namespace flutter