diff --git a/Libraries/Components/AccessibilityInfo/NativeAccessibilityManager.js b/Libraries/Components/AccessibilityInfo/NativeAccessibilityManager.js index c9b042a665b..0a1abe57924 100644 --- a/Libraries/Components/AccessibilityInfo/NativeAccessibilityManager.js +++ b/Libraries/Components/AccessibilityInfo/NativeAccessibilityManager.js @@ -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, diff --git a/Libraries/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec-generated.mm b/Libraries/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec-generated.mm index eb25fc7d24b..5ec9e809029 100644 --- a/Libraries/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec-generated.mm +++ b/Libraries/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec-generated.mm @@ -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(json); + return facebook::react::managedPointer(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}; diff --git a/Libraries/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec.h b/Libraries/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec.h index eee2be7d6fc..c0d786e86db 100644 --- a/Libraries/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec.h +++ b/Libraries/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec.h @@ -50,7 +50,7 @@ namespace facebook { namespace JS { namespace NativeAccessibilityManager { - struct SpecSetAccessibilityContentSizeMultipliersJSMultiipliers { + struct SpecSetAccessibilityContentSizeMultipliersJSMultipliers { folly::Optional extraSmall() const; folly::Optional small() const; folly::Optional medium() const; @@ -64,15 +64,15 @@ namespace JS { folly::Optional accessibilityExtraExtraLarge() const; folly::Optional 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 @@ -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 -inline folly::Optional JS::NativeAccessibilityManager::SpecSetAccessibilityContentSizeMultipliersJSMultiipliers::extraSmall() const +inline folly::Optional JS::NativeAccessibilityManager::SpecSetAccessibilityContentSizeMultipliersJSMultipliers::extraSmall() const { id const p = _v[@"extraSmall"]; return RCTBridgingToOptionalDouble(p); } -inline folly::Optional JS::NativeAccessibilityManager::SpecSetAccessibilityContentSizeMultipliersJSMultiipliers::small() const +inline folly::Optional JS::NativeAccessibilityManager::SpecSetAccessibilityContentSizeMultipliersJSMultipliers::small() const { id const p = _v[@"small"]; return RCTBridgingToOptionalDouble(p); } -inline folly::Optional JS::NativeAccessibilityManager::SpecSetAccessibilityContentSizeMultipliersJSMultiipliers::medium() const +inline folly::Optional JS::NativeAccessibilityManager::SpecSetAccessibilityContentSizeMultipliersJSMultipliers::medium() const { id const p = _v[@"medium"]; return RCTBridgingToOptionalDouble(p); } -inline folly::Optional JS::NativeAccessibilityManager::SpecSetAccessibilityContentSizeMultipliersJSMultiipliers::large() const +inline folly::Optional JS::NativeAccessibilityManager::SpecSetAccessibilityContentSizeMultipliersJSMultipliers::large() const { id const p = _v[@"large"]; return RCTBridgingToOptionalDouble(p); } -inline folly::Optional JS::NativeAccessibilityManager::SpecSetAccessibilityContentSizeMultipliersJSMultiipliers::extraLarge() const +inline folly::Optional JS::NativeAccessibilityManager::SpecSetAccessibilityContentSizeMultipliersJSMultipliers::extraLarge() const { id const p = _v[@"extraLarge"]; return RCTBridgingToOptionalDouble(p); } -inline folly::Optional JS::NativeAccessibilityManager::SpecSetAccessibilityContentSizeMultipliersJSMultiipliers::extraExtraLarge() const +inline folly::Optional JS::NativeAccessibilityManager::SpecSetAccessibilityContentSizeMultipliersJSMultipliers::extraExtraLarge() const { id const p = _v[@"extraExtraLarge"]; return RCTBridgingToOptionalDouble(p); } -inline folly::Optional JS::NativeAccessibilityManager::SpecSetAccessibilityContentSizeMultipliersJSMultiipliers::extraExtraExtraLarge() const +inline folly::Optional JS::NativeAccessibilityManager::SpecSetAccessibilityContentSizeMultipliersJSMultipliers::extraExtraExtraLarge() const { id const p = _v[@"extraExtraExtraLarge"]; return RCTBridgingToOptionalDouble(p); } -inline folly::Optional JS::NativeAccessibilityManager::SpecSetAccessibilityContentSizeMultipliersJSMultiipliers::accessibilityMedium() const +inline folly::Optional JS::NativeAccessibilityManager::SpecSetAccessibilityContentSizeMultipliersJSMultipliers::accessibilityMedium() const { id const p = _v[@"accessibilityMedium"]; return RCTBridgingToOptionalDouble(p); } -inline folly::Optional JS::NativeAccessibilityManager::SpecSetAccessibilityContentSizeMultipliersJSMultiipliers::accessibilityLarge() const +inline folly::Optional JS::NativeAccessibilityManager::SpecSetAccessibilityContentSizeMultipliersJSMultipliers::accessibilityLarge() const { id const p = _v[@"accessibilityLarge"]; return RCTBridgingToOptionalDouble(p); } -inline folly::Optional JS::NativeAccessibilityManager::SpecSetAccessibilityContentSizeMultipliersJSMultiipliers::accessibilityExtraLarge() const +inline folly::Optional JS::NativeAccessibilityManager::SpecSetAccessibilityContentSizeMultipliersJSMultipliers::accessibilityExtraLarge() const { id const p = _v[@"accessibilityExtraLarge"]; return RCTBridgingToOptionalDouble(p); } -inline folly::Optional JS::NativeAccessibilityManager::SpecSetAccessibilityContentSizeMultipliersJSMultiipliers::accessibilityExtraExtraLarge() const +inline folly::Optional JS::NativeAccessibilityManager::SpecSetAccessibilityContentSizeMultipliersJSMultipliers::accessibilityExtraExtraLarge() const { id const p = _v[@"accessibilityExtraExtraLarge"]; return RCTBridgingToOptionalDouble(p); } -inline folly::Optional JS::NativeAccessibilityManager::SpecSetAccessibilityContentSizeMultipliersJSMultiipliers::accessibilityExtraExtraExtraLarge() const +inline folly::Optional JS::NativeAccessibilityManager::SpecSetAccessibilityContentSizeMultipliersJSMultipliers::accessibilityExtraExtraExtraLarge() const { id const p = _v[@"accessibilityExtraExtraExtraLarge"]; return RCTBridgingToOptionalDouble(p); diff --git a/Libraries/Text/Text/RCTTextViewManager.m b/Libraries/Text/Text/RCTTextViewManager.m index 8b4db638a2c..47f0b8721fa 100644 --- a/Libraries/Text/Text/RCTTextViewManager.m +++ b/Libraries/Text/Text/RCTTextViewManager.m @@ -7,7 +7,6 @@ #import -#import #import #import #import @@ -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 *shadowViews = _shadowViews; RCTExecuteOnUIManagerQueue(^{ diff --git a/Libraries/Text/TextInput/RCTBaseTextInputView.m b/Libraries/Text/TextInput/RCTBaseTextInputView.m index 6057a48c0a6..283c3213976 100644 --- a/Libraries/Text/TextInput/RCTBaseTextInputView.m +++ b/Libraries/Text/TextInput/RCTBaseTextInputView.m @@ -7,7 +7,6 @@ #import -#import #import #import #import diff --git a/Libraries/Text/TextInput/RCTBaseTextInputViewManager.m b/Libraries/Text/TextInput/RCTBaseTextInputViewManager.m index f57b69d1cd6..008a0263673 100644 --- a/Libraries/Text/TextInput/RCTBaseTextInputViewManager.m +++ b/Libraries/Text/TextInput/RCTBaseTextInputViewManager.m @@ -7,7 +7,6 @@ #import -#import #import #import #import @@ -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 *shadowViews = _shadowViews; RCTExecuteOnUIManagerQueue(^{ diff --git a/RNTester/RNTester/AppDelegate.mm b/RNTester/RNTester/AppDelegate.mm index f390405d3db..e7c89098edc 100644 --- a/RNTester/RNTester/AppDelegate.mm +++ b/RNTester/RNTester/AppDelegate.mm @@ -108,6 +108,7 @@ - (std::unique_ptr)jsExecutorFactoryForBridge:(RCTBridge *)bridge { + _turboModuleManager = [[RCTTurboModuleManager alloc] initWithBridge:bridge delegate:self]; __weak __typeof(self) weakSelf = self; return std::make_unique([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]; } }); diff --git a/React/CoreModules/BUCK b/React/CoreModules/BUCK index dfd93ea4963..cc18821485d 100644 --- a/React/CoreModules/BUCK +++ b/React/CoreModules/BUCK @@ -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", ) + diff --git a/React/CoreModules/CoreModulesPlugins.h b/React/CoreModules/CoreModulesPlugins.h index 8d49aaf456f..849ba766f5f 100644 --- a/React/CoreModules/CoreModulesPlugins.h +++ b/React/CoreModules/CoreModulesPlugins.h @@ -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); diff --git a/React/CoreModules/CoreModulesPlugins.mm b/React/CoreModules/CoreModulesPlugins.mm index 4b7a90103c9..6b14b5f0dbb 100644 --- a/React/CoreModules/CoreModulesPlugins.mm +++ b/React/CoreModules/CoreModulesPlugins.mm @@ -17,7 +17,8 @@ #import static std::unordered_map sCoreModuleClassMap = { - {"DeviceInfo", RCTDeviceInfoCls}, + {"AccessibilityManager", RCTAccessibilityManagerCls}, +{"DeviceInfo", RCTDeviceInfoCls}, {"ExceptionsManager", RCTExceptionsManagerCls}, {"ImageLoader", RCTImageLoaderCls}, {"PlatformConstants", RCTPlatformCls}, diff --git a/React/Modules/RCTAccessibilityManager.h b/React/CoreModules/RCTAccessibilityManager.h similarity index 100% rename from React/Modules/RCTAccessibilityManager.h rename to React/CoreModules/RCTAccessibilityManager.h diff --git a/React/Modules/RCTAccessibilityManager.m b/React/CoreModules/RCTAccessibilityManager.mm similarity index 77% rename from React/Modules/RCTAccessibilityManager.m rename to React/CoreModules/RCTAccessibilityManager.mm index cf41839935b..4e8b935617e 100644 --- a/React/Modules/RCTAccessibilityManager.m +++ b/React/CoreModules/RCTAccessibilityManager.mm @@ -7,36 +7,18 @@ #import "RCTAccessibilityManager.h" -#import "RCTUIManager.h" -#import "RCTBridge.h" -#import "RCTConvert.h" -#import "RCTEventDispatcher.h" -#import "RCTLog.h" +#import +#import +#import +#import +#import +#import + +#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 () @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 *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 *multipliers, + NSString *key, + folly::Optional 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)getTurboModuleWithJsInvoker: +(std::shared_ptr)jsInvoker +{ + return std::make_shared(self, jsInvoker); } @end @@ -342,3 +349,8 @@ RCT_EXPORT_METHOD(getCurrentVoiceOverState:(RCTResponseSenderBlock)callback } @end + +Class RCTAccessibilityManagerCls(void) +{ + return RCTAccessibilityManager.class; +} diff --git a/React/Modules/RCTUIManager.m b/React/Modules/RCTUIManager.m index f2bddbf6460..6e65c034caf 100644 --- a/React/Modules/RCTUIManager.m +++ b/React/Modules/RCTUIManager.m @@ -9,7 +9,6 @@ #import -#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(^{