Skip to content

Commit aa0a787

Browse files
authored
Implement the large font for accessibility (#262)
1 parent a63e154 commit aa0a787

File tree

2 files changed

+36
-1
lines changed

2 files changed

+36
-1
lines changed

shell/platform/tizen/channels/settings_channel.cc

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,18 +32,26 @@ SettingsChannel::SettingsChannel(BinaryMessenger* messenger)
3232
self->SendSettingsEvent();
3333
},
3434
this);
35+
system_settings_set_changed_cb(
36+
SYSTEM_SETTINGS_KEY_FONT_SIZE,
37+
[](system_settings_key_e key, void* user_data) -> void {
38+
auto* self = reinterpret_cast<SettingsChannel*>(user_data);
39+
self->SendSettingsEvent();
40+
},
41+
this);
3542
SendSettingsEvent();
3643
}
3744

3845
SettingsChannel::~SettingsChannel() {
3946
system_settings_unset_changed_cb(
4047
SYSTEM_SETTINGS_KEY_LOCALE_TIMEFORMAT_24HOUR);
48+
system_settings_unset_changed_cb(SYSTEM_SETTINGS_KEY_FONT_SIZE);
4149
}
4250

4351
void SettingsChannel::SendSettingsEvent() {
4452
rapidjson::Document event(rapidjson::kObjectType);
4553
auto& allocator = event.GetAllocator();
46-
event.AddMember(kTextScaleFactorKey, 1.0, allocator);
54+
event.AddMember(kTextScaleFactorKey, GetTextScaleFactor(), allocator);
4755
event.AddMember(kAlwaysUse24HourFormatKey, Prefer24HourTime(), allocator);
4856
event.AddMember(kPlatformBrightnessKey, "light", allocator);
4957
channel_->Send(event);
@@ -59,4 +67,30 @@ bool SettingsChannel::Prefer24HourTime() {
5967
return false;
6068
}
6169

70+
float SettingsChannel::GetTextScaleFactor() {
71+
const float small = 0.8;
72+
const float normal = 1.0;
73+
const float large = 1.5;
74+
const float huge = 1.9;
75+
const float giant = 2.5;
76+
77+
int value = SYSTEM_SETTINGS_FONT_SIZE_NORMAL;
78+
if (system_settings_get_value_int(SYSTEM_SETTINGS_KEY_FONT_SIZE, &value) ==
79+
SYSTEM_SETTINGS_ERROR_NONE) {
80+
switch (value) {
81+
case SYSTEM_SETTINGS_FONT_SIZE_SMALL:
82+
return small;
83+
case SYSTEM_SETTINGS_FONT_SIZE_LARGE:
84+
return large;
85+
case SYSTEM_SETTINGS_FONT_SIZE_HUGE:
86+
return huge;
87+
case SYSTEM_SETTINGS_FONT_SIZE_GIANT:
88+
return giant;
89+
default:
90+
return normal;
91+
}
92+
}
93+
return normal;
94+
}
95+
6296
} // namespace flutter

shell/platform/tizen/channels/settings_channel.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ class SettingsChannel {
2121
private:
2222
void SendSettingsEvent();
2323
bool Prefer24HourTime();
24+
float GetTextScaleFactor();
2425

2526
std::unique_ptr<BasicMessageChannel<rapidjson::Document>> channel_;
2627
};

0 commit comments

Comments
 (0)