@@ -157,10 +157,17 @@ FlutterLocale CovertToFlutterLocale(const LanguageInfo& info) {
157157
158158} // namespace
159159
160- FlutterWindowsEngine::FlutterWindowsEngine (const FlutterProjectBundle& project)
160+ FlutterWindowsEngine::FlutterWindowsEngine (
161+ const FlutterProjectBundle& project,
162+ std::shared_ptr<WindowsProcTable> windows_proc_table)
161163 : project_(std::make_unique<FlutterProjectBundle>(project)),
164+ windows_proc_table_ (std::move(windows_proc_table)),
162165 aot_data_(nullptr , nullptr ),
163166 lifecycle_manager_(std::make_unique<WindowsLifecycleManager>(this )) {
167+ if (windows_proc_table_ == nullptr ) {
168+ windows_proc_table_ = std::make_shared<WindowsProcTable>();
169+ }
170+
164171 embedder_api_.struct_size = sizeof (FlutterEngineProcTable);
165172 FlutterEngineGetProcAddresses (&embedder_api_);
166173
@@ -569,8 +576,7 @@ void FlutterWindowsEngine::HandlePlatformMessage(
569576
570577 auto message = ConvertToDesktopMessage (*engine_message);
571578
572- message_dispatcher_->HandleMessage (
573- message, [this ] {}, [this ] {});
579+ message_dispatcher_->HandleMessage (message, [this ] {}, [this ] {});
574580}
575581
576582void FlutterWindowsEngine::ReloadSystemFonts () {
@@ -605,7 +611,7 @@ void FlutterWindowsEngine::SetLifecycleState(flutter::AppLifecycleState state) {
605611
606612void FlutterWindowsEngine::SendSystemLocales () {
607613 std::vector<LanguageInfo> languages =
608- GetPreferredLanguageInfo (windows_proc_table_);
614+ GetPreferredLanguageInfo (* windows_proc_table_);
609615 std::vector<FlutterLocale> flutter_locales;
610616 flutter_locales.reserve (languages.size ());
611617 for (const auto & info : languages) {
@@ -737,34 +743,27 @@ std::string FlutterWindowsEngine::GetExecutableName() const {
737743 return " Flutter" ;
738744}
739745
740- void FlutterWindowsEngine::UpdateAccessibilityFeatures (
741- FlutterAccessibilityFeature flags) {
742- embedder_api_.UpdateAccessibilityFeatures (engine_, flags);
746+ void FlutterWindowsEngine::UpdateAccessibilityFeatures () {
747+ UpdateHighContrastMode ();
743748}
744749
745- void FlutterWindowsEngine::UpdateHighContrastEnabled (bool enabled) {
746- high_contrast_enabled_ = enabled;
747- int flags = EnabledAccessibilityFeatures ();
748- if (enabled) {
749- flags |=
750- FlutterAccessibilityFeature::kFlutterAccessibilityFeatureHighContrast ;
751- } else {
752- flags &=
753- ~FlutterAccessibilityFeature::kFlutterAccessibilityFeatureHighContrast ;
754- }
755- UpdateAccessibilityFeatures (static_cast <FlutterAccessibilityFeature>(flags));
756- settings_plugin_->UpdateHighContrastMode (enabled);
750+ void FlutterWindowsEngine::UpdateHighContrastMode () {
751+ high_contrast_enabled_ = windows_proc_table_->GetHighContrastEnabled ();
752+
753+ SendAccessibilityFeatures ();
754+ settings_plugin_->UpdateHighContrastMode (high_contrast_enabled_);
757755}
758756
759- int FlutterWindowsEngine::EnabledAccessibilityFeatures () const {
757+ void FlutterWindowsEngine::SendAccessibilityFeatures () {
760758 int flags = 0 ;
761- if (high_contrast_enabled ()) {
759+
760+ if (high_contrast_enabled_) {
762761 flags |=
763762 FlutterAccessibilityFeature::kFlutterAccessibilityFeatureHighContrast ;
764763 }
765- // As more accessibility features are enabled for Windows,
766- // the corresponding checks and flags should be added here.
767- return flags;
764+
765+ embedder_api_. UpdateAccessibilityFeatures (
766+ engine_, static_cast <FlutterAccessibilityFeature>( flags)) ;
768767}
769768
770769void FlutterWindowsEngine::HandleAccessibilityMessage (
0 commit comments