mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Make RCTAccessibilityManger a TurboModule
Summary: Move RCTAccessibilityManager to CoreModules (since that's the only dir that supports TM). Fixup some variable names to match spec. Reviewed By: RSNara Differential Revision: D16861739 fbshipit-source-id: a0a53b221dcc172979d1f2c83851ab92e23f2333
This commit is contained in:
committed by
Facebook Github Bot
parent
db9fab4473
commit
f229d67498
@@ -38,7 +38,7 @@ export interface Spec extends TurboModule {
|
||||
onSuccess: (isScreenReaderEnabled: boolean) => void,
|
||||
onError: (error: Object) => void,
|
||||
) => void;
|
||||
+setAccessibilityContentSizeMultipliers: (JSMultiipliers: {|
|
||||
+setAccessibilityContentSizeMultipliers: (JSMultipliers: {|
|
||||
+extraSmall?: ?number,
|
||||
+small?: ?number,
|
||||
+medium?: ?number,
|
||||
|
||||
@@ -55,10 +55,10 @@ namespace facebook {
|
||||
|
||||
} // namespace react
|
||||
} // namespace facebook
|
||||
@implementation RCTCxxConvert (NativeAccessibilityManager_SpecSetAccessibilityContentSizeMultipliersJSMultiipliers)
|
||||
+ (RCTManagedPointer *)JS_NativeAccessibilityManager_SpecSetAccessibilityContentSizeMultipliersJSMultiipliers:(id)json
|
||||
@implementation RCTCxxConvert (NativeAccessibilityManager_SpecSetAccessibilityContentSizeMultipliersJSMultipliers)
|
||||
+ (RCTManagedPointer *)JS_NativeAccessibilityManager_SpecSetAccessibilityContentSizeMultipliersJSMultipliers:(id)json
|
||||
{
|
||||
return facebook::react::managedPointer<JS::NativeAccessibilityManager::SpecSetAccessibilityContentSizeMultipliersJSMultiipliers>(json);
|
||||
return facebook::react::managedPointer<JS::NativeAccessibilityManager::SpecSetAccessibilityContentSizeMultipliersJSMultipliers>(json);
|
||||
}
|
||||
@end
|
||||
namespace facebook {
|
||||
@@ -125,7 +125,7 @@ namespace facebook {
|
||||
|
||||
methodMap_["setAccessibilityContentSizeMultipliers"] = MethodMetadata {1, __hostFunction_NativeAccessibilityManagerSpecJSI_setAccessibilityContentSizeMultipliers};
|
||||
|
||||
setMethodArgConversionSelector(@"setAccessibilityContentSizeMultipliers", 0, @"JS_NativeAccessibilityManager_SpecSetAccessibilityContentSizeMultipliersJSMultiipliers:");
|
||||
setMethodArgConversionSelector(@"setAccessibilityContentSizeMultipliers", 0, @"JS_NativeAccessibilityManager_SpecSetAccessibilityContentSizeMultipliersJSMultipliers:");
|
||||
|
||||
methodMap_["setAccessibilityFocus"] = MethodMetadata {1, __hostFunction_NativeAccessibilityManagerSpecJSI_setAccessibilityFocus};
|
||||
|
||||
|
||||
@@ -50,7 +50,7 @@ namespace facebook {
|
||||
|
||||
namespace JS {
|
||||
namespace NativeAccessibilityManager {
|
||||
struct SpecSetAccessibilityContentSizeMultipliersJSMultiipliers {
|
||||
struct SpecSetAccessibilityContentSizeMultipliersJSMultipliers {
|
||||
folly::Optional<double> extraSmall() const;
|
||||
folly::Optional<double> small() const;
|
||||
folly::Optional<double> medium() const;
|
||||
@@ -64,15 +64,15 @@ namespace JS {
|
||||
folly::Optional<double> accessibilityExtraExtraLarge() const;
|
||||
folly::Optional<double> accessibilityExtraExtraExtraLarge() const;
|
||||
|
||||
SpecSetAccessibilityContentSizeMultipliersJSMultiipliers(NSDictionary *const v) : _v(v) {}
|
||||
SpecSetAccessibilityContentSizeMultipliersJSMultipliers(NSDictionary *const v) : _v(v) {}
|
||||
private:
|
||||
NSDictionary *_v;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@interface RCTCxxConvert (NativeAccessibilityManager_SpecSetAccessibilityContentSizeMultipliersJSMultiipliers)
|
||||
+ (RCTManagedPointer *)JS_NativeAccessibilityManager_SpecSetAccessibilityContentSizeMultipliersJSMultiipliers:(id)json;
|
||||
@interface RCTCxxConvert (NativeAccessibilityManager_SpecSetAccessibilityContentSizeMultipliersJSMultipliers)
|
||||
+ (RCTManagedPointer *)JS_NativeAccessibilityManager_SpecSetAccessibilityContentSizeMultipliersJSMultipliers:(id)json;
|
||||
@end
|
||||
@protocol NativeAccessibilityManagerSpec <RCTBridgeModule, RCTTurboModule>
|
||||
|
||||
@@ -88,7 +88,7 @@ namespace JS {
|
||||
onError:(RCTResponseSenderBlock)onError;
|
||||
- (void)getCurrentVoiceOverState:(RCTResponseSenderBlock)onSuccess
|
||||
onError:(RCTResponseSenderBlock)onError;
|
||||
- (void)setAccessibilityContentSizeMultipliers:(JS::NativeAccessibilityManager::SpecSetAccessibilityContentSizeMultipliersJSMultiipliers &)JSMultiipliers;
|
||||
- (void)setAccessibilityContentSizeMultipliers:(JS::NativeAccessibilityManager::SpecSetAccessibilityContentSizeMultipliersJSMultipliers &)JSMultipliers;
|
||||
- (void)setAccessibilityFocus:(double)reactTag;
|
||||
- (void)announceForAccessibility:(NSString *)announcement;
|
||||
|
||||
@@ -2329,62 +2329,62 @@ namespace facebook {
|
||||
#import <RCTTypeSafety/RCTConvertHelpers.h>
|
||||
|
||||
|
||||
inline folly::Optional<double> JS::NativeAccessibilityManager::SpecSetAccessibilityContentSizeMultipliersJSMultiipliers::extraSmall() const
|
||||
inline folly::Optional<double> JS::NativeAccessibilityManager::SpecSetAccessibilityContentSizeMultipliersJSMultipliers::extraSmall() const
|
||||
{
|
||||
id const p = _v[@"extraSmall"];
|
||||
return RCTBridgingToOptionalDouble(p);
|
||||
}
|
||||
inline folly::Optional<double> JS::NativeAccessibilityManager::SpecSetAccessibilityContentSizeMultipliersJSMultiipliers::small() const
|
||||
inline folly::Optional<double> JS::NativeAccessibilityManager::SpecSetAccessibilityContentSizeMultipliersJSMultipliers::small() const
|
||||
{
|
||||
id const p = _v[@"small"];
|
||||
return RCTBridgingToOptionalDouble(p);
|
||||
}
|
||||
inline folly::Optional<double> JS::NativeAccessibilityManager::SpecSetAccessibilityContentSizeMultipliersJSMultiipliers::medium() const
|
||||
inline folly::Optional<double> JS::NativeAccessibilityManager::SpecSetAccessibilityContentSizeMultipliersJSMultipliers::medium() const
|
||||
{
|
||||
id const p = _v[@"medium"];
|
||||
return RCTBridgingToOptionalDouble(p);
|
||||
}
|
||||
inline folly::Optional<double> JS::NativeAccessibilityManager::SpecSetAccessibilityContentSizeMultipliersJSMultiipliers::large() const
|
||||
inline folly::Optional<double> JS::NativeAccessibilityManager::SpecSetAccessibilityContentSizeMultipliersJSMultipliers::large() const
|
||||
{
|
||||
id const p = _v[@"large"];
|
||||
return RCTBridgingToOptionalDouble(p);
|
||||
}
|
||||
inline folly::Optional<double> JS::NativeAccessibilityManager::SpecSetAccessibilityContentSizeMultipliersJSMultiipliers::extraLarge() const
|
||||
inline folly::Optional<double> JS::NativeAccessibilityManager::SpecSetAccessibilityContentSizeMultipliersJSMultipliers::extraLarge() const
|
||||
{
|
||||
id const p = _v[@"extraLarge"];
|
||||
return RCTBridgingToOptionalDouble(p);
|
||||
}
|
||||
inline folly::Optional<double> JS::NativeAccessibilityManager::SpecSetAccessibilityContentSizeMultipliersJSMultiipliers::extraExtraLarge() const
|
||||
inline folly::Optional<double> JS::NativeAccessibilityManager::SpecSetAccessibilityContentSizeMultipliersJSMultipliers::extraExtraLarge() const
|
||||
{
|
||||
id const p = _v[@"extraExtraLarge"];
|
||||
return RCTBridgingToOptionalDouble(p);
|
||||
}
|
||||
inline folly::Optional<double> JS::NativeAccessibilityManager::SpecSetAccessibilityContentSizeMultipliersJSMultiipliers::extraExtraExtraLarge() const
|
||||
inline folly::Optional<double> JS::NativeAccessibilityManager::SpecSetAccessibilityContentSizeMultipliersJSMultipliers::extraExtraExtraLarge() const
|
||||
{
|
||||
id const p = _v[@"extraExtraExtraLarge"];
|
||||
return RCTBridgingToOptionalDouble(p);
|
||||
}
|
||||
inline folly::Optional<double> JS::NativeAccessibilityManager::SpecSetAccessibilityContentSizeMultipliersJSMultiipliers::accessibilityMedium() const
|
||||
inline folly::Optional<double> JS::NativeAccessibilityManager::SpecSetAccessibilityContentSizeMultipliersJSMultipliers::accessibilityMedium() const
|
||||
{
|
||||
id const p = _v[@"accessibilityMedium"];
|
||||
return RCTBridgingToOptionalDouble(p);
|
||||
}
|
||||
inline folly::Optional<double> JS::NativeAccessibilityManager::SpecSetAccessibilityContentSizeMultipliersJSMultiipliers::accessibilityLarge() const
|
||||
inline folly::Optional<double> JS::NativeAccessibilityManager::SpecSetAccessibilityContentSizeMultipliersJSMultipliers::accessibilityLarge() const
|
||||
{
|
||||
id const p = _v[@"accessibilityLarge"];
|
||||
return RCTBridgingToOptionalDouble(p);
|
||||
}
|
||||
inline folly::Optional<double> JS::NativeAccessibilityManager::SpecSetAccessibilityContentSizeMultipliersJSMultiipliers::accessibilityExtraLarge() const
|
||||
inline folly::Optional<double> JS::NativeAccessibilityManager::SpecSetAccessibilityContentSizeMultipliersJSMultipliers::accessibilityExtraLarge() const
|
||||
{
|
||||
id const p = _v[@"accessibilityExtraLarge"];
|
||||
return RCTBridgingToOptionalDouble(p);
|
||||
}
|
||||
inline folly::Optional<double> JS::NativeAccessibilityManager::SpecSetAccessibilityContentSizeMultipliersJSMultiipliers::accessibilityExtraExtraLarge() const
|
||||
inline folly::Optional<double> JS::NativeAccessibilityManager::SpecSetAccessibilityContentSizeMultipliersJSMultipliers::accessibilityExtraExtraLarge() const
|
||||
{
|
||||
id const p = _v[@"accessibilityExtraExtraLarge"];
|
||||
return RCTBridgingToOptionalDouble(p);
|
||||
}
|
||||
inline folly::Optional<double> JS::NativeAccessibilityManager::SpecSetAccessibilityContentSizeMultipliersJSMultiipliers::accessibilityExtraExtraExtraLarge() const
|
||||
inline folly::Optional<double> JS::NativeAccessibilityManager::SpecSetAccessibilityContentSizeMultipliersJSMultipliers::accessibilityExtraExtraExtraLarge() const
|
||||
{
|
||||
id const p = _v[@"accessibilityExtraExtraExtraLarge"];
|
||||
return RCTBridgingToOptionalDouble(p);
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
|
||||
#import <React/RCTTextViewManager.h>
|
||||
|
||||
#import <React/RCTAccessibilityManager.h>
|
||||
#import <React/RCTShadowView+Layout.h>
|
||||
#import <React/RCTShadowView.h>
|
||||
#import <React/RCTUIManager.h>
|
||||
@@ -46,8 +45,9 @@ RCT_EXPORT_VIEW_PROPERTY(selectable, BOOL)
|
||||
|
||||
[[NSNotificationCenter defaultCenter] addObserver:self
|
||||
selector:@selector(handleDidUpdateMultiplierNotification)
|
||||
name:RCTAccessibilityManagerDidUpdateMultiplierNotification
|
||||
object:bridge.accessibilityManager];
|
||||
name:@"RCTAccessibilityManagerDidUpdateMultiplierNotification"
|
||||
object:[bridge moduleForName:@"AccessibilityManager"
|
||||
lazilyLoadIfNecessary:YES]];
|
||||
}
|
||||
|
||||
- (void)dealloc
|
||||
@@ -63,7 +63,8 @@ RCT_EXPORT_VIEW_PROPERTY(selectable, BOOL)
|
||||
- (RCTShadowView *)shadowView
|
||||
{
|
||||
RCTTextShadowView *shadowView = [[RCTTextShadowView alloc] initWithBridge:self.bridge];
|
||||
shadowView.textAttributes.fontSizeMultiplier = self.bridge.accessibilityManager.multiplier;
|
||||
shadowView.textAttributes.fontSizeMultiplier = [[[self.bridge moduleForName:@"AccessibilityManager"]
|
||||
valueForKey:@"multiplier"] floatValue];
|
||||
[_shadowViews addObject:shadowView];
|
||||
return shadowView;
|
||||
}
|
||||
@@ -81,7 +82,8 @@ RCT_EXPORT_VIEW_PROPERTY(selectable, BOOL)
|
||||
|
||||
- (void)handleDidUpdateMultiplierNotification
|
||||
{
|
||||
CGFloat fontSizeMultiplier = self.bridge.accessibilityManager.multiplier;
|
||||
CGFloat fontSizeMultiplier = [[[self.bridge moduleForName:@"AccessibilityManager"]
|
||||
valueForKey:@"multiplier"] floatValue];
|
||||
|
||||
NSHashTable<RCTTextShadowView *> *shadowViews = _shadowViews;
|
||||
RCTExecuteOnUIManagerQueue(^{
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
|
||||
#import <React/RCTBaseTextInputView.h>
|
||||
|
||||
#import <React/RCTAccessibilityManager.h>
|
||||
#import <React/RCTBridge.h>
|
||||
#import <React/RCTConvert.h>
|
||||
#import <React/RCTEventDispatcher.h>
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
|
||||
#import <React/RCTBaseTextInputViewManager.h>
|
||||
|
||||
#import <React/RCTAccessibilityManager.h>
|
||||
#import <React/RCTBridge.h>
|
||||
#import <React/RCTConvert.h>
|
||||
#import <React/RCTFont.h>
|
||||
@@ -74,7 +73,9 @@ RCT_EXPORT_SHADOW_PROPERTY(onContentSizeChange, RCTBubblingEventBlock)
|
||||
- (RCTShadowView *)shadowView
|
||||
{
|
||||
RCTBaseTextInputShadowView *shadowView = [[RCTBaseTextInputShadowView alloc] initWithBridge:self.bridge];
|
||||
shadowView.textAttributes.fontSizeMultiplier = self.bridge.accessibilityManager.multiplier;
|
||||
shadowView.textAttributes.fontSizeMultiplier = [[[self.bridge
|
||||
moduleForName:@"AccessibilityManager"
|
||||
lazilyLoadIfNecessary:YES] valueForKey:@"multiplier"] floatValue];
|
||||
[_shadowViews addObject:shadowView];
|
||||
return shadowView;
|
||||
}
|
||||
@@ -89,8 +90,9 @@ RCT_EXPORT_SHADOW_PROPERTY(onContentSizeChange, RCTBubblingEventBlock)
|
||||
|
||||
[[NSNotificationCenter defaultCenter] addObserver:self
|
||||
selector:@selector(handleDidUpdateMultiplierNotification)
|
||||
name:RCTAccessibilityManagerDidUpdateMultiplierNotification
|
||||
object:bridge.accessibilityManager];
|
||||
name:@"RCTAccessibilityManagerDidUpdateMultiplierNotification"
|
||||
object:[bridge moduleForName:@"AccessibilityManager"
|
||||
lazilyLoadIfNecessary:YES]];
|
||||
}
|
||||
|
||||
- (void)dealloc
|
||||
@@ -111,7 +113,8 @@ RCT_EXPORT_SHADOW_PROPERTY(onContentSizeChange, RCTBubblingEventBlock)
|
||||
|
||||
- (void)handleDidUpdateMultiplierNotification
|
||||
{
|
||||
CGFloat fontSizeMultiplier = self.bridge.accessibilityManager.multiplier;
|
||||
CGFloat fontSizeMultiplier = [[[self.bridge moduleForName:@"AccessibilityManager"]
|
||||
valueForKey:@"multiplier"] floatValue];
|
||||
|
||||
NSHashTable<RCTBaseTextInputShadowView *> *shadowViews = _shadowViews;
|
||||
RCTExecuteOnUIManagerQueue(^{
|
||||
|
||||
@@ -108,6 +108,7 @@
|
||||
|
||||
- (std::unique_ptr<facebook::react::JSExecutorFactory>)jsExecutorFactoryForBridge:(RCTBridge *)bridge
|
||||
{
|
||||
_turboModuleManager = [[RCTTurboModuleManager alloc] initWithBridge:bridge delegate:self];
|
||||
__weak __typeof(self) weakSelf = self;
|
||||
return std::make_unique<facebook::react::JSCExecutorFactory>([weakSelf, bridge](facebook::jsi::Runtime &runtime) {
|
||||
if (!bridge) {
|
||||
@@ -115,7 +116,6 @@
|
||||
}
|
||||
__typeof(self) strongSelf = weakSelf;
|
||||
if (strongSelf) {
|
||||
strongSelf->_turboModuleManager = [[RCTTurboModuleManager alloc] initWithBridge:bridge delegate:strongSelf];
|
||||
[strongSelf->_turboModuleManager installJSBindingWithRuntime:&runtime];
|
||||
}
|
||||
});
|
||||
|
||||
@@ -38,6 +38,10 @@ rn_apple_library(
|
||||
["-D PIC_MODIFIER=@PLT"],
|
||||
)],
|
||||
plugins = react_module_plugin_providers(
|
||||
name = "AccessibilityManager",
|
||||
native_class_func = "RCTAccessibilityManagerCls",
|
||||
) +
|
||||
react_module_plugin_providers(
|
||||
name = "DeviceInfo",
|
||||
native_class_func = "RCTDeviceInfoCls",
|
||||
) +
|
||||
|
||||
@@ -29,6 +29,7 @@ extern "C" {
|
||||
Class RCTCoreModulesClassProvider(const char *name);
|
||||
|
||||
// Lookup functions
|
||||
Class RCTAccessibilityManagerCls(void);
|
||||
Class RCTDeviceInfoCls(void);
|
||||
Class RCTExceptionsManagerCls(void);
|
||||
Class RCTImageLoaderCls(void);
|
||||
|
||||
@@ -17,7 +17,8 @@
|
||||
#import <unordered_map>
|
||||
|
||||
static std::unordered_map<std::string, Class (*)(void)> sCoreModuleClassMap = {
|
||||
{"DeviceInfo", RCTDeviceInfoCls},
|
||||
{"AccessibilityManager", RCTAccessibilityManagerCls},
|
||||
{"DeviceInfo", RCTDeviceInfoCls},
|
||||
{"ExceptionsManager", RCTExceptionsManagerCls},
|
||||
{"ImageLoader", RCTImageLoaderCls},
|
||||
{"PlatformConstants", RCTPlatformCls},
|
||||
|
||||
+65
-53
@@ -7,36 +7,18 @@
|
||||
|
||||
#import "RCTAccessibilityManager.h"
|
||||
|
||||
#import "RCTUIManager.h"
|
||||
#import "RCTBridge.h"
|
||||
#import "RCTConvert.h"
|
||||
#import "RCTEventDispatcher.h"
|
||||
#import "RCTLog.h"
|
||||
#import <FBReactNativeSpec/FBReactNativeSpec.h>
|
||||
#import <React/RCTUIManager.h>
|
||||
#import <React/RCTBridge.h>
|
||||
#import <React/RCTConvert.h>
|
||||
#import <React/RCTEventDispatcher.h>
|
||||
#import <React/RCTLog.h>
|
||||
|
||||
#import "CoreModulesPlugins.h"
|
||||
|
||||
NSString *const RCTAccessibilityManagerDidUpdateMultiplierNotification = @"RCTAccessibilityManagerDidUpdateMultiplierNotification";
|
||||
|
||||
static NSString *UIKitCategoryFromJSCategory(NSString *JSCategory)
|
||||
{
|
||||
static NSDictionary *map = nil;
|
||||
static dispatch_once_t onceToken;
|
||||
dispatch_once(&onceToken, ^{
|
||||
map = @{@"extraSmall": UIContentSizeCategoryExtraSmall,
|
||||
@"small": UIContentSizeCategorySmall,
|
||||
@"medium": UIContentSizeCategoryMedium,
|
||||
@"large": UIContentSizeCategoryLarge,
|
||||
@"extraLarge": UIContentSizeCategoryExtraLarge,
|
||||
@"extraExtraLarge": UIContentSizeCategoryExtraExtraLarge,
|
||||
@"extraExtraExtraLarge": UIContentSizeCategoryExtraExtraExtraLarge,
|
||||
@"accessibilityMedium": UIContentSizeCategoryAccessibilityMedium,
|
||||
@"accessibilityLarge": UIContentSizeCategoryAccessibilityLarge,
|
||||
@"accessibilityExtraLarge": UIContentSizeCategoryAccessibilityExtraLarge,
|
||||
@"accessibilityExtraExtraLarge": UIContentSizeCategoryAccessibilityExtraExtraLarge,
|
||||
@"accessibilityExtraExtraExtraLarge": UIContentSizeCategoryAccessibilityExtraExtraExtraLarge};
|
||||
});
|
||||
return map[JSCategory];
|
||||
}
|
||||
|
||||
@interface RCTAccessibilityManager ()
|
||||
@interface RCTAccessibilityManager () <NativeAccessibilityManagerSpec>
|
||||
|
||||
@property (nonatomic, copy) NSString *contentSizeCategory;
|
||||
@property (nonatomic, assign) CGFloat multiplier;
|
||||
@@ -265,21 +247,39 @@ RCT_EXPORT_MODULE()
|
||||
return _multipliers;
|
||||
}
|
||||
|
||||
RCT_EXPORT_METHOD(setAccessibilityContentSizeMultipliers:(NSDictionary *)JSMultipliers)
|
||||
RCT_EXPORT_METHOD(setAccessibilityContentSizeMultipliers:(JS::NativeAccessibilityManager::SpecSetAccessibilityContentSizeMultipliersJSMultipliers &)JSMultipliers)
|
||||
{
|
||||
NSMutableDictionary<NSString *, NSNumber *> *multipliers = [NSMutableDictionary new];
|
||||
for (NSString *__nonnull JSCategory in JSMultipliers) {
|
||||
NSNumber *m = [RCTConvert NSNumber:JSMultipliers[JSCategory]];
|
||||
NSString *UIKitCategory = UIKitCategoryFromJSCategory(JSCategory);
|
||||
multipliers[UIKitCategory] = m;
|
||||
}
|
||||
setMultipliers(multipliers, UIContentSizeCategoryExtraSmall, JSMultipliers.extraSmall());
|
||||
setMultipliers(multipliers, UIContentSizeCategorySmall, JSMultipliers.small());
|
||||
setMultipliers(multipliers, UIContentSizeCategoryMedium, JSMultipliers.medium());
|
||||
setMultipliers(multipliers, UIContentSizeCategoryLarge, JSMultipliers.large());
|
||||
setMultipliers(multipliers, UIContentSizeCategoryExtraLarge, JSMultipliers.extraLarge());
|
||||
setMultipliers(multipliers, UIContentSizeCategoryExtraExtraLarge, JSMultipliers.extraExtraLarge());
|
||||
setMultipliers(multipliers, UIContentSizeCategoryExtraExtraExtraLarge, JSMultipliers.extraExtraExtraLarge());
|
||||
setMultipliers(multipliers, UIContentSizeCategoryAccessibilityMedium, JSMultipliers.accessibilityMedium());
|
||||
setMultipliers(multipliers, UIContentSizeCategoryAccessibilityLarge, JSMultipliers.accessibilityLarge());
|
||||
setMultipliers(multipliers, UIContentSizeCategoryAccessibilityExtraLarge, JSMultipliers.accessibilityExtraLarge());
|
||||
setMultipliers(multipliers, UIContentSizeCategoryAccessibilityExtraExtraLarge,
|
||||
JSMultipliers.accessibilityExtraExtraLarge());
|
||||
setMultipliers(multipliers, UIContentSizeCategoryAccessibilityExtraExtraExtraLarge,
|
||||
JSMultipliers.accessibilityExtraExtraExtraLarge());
|
||||
self.multipliers = multipliers;
|
||||
}
|
||||
|
||||
RCT_EXPORT_METHOD(setAccessibilityFocus:(nonnull NSNumber *)reactTag)
|
||||
static void setMultipliers(NSMutableDictionary<NSString *, NSNumber *> *multipliers,
|
||||
NSString *key,
|
||||
folly::Optional<double> optionalDouble)
|
||||
{
|
||||
if (optionalDouble.hasValue()) {
|
||||
multipliers[key] = @(optionalDouble.value());
|
||||
}
|
||||
}
|
||||
|
||||
RCT_EXPORT_METHOD(setAccessibilityFocus:(double)reactTag)
|
||||
{
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
UIView *view = [self.bridge.uiManager viewForReactTag:reactTag];
|
||||
UIView *view = [self.bridge.uiManager viewForReactTag:@(reactTag)];
|
||||
UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification, view);
|
||||
});
|
||||
}
|
||||
@@ -296,40 +296,47 @@ RCT_EXPORT_METHOD(getMultiplier:(RCTResponseSenderBlock)callback)
|
||||
}
|
||||
}
|
||||
|
||||
RCT_EXPORT_METHOD(getCurrentBoldTextState:(RCTResponseSenderBlock)callback
|
||||
error:(__unused RCTResponseSenderBlock)error)
|
||||
RCT_EXPORT_METHOD(getCurrentBoldTextState:(RCTResponseSenderBlock)onSuccess
|
||||
onError:(__unused RCTResponseSenderBlock)onError)
|
||||
{
|
||||
callback(@[@(_isBoldTextEnabled)]);
|
||||
onSuccess(@[@(_isBoldTextEnabled)]);
|
||||
}
|
||||
|
||||
RCT_EXPORT_METHOD(getCurrentGrayscaleState:(RCTResponseSenderBlock)callback
|
||||
error:(__unused RCTResponseSenderBlock)error)
|
||||
RCT_EXPORT_METHOD(getCurrentGrayscaleState:(RCTResponseSenderBlock)onSuccess
|
||||
onError:(__unused RCTResponseSenderBlock)onError)
|
||||
{
|
||||
callback(@[@(_isGrayscaleEnabled)]);
|
||||
onSuccess(@[@(_isGrayscaleEnabled)]);
|
||||
}
|
||||
|
||||
RCT_EXPORT_METHOD(getCurrentInvertColorsState:(RCTResponseSenderBlock)callback
|
||||
error:(__unused RCTResponseSenderBlock)error)
|
||||
RCT_EXPORT_METHOD(getCurrentInvertColorsState:(RCTResponseSenderBlock)onSuccess
|
||||
onError:(__unused RCTResponseSenderBlock)onError)
|
||||
{
|
||||
callback(@[@(_isInvertColorsEnabled)]);
|
||||
onSuccess(@[@(_isInvertColorsEnabled)]);
|
||||
}
|
||||
|
||||
RCT_EXPORT_METHOD(getCurrentReduceMotionState:(RCTResponseSenderBlock)callback
|
||||
error:(__unused RCTResponseSenderBlock)error)
|
||||
RCT_EXPORT_METHOD(getCurrentReduceMotionState:(RCTResponseSenderBlock)onSuccess
|
||||
onError:(__unused RCTResponseSenderBlock)onError)
|
||||
{
|
||||
callback(@[@(_isReduceMotionEnabled)]);
|
||||
onSuccess(@[@(_isReduceMotionEnabled)]);
|
||||
}
|
||||
|
||||
RCT_EXPORT_METHOD(getCurrentReduceTransparencyState:(RCTResponseSenderBlock)callback
|
||||
error:(__unused RCTResponseSenderBlock)error)
|
||||
RCT_EXPORT_METHOD(getCurrentReduceTransparencyState:(RCTResponseSenderBlock)onSuccess
|
||||
onError:(__unused RCTResponseSenderBlock)onError)
|
||||
{
|
||||
callback(@[@(_isReduceTransparencyEnabled)]);
|
||||
onSuccess(@[@(_isReduceTransparencyEnabled)]);
|
||||
}
|
||||
|
||||
RCT_EXPORT_METHOD(getCurrentVoiceOverState:(RCTResponseSenderBlock)callback
|
||||
error:(__unused RCTResponseSenderBlock)error)
|
||||
RCT_EXPORT_METHOD(getCurrentVoiceOverState:(RCTResponseSenderBlock)onSuccess
|
||||
onError:(__unused RCTResponseSenderBlock)onError)
|
||||
{
|
||||
callback(@[@(_isVoiceOverEnabled)]);
|
||||
onSuccess(@[@(_isVoiceOverEnabled)]);
|
||||
}
|
||||
|
||||
|
||||
- (std::shared_ptr<facebook::react::TurboModule>)getTurboModuleWithJsInvoker:
|
||||
(std::shared_ptr<facebook::react::JSCallInvoker>)jsInvoker
|
||||
{
|
||||
return std::make_shared<facebook::react::NativeAccessibilityManagerSpecJSI>(self, jsInvoker);
|
||||
}
|
||||
|
||||
@end
|
||||
@@ -342,3 +349,8 @@ RCT_EXPORT_METHOD(getCurrentVoiceOverState:(RCTResponseSenderBlock)callback
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
Class RCTAccessibilityManagerCls(void)
|
||||
{
|
||||
return RCTAccessibilityManager.class;
|
||||
}
|
||||
@@ -9,7 +9,6 @@
|
||||
|
||||
#import <AVFoundation/AVFoundation.h>
|
||||
|
||||
#import "RCTAccessibilityManager.h"
|
||||
#import "RCTAssert.h"
|
||||
#import "RCTBridge+Private.h"
|
||||
#import "RCTBridge.h"
|
||||
@@ -181,8 +180,9 @@ RCT_EXPORT_MODULE()
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
[[NSNotificationCenter defaultCenter] addObserver:self
|
||||
selector:@selector(didReceiveNewContentSizeMultiplier)
|
||||
name:RCTAccessibilityManagerDidUpdateMultiplierNotification
|
||||
object:self->_bridge.accessibilityManager];
|
||||
name:@"RCTAccessibilityManagerDidUpdateMultiplierNotification"
|
||||
object:[self->_bridge moduleForName:@"AccessibilityManager"
|
||||
lazilyLoadIfNecessary:YES]];
|
||||
});
|
||||
#if !TARGET_OS_TV
|
||||
[[NSNotificationCenter defaultCenter] addObserver:self
|
||||
@@ -200,8 +200,12 @@ RCT_EXPORT_MODULE()
|
||||
// Report the event across the bridge.
|
||||
#pragma clang diagnostic push
|
||||
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
|
||||
[_bridge.eventDispatcher sendDeviceEventWithName:@"didUpdateContentSizeMultiplier"
|
||||
body:@([_bridge.accessibilityManager multiplier])];
|
||||
id multiplier = [[self->_bridge moduleForName:@"AccessibilityManager"
|
||||
lazilyLoadIfNecessary:YES] valueForKey:@"multiplier"];
|
||||
if (multiplier) {
|
||||
[_bridge.eventDispatcher sendDeviceEventWithName:@"didUpdateContentSizeMultiplier"
|
||||
body:multiplier];
|
||||
}
|
||||
#pragma clang diagnostic pop
|
||||
|
||||
RCTExecuteOnUIManagerQueue(^{
|
||||
|
||||
Reference in New Issue
Block a user