diff --git a/Libraries/AppState/NativeAppState.js b/Libraries/AppState/NativeAppState.js index 1146bf588db..76f3b71619e 100644 --- a/Libraries/AppState/NativeAppState.js +++ b/Libraries/AppState/NativeAppState.js @@ -19,7 +19,7 @@ export interface Spec extends TurboModule { |}; +getCurrentAppState: ( success: (appState: {|app_state: string|}) => void, - failure: (error: Object) => void, + error: (error: Object) => void, ) => void; // Events diff --git a/Libraries/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec-generated.mm b/Libraries/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec-generated.mm index e9104537917..2460facf8a0 100644 --- a/Libraries/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec-generated.mm +++ b/Libraries/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec-generated.mm @@ -403,7 +403,7 @@ namespace facebook { static facebook::jsi::Value __hostFunction_NativeAppStateSpecJSI_getCurrentAppState(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) { - return static_cast(turboModule).invokeObjCMethod(rt, VoidKind, "getCurrentAppState", @selector(getCurrentAppState:failure:), args, count); + return static_cast(turboModule).invokeObjCMethod(rt, VoidKind, "getCurrentAppState", @selector(getCurrentAppState:error:), args, count); } static facebook::jsi::Value __hostFunction_NativeAppStateSpecJSI_addListener(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) { diff --git a/Libraries/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec.h b/Libraries/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec.h index 39e877ea170..51fe41d78de 100644 --- a/Libraries/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec.h +++ b/Libraries/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec.h @@ -380,7 +380,7 @@ namespace JS { @protocol NativeAppStateSpec - (void)getCurrentAppState:(RCTResponseSenderBlock)success - failure:(RCTResponseSenderBlock)failure; + error:(RCTResponseSenderBlock)error; - (void)addListener:(NSString *)eventName; - (void)removeListeners:(double)count; - (facebook::react::ModuleConstants)constantsToExport; diff --git a/React/CoreModules/BUCK b/React/CoreModules/BUCK index e73a4173060..982bef44c77 100644 --- a/React/CoreModules/BUCK +++ b/React/CoreModules/BUCK @@ -81,6 +81,9 @@ rn_apple_library( ) + react_module_plugin_providers( name = "KeyboardObserver", native_class_func = "RCTKeyboardObserverCls", + ) + react_module_plugin_providers( + name = "AppState", + native_class_func = "RCTAppStateCls", ), plugins_header = "FBCoreModulesPlugins.h", preprocessor_flags = OBJC_ARC_PREPROCESSOR_FLAGS + get_debug_preprocessor_flags() + rn_extra_build_flags() + [ diff --git a/React/CoreModules/CoreModulesPlugins.h b/React/CoreModules/CoreModulesPlugins.h index 67409e06765..fd33cfd0941 100644 --- a/React/CoreModules/CoreModulesPlugins.h +++ b/React/CoreModules/CoreModulesPlugins.h @@ -43,6 +43,7 @@ Class RCTAsyncLocalStorageCls(void) __attribute__((used)); Class RCTTimingCls(void) __attribute__((used)); Class RCTStatusBarManagerCls(void) __attribute__((used)); Class RCTKeyboardObserverCls(void) __attribute__((used)); +Class RCTAppStateCls(void) __attribute__((used)); #ifdef __cplusplus } diff --git a/React/CoreModules/CoreModulesPlugins.mm b/React/CoreModules/CoreModulesPlugins.mm index fc85fd82647..09f65753f12 100644 --- a/React/CoreModules/CoreModulesPlugins.mm +++ b/React/CoreModules/CoreModulesPlugins.mm @@ -32,6 +32,7 @@ Class RCTCoreModulesClassProvider(const char *name) { {"Timing", RCTTimingCls}, {"StatusBarManager", RCTStatusBarManagerCls}, {"KeyboardObserver", RCTKeyboardObserverCls}, + {"AppState", RCTAppStateCls}, }; auto p = sCoreModuleClassMap.find(name); diff --git a/React/Modules/RCTAppState.h b/React/CoreModules/RCTAppState.h similarity index 100% rename from React/Modules/RCTAppState.h rename to React/CoreModules/RCTAppState.h diff --git a/React/Modules/RCTAppState.m b/React/CoreModules/RCTAppState.mm similarity index 76% rename from React/Modules/RCTAppState.m rename to React/CoreModules/RCTAppState.mm index 81f9f12b24c..22f9f79cc0b 100644 --- a/React/Modules/RCTAppState.m +++ b/React/CoreModules/RCTAppState.mm @@ -7,10 +7,13 @@ #import "RCTAppState.h" -#import "RCTAssert.h" -#import "RCTBridge.h" -#import "RCTEventDispatcher.h" -#import "RCTUtils.h" +#import +#import +#import +#import +#import + +#import "CoreModulesPlugins.h" static NSString *RCTCurrentAppState() { @@ -30,6 +33,9 @@ static NSString *RCTCurrentAppState() return states[@(RCTSharedApplication().applicationState)] ?: @"unknown"; } +@interface RCTAppState() +@end + @implementation RCTAppState { NSString *_lastKnownState; @@ -47,14 +53,16 @@ RCT_EXPORT_MODULE() return dispatch_get_main_queue(); } -- (NSDictionary *)constantsToExport +- (facebook::react::ModuleConstants)constantsToExport { - return [self getConstants]; + return (facebook::react::ModuleConstants)[self getConstants]; } -- (NSDictionary *)getConstants +- (facebook::react::ModuleConstants)getConstants { - return @{@"initialAppState": RCTCurrentAppState()}; + return facebook::react::typedConstants({ + .initialAppState = RCTCurrentAppState(), + }); } #pragma mark - Lifecycle @@ -126,4 +134,13 @@ RCT_EXPORT_METHOD(getCurrentAppState:(RCTResponseSenderBlock)callback callback(@[@{@"app_state": RCTCurrentAppState()}]); } +- (std::shared_ptr)getTurboModuleWithJsInvoker:(std::shared_ptr)jsInvoker +{ + return std::make_shared(self, jsInvoker); +} + @end + +Class RCTAppStateCls(void) { + return RCTAppState.class; +} diff --git a/ReactAndroid/src/main/java/com/facebook/fbreact/specs/NativeAppStateSpec.java b/ReactAndroid/src/main/java/com/facebook/fbreact/specs/NativeAppStateSpec.java index 88a5da810ad..146102973fa 100644 --- a/ReactAndroid/src/main/java/com/facebook/fbreact/specs/NativeAppStateSpec.java +++ b/ReactAndroid/src/main/java/com/facebook/fbreact/specs/NativeAppStateSpec.java @@ -34,7 +34,7 @@ public abstract class NativeAppStateSpec extends ReactContextBaseJavaModule impl public abstract void removeListeners(double count); @ReactMethod - public abstract void getCurrentAppState(Callback success, Callback failure); + public abstract void getCurrentAppState(Callback success, Callback error); @ReactMethod public abstract void addListener(String eventName);