Skip to content

Commit

Permalink
Implement the large font for accessibility (#262)
Browse files Browse the repository at this point in the history
  • Loading branch information
wanchao-xu authored Mar 28, 2022
1 parent a63e154 commit aa0a787
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 1 deletion.
36 changes: 35 additions & 1 deletion shell/platform/tizen/channels/settings_channel.cc
Original file line number Diff line number Diff line change
Expand Up @@ -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<SettingsChannel*>(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);
Expand All @@ -59,4 +67,30 @@ 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 = SYSTEM_SETTINGS_FONT_SIZE_NORMAL;
if (system_settings_get_value_int(SYSTEM_SETTINGS_KEY_FONT_SIZE, &value) ==
SYSTEM_SETTINGS_ERROR_NONE) {
switch (value) {
case SYSTEM_SETTINGS_FONT_SIZE_SMALL:
return small;
case SYSTEM_SETTINGS_FONT_SIZE_LARGE:
return large;
case SYSTEM_SETTINGS_FONT_SIZE_HUGE:
return huge;
case SYSTEM_SETTINGS_FONT_SIZE_GIANT:
return giant;
default:
return normal;
}
}
return normal;
}

} // namespace flutter
1 change: 1 addition & 0 deletions shell/platform/tizen/channels/settings_channel.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ class SettingsChannel {
private:
void SendSettingsEvent();
bool Prefer24HourTime();
float GetTextScaleFactor();

std::unique_ptr<BasicMessageChannel<rapidjson::Document>> channel_;
};
Expand Down

0 comments on commit aa0a787

Please sign in to comment.