5#ifndef FLUTTER_SHELL_PLATFORM_DARWIN_IOS_FRAMEWORK_SOURCE_ACCESSIBILITY_BRIDGE_H_
6#define FLUTTER_SHELL_PLATFORM_DARWIN_IOS_FRAMEWORK_SOURCE_ACCESSIBILITY_BRIDGE_H_
11#include <unordered_map>
12#include <unordered_set>
36class AccessibilityBridge final :
public AccessibilityBridgeIos {
53 std::unique_ptr<IosDelegate> ios_delegate =
nullptr);
58 void HandleEvent(NSDictionary<NSString*, id>* annotatedEvent);
69 UIView*
view()
const override {
return view_controller_.
view; }
76 return platform_views_controller_;
90 NSMutableArray<NSNumber*>* doomed_uids);
99 static constexpr int32_t kSemanticObjectIdInvalid = -1;
100 int32_t last_focused_semantics_object_id_ = kSemanticObjectIdInvalid;
102 NSMutableDictionary<NSNumber*, SemanticsObject*>* objects_;
104 int32_t previous_route_id_ = 0;
105 std::unordered_map<int32_t, flutter::CustomAccessibilityAction> actions_;
106 std::vector<int32_t> previous_routes_;
107 std::unique_ptr<IosDelegate> ios_delegate_;
virtual void PostAccessibilityNotification(UIAccessibilityNotifications notification, id argument)=0
virtual bool IsFlutterViewControllerPresentingModalViewController(FlutterViewController *view_controller)=0
virtual ~IosDelegate()=default
void UpdateSemantics(flutter::SemanticsNodeUpdates nodes, const flutter::CustomAccessibilityActionUpdates &actions)
UIView * view() const override
void DispatchSemanticsAction(int32_t id, flutter::SemanticsAction action) override
UIView< UITextInput > * textInputView() override
void AccessibilityObjectDidLoseFocus(int32_t id) override
NSString * GetDefaultLocale() override
AccessibilityBridge(FlutterViewController *view_controller, PlatformViewIOS *platform_view, __weak FlutterPlatformViewsController *platform_views_controller, std::unique_ptr< IosDelegate > ios_delegate=nullptr)
void DispatchSemanticsAction(int32_t id, flutter::SemanticsAction action, fml::MallocMapping args) override
bool isVoiceOverRunning() const override
void HandleEvent(NSDictionary< NSString *, id > *annotatedEvent)
fml::WeakPtr< AccessibilityBridge > GetWeakPtr()
FlutterPlatformViewsController * GetPlatformViewsController() const override
void AccessibilityObjectDidBecomeFocused(int32_t id) override
FlutterView * view() const
A Mapping like NonOwnedMapping, but uses Free as its release proc.
G_BEGIN_DECLS G_MODULE_EXPORT FlValue * args
#define FML_DISALLOW_COPY_AND_ASSIGN(TypeName)
std::unordered_map< int32_t, SemanticsNode > SemanticsNodeUpdates
std::unordered_map< int32_t, CustomAccessibilityAction > CustomAccessibilityActionUpdates