Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor Semantics in preparation for ARC migration #52729

Merged
merged 4 commits into from
May 14, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -25,81 +25,81 @@ - (UIView*)hitTest:(CGPoint)point withEvent:(UIEvent*)event {
// UIScrollView class, the base class.

- (BOOL)isAccessibilityElement {
if (![_semanticsObject isAccessibilityBridgeAlive]) {
if (![self.semanticsObject isAccessibilityBridgeAlive]) {
return NO;
}

if ([_semanticsObject isAccessibilityElement]) {
if (self.semanticsObject.isAccessibilityElement) {
return YES;
}
if (self.contentSize.width > self.frame.size.width ||
self.contentSize.height > self.frame.size.height) {
// In SwitchControl or VoiceControl, the isAccessibilityElement must return YES
// in order to use scroll actions.
return ![_semanticsObject bridge]->isVoiceOverRunning();
return ![self.semanticsObject bridge]->isVoiceOverRunning();
} else {
return NO;
}
}

- (NSString*)accessibilityLabel {
return [_semanticsObject accessibilityLabel];
return self.semanticsObject.accessibilityLabel;
}

- (NSAttributedString*)accessibilityAttributedLabel {
return [_semanticsObject accessibilityAttributedLabel];
return self.semanticsObject.accessibilityAttributedLabel;
}

- (NSString*)accessibilityValue {
return [_semanticsObject accessibilityValue];
return self.semanticsObject.accessibilityValue;
}

- (NSAttributedString*)accessibilityAttributedValue {
return [_semanticsObject accessibilityAttributedValue];
return self.semanticsObject.accessibilityAttributedValue;
}

- (NSString*)accessibilityHint {
return [_semanticsObject accessibilityHint];
return self.semanticsObject.accessibilityHint;
}

- (NSAttributedString*)accessibilityAttributedHint {
return [_semanticsObject accessibilityAttributedHint];
return self.semanticsObject.accessibilityAttributedHint;
}

- (BOOL)accessibilityActivate {
return [_semanticsObject accessibilityActivate];
return [self.semanticsObject accessibilityActivate];
}

- (void)accessibilityIncrement {
[_semanticsObject accessibilityIncrement];
[self.semanticsObject accessibilityIncrement];
}

- (void)accessibilityDecrement {
[_semanticsObject accessibilityDecrement];
[self.semanticsObject accessibilityDecrement];
}

- (BOOL)accessibilityScroll:(UIAccessibilityScrollDirection)direction {
return [_semanticsObject accessibilityScroll:direction];
return [self.semanticsObject accessibilityScroll:direction];
}

- (BOOL)accessibilityPerformEscape {
return [_semanticsObject accessibilityPerformEscape];
return [self.semanticsObject accessibilityPerformEscape];
}

- (void)accessibilityElementDidBecomeFocused {
[_semanticsObject accessibilityElementDidBecomeFocused];
[self.semanticsObject accessibilityElementDidBecomeFocused];
}

- (void)accessibilityElementDidLoseFocus {
[_semanticsObject accessibilityElementDidLoseFocus];
[self.semanticsObject accessibilityElementDidLoseFocus];
}

- (id)accessibilityContainer {
return [_semanticsObject accessibilityContainer];
return self.semanticsObject.accessibilityContainer;
}

- (NSInteger)accessibilityElementCount {
return [[_semanticsObject children] count];
return self.semanticsObject.children.count;
}

@end
8 changes: 4 additions & 4 deletions shell/platform/darwin/ios/framework/Source/SemanticsObject.h
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ constexpr float kScrollExtentMaxForInf = 1000;
* The parent of this node in the node tree. Will be nil for the root node and
* during transient state changes.
*/
@property(nonatomic, assign) SemanticsObject* parent;
@property(nonatomic, assign, readonly) SemanticsObject* parent;

/**
* The accessibility bridge that this semantics object is attached to. This
Expand All @@ -64,13 +64,13 @@ constexpr float kScrollExtentMaxForInf = 1000;
* Direct children of this semantics object. Each child's `parent` property must
* be equal to this object.
*/
@property(nonatomic, strong) NSArray<SemanticsObject*>* children;
@property(nonatomic, copy) NSArray<SemanticsObject*>* children;

/**
* Direct children of this semantics object in hit test order. Each child's `parent` property
* must be equal to this object.
*/
@property(nonatomic, strong) NSArray<SemanticsObject*>* childrenInHitTestOrder;
@property(nonatomic, copy) NSArray<SemanticsObject*>* childrenInHitTestOrder;

/**
* The UIAccessibility that represents this object.
Expand Down Expand Up @@ -231,7 +231,7 @@ constexpr float kScrollExtentMaxForInf = 1000;
bridge:(fml::WeakPtr<flutter::AccessibilityBridgeIos>)bridge
NS_DESIGNATED_INITIALIZER;

@property(nonatomic, weak) SemanticsObject* semanticsObject;
@property(nonatomic, assign) SemanticsObject* semanticsObject;
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Made this assign to get the property synthesis. I'm going to change it back to weak when I do the ARC migration, which allows weak property synthesis. This header isn't public.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

oh wow i didn't know they have weak support in MRC.

Made this assign to get the property synthesis
So weak in MRC doesn't synthesize the getter/setter/ivar?


@end

Expand Down
Loading