Remove extra string/attributed string creation in accessibility properties (#1062)

This commit is contained in:
Adlai Holler 2018-08-03 10:23:05 -07:00 committed by GitHub
parent 093ae3fba0
commit e76b4f02f6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 48 additions and 44 deletions

View File

@ -27,6 +27,7 @@
- Create and set delegate for clip corner layers within ASDisplayNode [Michael Schneider](https://github.com/maicki) [#1029](https://github.com/TextureGroup/Texture/pull/1029) - Create and set delegate for clip corner layers within ASDisplayNode [Michael Schneider](https://github.com/maicki) [#1029](https://github.com/TextureGroup/Texture/pull/1029)
- Improve locking situation in ASVideoPlayerNode [Michael Schneider](https://github.com/maicki) [#1042](https://github.com/TextureGroup/Texture/pull/1042) - Improve locking situation in ASVideoPlayerNode [Michael Schneider](https://github.com/maicki) [#1042](https://github.com/TextureGroup/Texture/pull/1042)
- Remove CA transaction signpost injection because it causes more transactions and is too chatty. [Adlai Holler](https://github.com/Adlai-Holler) - Remove CA transaction signpost injection because it causes more transactions and is too chatty. [Adlai Holler](https://github.com/Adlai-Holler)
- Optimize display node accessibility by not creating attributed & non-attributed copies of hint, label, and value. [Adlai Holler](https://github.com/Adlai-Holler)
## 2.7 ## 2.7

View File

@ -607,92 +607,92 @@ static UIColor *defaultTintColor = nil;
- (NSString *)accessibilityLabel - (NSString *)accessibilityLabel
{ {
if (_flags.setAccessibilityAttributedLabel) {
return accessibilityAttributedLabel.string;
}
return accessibilityLabel; return accessibilityLabel;
} }
- (void)setAccessibilityLabel:(NSString *)newAccessibilityLabel - (void)setAccessibilityLabel:(NSString *)newAccessibilityLabel
{ {
if (! ASObjectIsEqual(accessibilityLabel, newAccessibilityLabel)) { ASCompareAssignCopy(accessibilityLabel, newAccessibilityLabel);
_flags.setAccessibilityLabel = YES; _flags.setAccessibilityLabel = YES;
_flags.setAccessibilityAttributedLabel = YES; _flags.setAccessibilityAttributedLabel = NO;
accessibilityLabel = newAccessibilityLabel ? [newAccessibilityLabel copy] : nil;
accessibilityAttributedLabel = newAccessibilityLabel ? [[NSAttributedString alloc] initWithString:newAccessibilityLabel] : nil;
}
} }
- (NSAttributedString *)accessibilityAttributedLabel - (NSAttributedString *)accessibilityAttributedLabel
{ {
if (_flags.setAccessibilityLabel) {
return [[NSAttributedString alloc] initWithString:accessibilityLabel];
}
return accessibilityAttributedLabel; return accessibilityAttributedLabel;
} }
- (void)setAccessibilityAttributedLabel:(NSAttributedString *)newAccessibilityAttributedLabel - (void)setAccessibilityAttributedLabel:(NSAttributedString *)newAccessibilityAttributedLabel
{ {
if (! ASObjectIsEqual(accessibilityAttributedLabel, newAccessibilityAttributedLabel)) { ASCompareAssignCopy(accessibilityAttributedLabel, newAccessibilityAttributedLabel);
_flags.setAccessibilityAttributedLabel = YES; _flags.setAccessibilityAttributedLabel = YES;
_flags.setAccessibilityLabel = YES; _flags.setAccessibilityLabel = NO;
accessibilityAttributedLabel = newAccessibilityAttributedLabel ? [newAccessibilityAttributedLabel copy] : nil;
accessibilityLabel = newAccessibilityAttributedLabel ? [newAccessibilityAttributedLabel.string copy] : nil;
}
} }
- (NSString *)accessibilityHint - (NSString *)accessibilityHint
{ {
if (_flags.setAccessibilityAttributedHint) {
return accessibilityAttributedHint.string;
}
return accessibilityHint; return accessibilityHint;
} }
- (void)setAccessibilityHint:(NSString *)newAccessibilityHint - (void)setAccessibilityHint:(NSString *)newAccessibilityHint
{ {
if (! ASObjectIsEqual(accessibilityHint, newAccessibilityHint)) { ASCompareAssignCopy(accessibilityHint, newAccessibilityHint);
_flags.setAccessibilityHint = YES; _flags.setAccessibilityHint = YES;
_flags.setAccessibilityAttributedHint = YES; _flags.setAccessibilityAttributedHint = NO;
accessibilityHint = newAccessibilityHint ? [newAccessibilityHint copy] : nil;
accessibilityAttributedHint = newAccessibilityHint ? [[NSAttributedString alloc] initWithString:newAccessibilityHint] : nil;
}
} }
- (NSAttributedString *)accessibilityAttributedHint - (NSAttributedString *)accessibilityAttributedHint
{ {
if (_flags.setAccessibilityHint) {
return [[NSAttributedString alloc] initWithString:accessibilityHint];
}
return accessibilityAttributedHint; return accessibilityAttributedHint;
} }
- (void)setAccessibilityAttributedHint:(NSAttributedString *)newAccessibilityAttributedHint - (void)setAccessibilityAttributedHint:(NSAttributedString *)newAccessibilityAttributedHint
{ {
if (! ASObjectIsEqual(accessibilityAttributedHint, newAccessibilityAttributedHint)) { ASCompareAssignCopy(accessibilityAttributedHint, newAccessibilityAttributedHint);
_flags.setAccessibilityAttributedHint = YES; _flags.setAccessibilityAttributedHint = YES;
_flags.setAccessibilityHint = YES; _flags.setAccessibilityHint = NO;
accessibilityAttributedHint = newAccessibilityAttributedHint ? [newAccessibilityAttributedHint copy] : nil;
accessibilityHint = newAccessibilityAttributedHint ? [newAccessibilityAttributedHint.string copy] : nil;
}
} }
- (NSString *)accessibilityValue - (NSString *)accessibilityValue
{ {
if (_flags.setAccessibilityAttributedValue) {
return accessibilityAttributedValue.string;
}
return accessibilityValue; return accessibilityValue;
} }
- (void)setAccessibilityValue:(NSString *)newAccessibilityValue - (void)setAccessibilityValue:(NSString *)newAccessibilityValue
{ {
if (! ASObjectIsEqual(accessibilityValue, newAccessibilityValue)) { ASCompareAssignCopy(accessibilityValue, newAccessibilityValue);
_flags.setAccessibilityValue = YES; _flags.setAccessibilityValue = YES;
_flags.setAccessibilityAttributedValue = YES; _flags.setAccessibilityAttributedValue = NO;
accessibilityValue = newAccessibilityValue ? [newAccessibilityValue copy] : nil;
accessibilityAttributedValue = newAccessibilityValue ? [[NSAttributedString alloc] initWithString:newAccessibilityValue] : nil;
}
} }
- (NSAttributedString *)accessibilityAttributedValue - (NSAttributedString *)accessibilityAttributedValue
{ {
if (_flags.setAccessibilityValue) {
return [[NSAttributedString alloc] initWithString:accessibilityValue];
}
return accessibilityAttributedValue; return accessibilityAttributedValue;
} }
- (void)setAccessibilityAttributedValue:(NSAttributedString *)newAccessibilityAttributedValue - (void)setAccessibilityAttributedValue:(NSAttributedString *)newAccessibilityAttributedValue
{ {
if (! ASObjectIsEqual(accessibilityAttributedValue, newAccessibilityAttributedValue)) { ASCompareAssignCopy(accessibilityAttributedValue, newAccessibilityAttributedValue);
_flags.setAccessibilityAttributedValue = YES; _flags.setAccessibilityAttributedValue = YES;
_flags.setAccessibilityValue = YES; _flags.setAccessibilityValue = NO;
accessibilityAttributedValue = newAccessibilityAttributedValue? [newAccessibilityAttributedValue copy] : nil;
accessibilityValue = newAccessibilityAttributedValue ? [newAccessibilityAttributedValue.string copy] : nil;
}
} }
- (UIAccessibilityTraits)accessibilityTraits - (UIAccessibilityTraits)accessibilityTraits
@ -1087,20 +1087,23 @@ static UIColor *defaultTintColor = nil;
if (flags.setAccessibilityLabel) if (flags.setAccessibilityLabel)
view.accessibilityLabel = accessibilityLabel; view.accessibilityLabel = accessibilityLabel;
if (AS_AT_LEAST_IOS11 && flags.setAccessibilityAttributedLabel)
[view setValue:accessibilityAttributedLabel forKey:@"accessibilityAttributedLabel"];
if (flags.setAccessibilityHint) if (flags.setAccessibilityHint)
view.accessibilityHint = accessibilityHint; view.accessibilityHint = accessibilityHint;
if (AS_AT_LEAST_IOS11 && flags.setAccessibilityAttributedHint)
[view setValue:accessibilityAttributedHint forKey:@"accessibilityAttributedHint"];
if (flags.setAccessibilityValue) if (flags.setAccessibilityValue)
view.accessibilityValue = accessibilityValue; view.accessibilityValue = accessibilityValue;
if (AS_AT_LEAST_IOS11 && flags.setAccessibilityAttributedValue) if (AS_AVAILABLE_IOS(11)) {
[view setValue:accessibilityAttributedValue forKey:@"accessibilityAttributedValue"]; if (flags.setAccessibilityAttributedLabel) {
view.accessibilityAttributedLabel = accessibilityAttributedLabel;
}
if (flags.setAccessibilityAttributedHint) {
view.accessibilityAttributedHint = accessibilityAttributedHint;
}
if (flags.setAccessibilityAttributedValue) {
view.accessibilityAttributedValue = accessibilityAttributedValue;
}
}
if (flags.setAccessibilityTraits) if (flags.setAccessibilityTraits)
view.accessibilityTraits = accessibilityTraits; view.accessibilityTraits = accessibilityTraits;