Skip to content

Commit f6a2e2e

Browse files
authored
Rework the high contrast accessibility feature (#265)
1 parent 3038c66 commit f6a2e2e

File tree

3 files changed

+12
-22
lines changed

3 files changed

+12
-22
lines changed

shell/platform/tizen/accessibility_settings.cc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ AccessibilitySettings::AccessibilitySettings(FlutterTizenEngine* engine)
4141
SYSTEM_SETTINGS_KEY_MENU_SYSTEM_ACCESSIBILITY_HIGHCONTRAST),
4242
&high_contrast_enabled);
4343
if (result == SYSTEM_SETTINGS_ERROR_NONE) {
44-
engine_->EnableAccessibilityFeature(high_contrast_enabled);
44+
engine_->UpdateAccessibilityFeatures(false, high_contrast_enabled);
4545
} else {
4646
FT_LOG(Error) << "Failed to get value of accessibility high contrast.";
4747
}
@@ -79,7 +79,7 @@ void AccessibilitySettings::OnHighContrastStateChanged(
7979
return;
8080
}
8181

82-
self->engine_->EnableAccessibilityFeature(enabled);
82+
self->engine_->UpdateAccessibilityFeatures(false, enabled);
8383
#endif
8484
}
8585

shell/platform/tizen/flutter_tizen_engine.cc

Lines changed: 7 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -485,26 +485,15 @@ bool FlutterTizenEngine::MarkExternalTextureFrameAvailable(int64_t texture_id) {
485485
engine_, texture_id) == kSuccess);
486486
}
487487

488-
// Set bold font when accessibility high contrast state is
489-
// changed.
490-
void FlutterTizenEngine::EnableAccessibilityFeature(bool bold_text) {
491-
if (engine_ == nullptr) {
492-
return;
493-
}
494-
495-
if (bold_text) {
496-
embedder_api_.UpdateAccessibilityFeatures(
497-
engine_, kFlutterAccessibilityFeatureBoldText);
498-
} else {
499-
embedder_api_.UpdateAccessibilityFeatures(engine_,
500-
FlutterAccessibilityFeature(0));
501-
}
488+
void FlutterTizenEngine::UpdateAccessibilityFeatures(bool invert_colors,
489+
bool high_contrast) {
490+
int32_t flags = 0;
491+
flags |= invert_colors ? kFlutterAccessibilityFeatureInvertColors : 0;
492+
flags |= high_contrast ? kFlutterAccessibilityFeatureHighContrast : 0;
493+
embedder_api_.UpdateAccessibilityFeatures(engine_,
494+
FlutterAccessibilityFeature(flags));
502495
}
503496

504-
// The Flutter Engine calls out to this function when new platform messages
505-
// are available.
506-
507-
// Converts a FlutterPlatformMessage to an equivalent FlutterDesktopMessage.
508497
FlutterDesktopMessage FlutterTizenEngine::ConvertToDesktopMessage(
509498
const FlutterPlatformMessage& engine_message) {
510499
FlutterDesktopMessage message = {};

shell/platform/tizen/flutter_tizen_engine.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -186,15 +186,16 @@ class FlutterTizenEngine : public TizenRenderer::Delegate {
186186
void SetSemanticsEnabled(bool enabled);
187187
#endif
188188

189-
// Set bold font when accessibility high contrast state is changed.
190-
void EnableAccessibilityFeature(bool bold_text);
189+
// Notifies the engine about enabled accessibility features.
190+
void UpdateAccessibilityFeatures(bool invert_colors, bool high_contrast);
191191

192192
private:
193193
friend class EngineModifier;
194194

195195
// Whether the engine is running in headed or headless mode.
196196
bool IsHeaded() { return renderer_ != nullptr; }
197197

198+
// Converts a FlutterPlatformMessage to an equivalent FlutterDesktopMessage.
198199
FlutterDesktopMessage ConvertToDesktopMessage(
199200
const FlutterPlatformMessage& engine_message);
200201

0 commit comments

Comments
 (0)