5 #ifndef FLUTTER_SHELL_PLATFORM_DARWIN_IOS_PLATFORM_VIEW_IOS_H_
6 #define FLUTTER_SHELL_PLATFORM_DARWIN_IOS_PLATFORM_VIEW_IOS_H_
10 #include "flutter/fml/closure.h"
11 #include "flutter/fml/macros.h"
12 #include "flutter/shell/common/platform_view.h"
42 const std::shared_ptr<IOSContext>& context,
44 const flutter::TaskRunners& task_runners);
47 PlatformView::Delegate& delegate,
50 const flutter::TaskRunners& task_runners,
51 const std::shared_ptr<fml::ConcurrentTaskRunner>& worker_task_runner,
52 const std::shared_ptr<const fml::SyncSwitch>& is_gpu_disabled_sync_switch);
110 flutter::CustomAccessibilityActionUpdates actions)
override;
120 const std::vector<std::string>& supported_locale_data)
override;
126 return platform_message_handler_;
130 return platform_message_handler_;
136 class ScopedObserver {
140 void reset(id<NSObject> observer);
141 ScopedObserver(
const ScopedObserver&) =
delete;
142 ScopedObserver& operator=(
const ScopedObserver&) =
delete;
145 id<NSObject> observer_ = nil;
150 class AccessibilityBridgeManager {
152 explicit AccessibilityBridgeManager(
const std::function<
void(
bool)>& set_semantics_enabled);
153 AccessibilityBridgeManager(
const std::function<
void(
bool)>& set_semantics_enabled,
154 AccessibilityBridge* bridge);
155 explicit operator bool() const noexcept {
return static_cast<bool>(accessibility_bridge_); }
156 AccessibilityBridge* get() const noexcept {
return accessibility_bridge_.get(); }
157 void Set(std::unique_ptr<AccessibilityBridge> bridge);
161 FML_DISALLOW_COPY_AND_ASSIGN(AccessibilityBridgeManager);
162 std::unique_ptr<AccessibilityBridge> accessibility_bridge_;
163 std::function<void(
bool)> set_semantics_enabled_;
169 std::mutex ios_surface_mutex_;
170 std::unique_ptr<IOSSurface> ios_surface_;
171 std::shared_ptr<IOSContext> ios_context_;
173 AccessibilityBridgeManager accessibility_bridge_;
174 ScopedObserver dealloc_view_controller_observer_;
175 std::vector<std::string> platform_resolved_locale_;
176 std::shared_ptr<PlatformMessageHandlerIos> platform_message_handler_;
183 #endif // FLUTTER_SHELL_PLATFORM_DARWIN_IOS_PLATFORM_VIEW_IOS_H_