mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Split NativeStatusBarManager into NativeStatusBarManager{Android,IOS}
Summary: The `StatusBarManager` NativeModule does not have a uniform API on iOS and Android. In particular, the `setStyle` and the `setHidden` methods have an additional parameter on iOS: ``` /** * - statusBarStyles can be: * - 'default' * - 'dark-content' * - 'light-content' */ +setStyle: (statusBarStyle?: ?string, animated: boolean) => void; /** * - withAnimation can be: 'none' | 'fade' | 'slide' */ +setHidden: (hidden: boolean, withAnimation: string) => void; ``` If we keep the NativeModule spec the same between the two platforms, we'd have to keep the second parameter optional for both methods. This works for `setHidden`, because the second parameter is a string, and optional strings are allowed. However, for `setStyle`, the second parameter is a number, and we don't support optional numbers/booleans on Android in the NativeModule system. If we keep the optional number, then the following check triggers in our RedBox tests on iOS, which makes them fail: https://fburl.com/diffusion/b7adezd9. So, since the two specs are sufficiently different, I figured that the easiest path forward is to split them apart. Changelog: [iOS][Changed] - Separated NativeStatusBarManager into NativeStatusBarManager{IOS,Android} Reviewed By: PeteTheHeat Differential Revision: D18214161 fbshipit-source-id: 6fd8b8c5f576244b5b90ee47faa7f50508c5e1d3
This commit is contained in:
committed by
Facebook Github Bot
parent
d729f0e922
commit
a257083d2b
@@ -0,0 +1,35 @@
|
||||
/**
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
* @flow
|
||||
* @format
|
||||
*/
|
||||
|
||||
'use strict';
|
||||
|
||||
import type {TurboModule} from '../../TurboModule/RCTExport';
|
||||
import * as TurboModuleRegistry from '../../TurboModule/TurboModuleRegistry';
|
||||
|
||||
export interface Spec extends TurboModule {
|
||||
+getConstants: () => {|
|
||||
+HEIGHT: number,
|
||||
+DEFAULT_BACKGROUND_COLOR: number,
|
||||
|};
|
||||
+setColor: (color: number, animated: boolean) => void;
|
||||
+setTranslucent: (translucent: boolean) => void;
|
||||
|
||||
/**
|
||||
* - statusBarStyles can be:
|
||||
* - 'default'
|
||||
* - 'dark-content'
|
||||
*/
|
||||
+setStyle: (statusBarStyle?: ?string) => void;
|
||||
+setHidden: (hidden: boolean) => void;
|
||||
}
|
||||
|
||||
export default (TurboModuleRegistry.getEnforcing<Spec>(
|
||||
'StatusBarManager',
|
||||
): Spec);
|
||||
+5
-12
@@ -14,35 +14,28 @@ import type {TurboModule} from '../../TurboModule/RCTExport';
|
||||
import * as TurboModuleRegistry from '../../TurboModule/TurboModuleRegistry';
|
||||
|
||||
export interface Spec extends TurboModule {
|
||||
// Android only
|
||||
+getConstants: () => {|
|
||||
+HEIGHT: number,
|
||||
+DEFAULT_BACKGROUND_COLOR: number,
|
||||
|};
|
||||
+setColor: (color: number, animated: boolean) => void;
|
||||
+setTranslucent: (translucent: boolean) => void;
|
||||
|
||||
// iOS only
|
||||
// TODO(T47754272) Can we remove this method?
|
||||
+getHeight: (callback: (result: {|height: number|}) => void) => void;
|
||||
+setNetworkActivityIndicatorVisible: (visible: boolean) => void;
|
||||
+addListener: (eventType: string) => void;
|
||||
+removeListeners: (count: number) => void;
|
||||
|
||||
// Android and iOS
|
||||
/**
|
||||
* - animated is iOS only
|
||||
* - statusBarStyles can be:
|
||||
* - 'default' (iOS and Android)
|
||||
* - 'dark-content' (iOS and Android)
|
||||
* - 'light-content' (iOS)
|
||||
* - 'default'
|
||||
* - 'dark-content'
|
||||
* - 'light-content'
|
||||
*/
|
||||
+setStyle: (statusBarStyle?: ?string, animated?: ?boolean) => void;
|
||||
+setStyle: (statusBarStyle?: ?string, animated: boolean) => void;
|
||||
/**
|
||||
* - withAnimation is iOS only
|
||||
* - withAnimation can be: 'none' | 'fade' | 'slide'
|
||||
*/
|
||||
+setHidden: (hidden: boolean, withAnimation?: ?string) => void;
|
||||
+setHidden: (hidden: boolean, withAnimation: string) => void;
|
||||
}
|
||||
|
||||
export default (TurboModuleRegistry.getEnforcing<Spec>(
|
||||
@@ -15,7 +15,8 @@ const React = require('react');
|
||||
|
||||
const processColor = require('../../StyleSheet/processColor');
|
||||
|
||||
import NativeStatusBarManager from './NativeStatusBarManager';
|
||||
import NativeStatusBarManagerAndroid from './NativeStatusBarManagerAndroid';
|
||||
import NativeStatusBarManagerIOS from './NativeStatusBarManagerIOS';
|
||||
|
||||
/**
|
||||
* Status bar style
|
||||
@@ -221,12 +222,11 @@ class StatusBar extends React.Component<Props> {
|
||||
static _defaultProps = createStackEntry({
|
||||
animated: false,
|
||||
showHideTransition: 'fade',
|
||||
backgroundColor: Platform.select({
|
||||
android:
|
||||
NativeStatusBarManager.getConstants().DEFAULT_BACKGROUND_COLOR ??
|
||||
'black',
|
||||
ios: 'black',
|
||||
}),
|
||||
backgroundColor:
|
||||
Platform.OS === 'android'
|
||||
? NativeStatusBarManagerAndroid.getConstants()
|
||||
.DEFAULT_BACKGROUND_COLOR ?? 'black'
|
||||
: 'black',
|
||||
barStyle: 'default',
|
||||
translucent: false,
|
||||
hidden: false,
|
||||
@@ -246,7 +246,10 @@ class StatusBar extends React.Component<Props> {
|
||||
*
|
||||
* @platform android
|
||||
*/
|
||||
static currentHeight: number = NativeStatusBarManager.getConstants().HEIGHT;
|
||||
static currentHeight: ?number =
|
||||
Platform.OS === 'android'
|
||||
? NativeStatusBarManagerAndroid.getConstants().HEIGHT
|
||||
: null;
|
||||
|
||||
// Provide an imperative API as static functions of the component.
|
||||
// See the corresponding prop for more detail.
|
||||
@@ -261,9 +264,9 @@ class StatusBar extends React.Component<Props> {
|
||||
animation = animation || 'none';
|
||||
StatusBar._defaultProps.hidden.value = hidden;
|
||||
if (Platform.OS === 'ios') {
|
||||
NativeStatusBarManager.setHidden(hidden, animation);
|
||||
NativeStatusBarManagerIOS.setHidden(hidden, animation);
|
||||
} else if (Platform.OS === 'android') {
|
||||
NativeStatusBarManager.setHidden(hidden);
|
||||
NativeStatusBarManagerAndroid.setHidden(hidden);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -276,9 +279,9 @@ class StatusBar extends React.Component<Props> {
|
||||
animated = animated || false;
|
||||
StatusBar._defaultProps.barStyle.value = style;
|
||||
if (Platform.OS === 'ios') {
|
||||
NativeStatusBarManager.setStyle(style, animated);
|
||||
NativeStatusBarManagerIOS.setStyle(style, animated);
|
||||
} else if (Platform.OS === 'android') {
|
||||
NativeStatusBarManager.setStyle(style);
|
||||
NativeStatusBarManagerAndroid.setStyle(style);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -294,7 +297,7 @@ class StatusBar extends React.Component<Props> {
|
||||
return;
|
||||
}
|
||||
StatusBar._defaultProps.networkActivityIndicatorVisible = visible;
|
||||
NativeStatusBarManager.setNetworkActivityIndicatorVisible(visible);
|
||||
NativeStatusBarManagerIOS.setNetworkActivityIndicatorVisible(visible);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -318,7 +321,7 @@ class StatusBar extends React.Component<Props> {
|
||||
return;
|
||||
}
|
||||
|
||||
NativeStatusBarManager.setColor(processedColor, animated);
|
||||
NativeStatusBarManagerAndroid.setColor(processedColor, animated);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -331,7 +334,7 @@ class StatusBar extends React.Component<Props> {
|
||||
return;
|
||||
}
|
||||
StatusBar._defaultProps.translucent = translucent;
|
||||
NativeStatusBarManager.setTranslucent(translucent);
|
||||
NativeStatusBarManagerAndroid.setTranslucent(translucent);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -426,13 +429,13 @@ class StatusBar extends React.Component<Props> {
|
||||
!oldProps ||
|
||||
oldProps.barStyle.value !== mergedProps.barStyle.value
|
||||
) {
|
||||
NativeStatusBarManager.setStyle(
|
||||
NativeStatusBarManagerIOS.setStyle(
|
||||
mergedProps.barStyle.value,
|
||||
mergedProps.barStyle.animated || false,
|
||||
);
|
||||
}
|
||||
if (!oldProps || oldProps.hidden.value !== mergedProps.hidden.value) {
|
||||
NativeStatusBarManager.setHidden(
|
||||
NativeStatusBarManagerIOS.setHidden(
|
||||
mergedProps.hidden.value,
|
||||
mergedProps.hidden.animated
|
||||
? mergedProps.hidden.transition
|
||||
@@ -445,7 +448,7 @@ class StatusBar extends React.Component<Props> {
|
||||
oldProps.networkActivityIndicatorVisible !==
|
||||
mergedProps.networkActivityIndicatorVisible
|
||||
) {
|
||||
NativeStatusBarManager.setNetworkActivityIndicatorVisible(
|
||||
NativeStatusBarManagerIOS.setNetworkActivityIndicatorVisible(
|
||||
mergedProps.networkActivityIndicatorVisible,
|
||||
);
|
||||
}
|
||||
@@ -454,7 +457,7 @@ class StatusBar extends React.Component<Props> {
|
||||
!oldProps ||
|
||||
oldProps.barStyle.value !== mergedProps.barStyle.value
|
||||
) {
|
||||
NativeStatusBarManager.setStyle(mergedProps.barStyle.value);
|
||||
NativeStatusBarManagerAndroid.setStyle(mergedProps.barStyle.value);
|
||||
}
|
||||
if (
|
||||
!oldProps ||
|
||||
@@ -470,17 +473,17 @@ class StatusBar extends React.Component<Props> {
|
||||
} parsed to null or undefined`,
|
||||
);
|
||||
} else {
|
||||
NativeStatusBarManager.setColor(
|
||||
NativeStatusBarManagerAndroid.setColor(
|
||||
processedColor,
|
||||
mergedProps.backgroundColor.animated,
|
||||
);
|
||||
}
|
||||
}
|
||||
if (!oldProps || oldProps.hidden.value !== mergedProps.hidden.value) {
|
||||
NativeStatusBarManager.setHidden(mergedProps.hidden.value);
|
||||
NativeStatusBarManagerAndroid.setHidden(mergedProps.hidden.value);
|
||||
}
|
||||
if (!oldProps || oldProps.translucent !== mergedProps.translucent) {
|
||||
NativeStatusBarManager.setTranslucent(mergedProps.translucent);
|
||||
NativeStatusBarManagerAndroid.setTranslucent(mergedProps.translucent);
|
||||
}
|
||||
}
|
||||
// Update the current prop values.
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
* @format
|
||||
* @flow
|
||||
*/
|
||||
|
||||
'use strict';
|
||||
|
||||
const NativeEventEmitter = require('../../EventEmitter/NativeEventEmitter');
|
||||
|
||||
/* $FlowFixMe(>=0.78.0 site=react_native_android_fb) This issue was found when
|
||||
* making Flow check .android.js files. */
|
||||
module.exports = new NativeEventEmitter('StatusBarManager');
|
||||
+2
-2
@@ -12,11 +12,11 @@
|
||||
|
||||
const NativeEventEmitter = require('../../EventEmitter/NativeEventEmitter');
|
||||
|
||||
import NativeStatusBarManager from './NativeStatusBarManager';
|
||||
import NativeStatusBarManagerIOS from './NativeStatusBarManagerIOS';
|
||||
|
||||
/**
|
||||
* Use `StatusBar` for mutating the status bar.
|
||||
*/
|
||||
class StatusBarIOS extends NativeEventEmitter {}
|
||||
|
||||
module.exports = (new StatusBarIOS(NativeStatusBarManager): StatusBarIOS);
|
||||
module.exports = (new StatusBarIOS(NativeStatusBarManagerIOS): StatusBarIOS);
|
||||
@@ -2027,81 +2027,115 @@ namespace facebook {
|
||||
|
||||
} // namespace react
|
||||
} // namespace facebook
|
||||
@implementation RCTCxxConvert (NativeStatusBarManager_SpecGetHeightCallbackResult)
|
||||
+ (RCTManagedPointer *)JS_NativeStatusBarManager_SpecGetHeightCallbackResult:(id)json
|
||||
namespace facebook {
|
||||
namespace react {
|
||||
|
||||
|
||||
static facebook::jsi::Value __hostFunction_NativeStatusBarManagerAndroidSpecJSI_setColor(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
|
||||
return static_cast<ObjCTurboModule&>(turboModule).invokeObjCMethod(rt, VoidKind, "setColor", @selector(setColor:animated:), args, count);
|
||||
}
|
||||
|
||||
static facebook::jsi::Value __hostFunction_NativeStatusBarManagerAndroidSpecJSI_setTranslucent(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
|
||||
return static_cast<ObjCTurboModule&>(turboModule).invokeObjCMethod(rt, VoidKind, "setTranslucent", @selector(setTranslucent:), args, count);
|
||||
}
|
||||
|
||||
static facebook::jsi::Value __hostFunction_NativeStatusBarManagerAndroidSpecJSI_setStyle(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
|
||||
return static_cast<ObjCTurboModule&>(turboModule).invokeObjCMethod(rt, VoidKind, "setStyle", @selector(setStyle:), args, count);
|
||||
}
|
||||
|
||||
static facebook::jsi::Value __hostFunction_NativeStatusBarManagerAndroidSpecJSI_setHidden(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
|
||||
return static_cast<ObjCTurboModule&>(turboModule).invokeObjCMethod(rt, VoidKind, "setHidden", @selector(setHidden:), args, count);
|
||||
}
|
||||
|
||||
static facebook::jsi::Value __hostFunction_NativeStatusBarManagerAndroidSpecJSI_getConstants(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
|
||||
return static_cast<ObjCTurboModule&>(turboModule).invokeObjCMethod(rt, ObjectKind, "getConstants", @selector(getConstants), args, count);
|
||||
}
|
||||
|
||||
|
||||
NativeStatusBarManagerAndroidSpecJSI::NativeStatusBarManagerAndroidSpecJSI(id<RCTTurboModule> instance, std::shared_ptr<CallInvoker> jsInvoker)
|
||||
: ObjCTurboModule("StatusBarManagerAndroid", instance, jsInvoker) {
|
||||
|
||||
methodMap_["setColor"] = MethodMetadata {2, __hostFunction_NativeStatusBarManagerAndroidSpecJSI_setColor};
|
||||
|
||||
|
||||
methodMap_["setTranslucent"] = MethodMetadata {1, __hostFunction_NativeStatusBarManagerAndroidSpecJSI_setTranslucent};
|
||||
|
||||
|
||||
methodMap_["setStyle"] = MethodMetadata {1, __hostFunction_NativeStatusBarManagerAndroidSpecJSI_setStyle};
|
||||
|
||||
|
||||
methodMap_["setHidden"] = MethodMetadata {1, __hostFunction_NativeStatusBarManagerAndroidSpecJSI_setHidden};
|
||||
|
||||
|
||||
methodMap_["getConstants"] = MethodMetadata {0, __hostFunction_NativeStatusBarManagerAndroidSpecJSI_getConstants};
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
} // namespace react
|
||||
} // namespace facebook
|
||||
@implementation RCTCxxConvert (NativeStatusBarManagerIOS_SpecGetHeightCallbackResult)
|
||||
+ (RCTManagedPointer *)JS_NativeStatusBarManagerIOS_SpecGetHeightCallbackResult:(id)json
|
||||
{
|
||||
return facebook::react::managedPointer<JS::NativeStatusBarManager::SpecGetHeightCallbackResult>(json);
|
||||
return facebook::react::managedPointer<JS::NativeStatusBarManagerIOS::SpecGetHeightCallbackResult>(json);
|
||||
}
|
||||
@end
|
||||
namespace facebook {
|
||||
namespace react {
|
||||
|
||||
|
||||
static facebook::jsi::Value __hostFunction_NativeStatusBarManagerSpecJSI_setColor(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
|
||||
return static_cast<ObjCTurboModule&>(turboModule).invokeObjCMethod(rt, VoidKind, "setColor", @selector(setColor:animated:), args, count);
|
||||
}
|
||||
|
||||
static facebook::jsi::Value __hostFunction_NativeStatusBarManagerSpecJSI_setTranslucent(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
|
||||
return static_cast<ObjCTurboModule&>(turboModule).invokeObjCMethod(rt, VoidKind, "setTranslucent", @selector(setTranslucent:), args, count);
|
||||
}
|
||||
|
||||
static facebook::jsi::Value __hostFunction_NativeStatusBarManagerSpecJSI_getHeight(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
|
||||
static facebook::jsi::Value __hostFunction_NativeStatusBarManagerIOSSpecJSI_getHeight(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
|
||||
return static_cast<ObjCTurboModule&>(turboModule).invokeObjCMethod(rt, VoidKind, "getHeight", @selector(getHeight:), args, count);
|
||||
}
|
||||
|
||||
static facebook::jsi::Value __hostFunction_NativeStatusBarManagerSpecJSI_setNetworkActivityIndicatorVisible(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
|
||||
static facebook::jsi::Value __hostFunction_NativeStatusBarManagerIOSSpecJSI_setNetworkActivityIndicatorVisible(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
|
||||
return static_cast<ObjCTurboModule&>(turboModule).invokeObjCMethod(rt, VoidKind, "setNetworkActivityIndicatorVisible", @selector(setNetworkActivityIndicatorVisible:), args, count);
|
||||
}
|
||||
|
||||
static facebook::jsi::Value __hostFunction_NativeStatusBarManagerSpecJSI_addListener(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
|
||||
static facebook::jsi::Value __hostFunction_NativeStatusBarManagerIOSSpecJSI_addListener(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
|
||||
return static_cast<ObjCTurboModule&>(turboModule).invokeObjCMethod(rt, VoidKind, "addListener", @selector(addListener:), args, count);
|
||||
}
|
||||
|
||||
static facebook::jsi::Value __hostFunction_NativeStatusBarManagerSpecJSI_removeListeners(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
|
||||
static facebook::jsi::Value __hostFunction_NativeStatusBarManagerIOSSpecJSI_removeListeners(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
|
||||
return static_cast<ObjCTurboModule&>(turboModule).invokeObjCMethod(rt, VoidKind, "removeListeners", @selector(removeListeners:), args, count);
|
||||
}
|
||||
|
||||
static facebook::jsi::Value __hostFunction_NativeStatusBarManagerSpecJSI_setStyle(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
|
||||
static facebook::jsi::Value __hostFunction_NativeStatusBarManagerIOSSpecJSI_setStyle(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
|
||||
return static_cast<ObjCTurboModule&>(turboModule).invokeObjCMethod(rt, VoidKind, "setStyle", @selector(setStyle:animated:), args, count);
|
||||
}
|
||||
|
||||
static facebook::jsi::Value __hostFunction_NativeStatusBarManagerSpecJSI_setHidden(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
|
||||
static facebook::jsi::Value __hostFunction_NativeStatusBarManagerIOSSpecJSI_setHidden(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
|
||||
return static_cast<ObjCTurboModule&>(turboModule).invokeObjCMethod(rt, VoidKind, "setHidden", @selector(setHidden:withAnimation:), args, count);
|
||||
}
|
||||
|
||||
static facebook::jsi::Value __hostFunction_NativeStatusBarManagerSpecJSI_getConstants(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
|
||||
static facebook::jsi::Value __hostFunction_NativeStatusBarManagerIOSSpecJSI_getConstants(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
|
||||
return static_cast<ObjCTurboModule&>(turboModule).invokeObjCMethod(rt, ObjectKind, "getConstants", @selector(getConstants), args, count);
|
||||
}
|
||||
|
||||
|
||||
NativeStatusBarManagerSpecJSI::NativeStatusBarManagerSpecJSI(id<RCTTurboModule> instance, std::shared_ptr<CallInvoker> jsInvoker)
|
||||
: ObjCTurboModule("StatusBarManager", instance, jsInvoker) {
|
||||
NativeStatusBarManagerIOSSpecJSI::NativeStatusBarManagerIOSSpecJSI(id<RCTTurboModule> instance, std::shared_ptr<CallInvoker> jsInvoker)
|
||||
: ObjCTurboModule("StatusBarManagerIOS", instance, jsInvoker) {
|
||||
|
||||
methodMap_["setColor"] = MethodMetadata {2, __hostFunction_NativeStatusBarManagerSpecJSI_setColor};
|
||||
methodMap_["getHeight"] = MethodMetadata {1, __hostFunction_NativeStatusBarManagerIOSSpecJSI_getHeight};
|
||||
|
||||
|
||||
methodMap_["setTranslucent"] = MethodMetadata {1, __hostFunction_NativeStatusBarManagerSpecJSI_setTranslucent};
|
||||
methodMap_["setNetworkActivityIndicatorVisible"] = MethodMetadata {1, __hostFunction_NativeStatusBarManagerIOSSpecJSI_setNetworkActivityIndicatorVisible};
|
||||
|
||||
|
||||
methodMap_["getHeight"] = MethodMetadata {1, __hostFunction_NativeStatusBarManagerSpecJSI_getHeight};
|
||||
methodMap_["addListener"] = MethodMetadata {1, __hostFunction_NativeStatusBarManagerIOSSpecJSI_addListener};
|
||||
|
||||
|
||||
methodMap_["setNetworkActivityIndicatorVisible"] = MethodMetadata {1, __hostFunction_NativeStatusBarManagerSpecJSI_setNetworkActivityIndicatorVisible};
|
||||
methodMap_["removeListeners"] = MethodMetadata {1, __hostFunction_NativeStatusBarManagerIOSSpecJSI_removeListeners};
|
||||
|
||||
|
||||
methodMap_["addListener"] = MethodMetadata {1, __hostFunction_NativeStatusBarManagerSpecJSI_addListener};
|
||||
methodMap_["setStyle"] = MethodMetadata {2, __hostFunction_NativeStatusBarManagerIOSSpecJSI_setStyle};
|
||||
|
||||
|
||||
methodMap_["removeListeners"] = MethodMetadata {1, __hostFunction_NativeStatusBarManagerSpecJSI_removeListeners};
|
||||
methodMap_["setHidden"] = MethodMetadata {2, __hostFunction_NativeStatusBarManagerIOSSpecJSI_setHidden};
|
||||
|
||||
|
||||
methodMap_["setStyle"] = MethodMetadata {2, __hostFunction_NativeStatusBarManagerSpecJSI_setStyle};
|
||||
|
||||
|
||||
methodMap_["setHidden"] = MethodMetadata {2, __hostFunction_NativeStatusBarManagerSpecJSI_setHidden};
|
||||
|
||||
|
||||
methodMap_["getConstants"] = MethodMetadata {0, __hostFunction_NativeStatusBarManagerSpecJSI_getConstants};
|
||||
methodMap_["getConstants"] = MethodMetadata {0, __hostFunction_NativeStatusBarManagerIOSSpecJSI_getConstants};
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -2161,23 +2161,7 @@ namespace facebook {
|
||||
} // namespace facebook
|
||||
|
||||
namespace JS {
|
||||
namespace NativeStatusBarManager {
|
||||
struct SpecGetHeightCallbackResult {
|
||||
double height() const;
|
||||
|
||||
SpecGetHeightCallbackResult(NSDictionary *const v) : _v(v) {}
|
||||
private:
|
||||
NSDictionary *_v;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@interface RCTCxxConvert (NativeStatusBarManager_SpecGetHeightCallbackResult)
|
||||
+ (RCTManagedPointer *)JS_NativeStatusBarManager_SpecGetHeightCallbackResult:(id)json;
|
||||
@end
|
||||
|
||||
namespace JS {
|
||||
namespace NativeStatusBarManager {
|
||||
namespace NativeStatusBarManagerAndroid {
|
||||
struct Constants {
|
||||
|
||||
struct Builder {
|
||||
@@ -2204,32 +2188,98 @@ namespace JS {
|
||||
};
|
||||
}
|
||||
}
|
||||
@protocol NativeStatusBarManagerSpec <RCTBridgeModule, RCTTurboModule>
|
||||
@protocol NativeStatusBarManagerAndroidSpec <RCTBridgeModule, RCTTurboModule>
|
||||
|
||||
- (void)setColor:(double)color
|
||||
animated:(BOOL)animated;
|
||||
- (void)setTranslucent:(BOOL)translucent;
|
||||
- (void)getHeight:(RCTResponseSenderBlock)callback;
|
||||
- (void)setNetworkActivityIndicatorVisible:(BOOL)visible;
|
||||
- (void)addListener:(NSString *)eventType;
|
||||
- (void)removeListeners:(double)count;
|
||||
- (void)setStyle:(NSString * _Nullable)statusBarStyle
|
||||
animated:(NSNumber *)animated;
|
||||
- (void)setHidden:(BOOL)hidden
|
||||
withAnimation:(NSString * _Nullable)withAnimation;
|
||||
- (facebook::react::ModuleConstants<JS::NativeStatusBarManager::Constants::Builder>)constantsToExport;
|
||||
- (facebook::react::ModuleConstants<JS::NativeStatusBarManager::Constants::Builder>)getConstants;
|
||||
- (void)setStyle:(NSString * _Nullable)statusBarStyle;
|
||||
- (void)setHidden:(BOOL)hidden;
|
||||
- (facebook::react::ModuleConstants<JS::NativeStatusBarManagerAndroid::Constants::Builder>)constantsToExport;
|
||||
- (facebook::react::ModuleConstants<JS::NativeStatusBarManagerAndroid::Constants::Builder>)getConstants;
|
||||
|
||||
@end
|
||||
namespace facebook {
|
||||
namespace react {
|
||||
/**
|
||||
* ObjC++ class for module 'StatusBarManager'
|
||||
* ObjC++ class for module 'StatusBarManagerAndroid'
|
||||
*/
|
||||
|
||||
class JSI_EXPORT NativeStatusBarManagerSpecJSI : public ObjCTurboModule {
|
||||
class JSI_EXPORT NativeStatusBarManagerAndroidSpecJSI : public ObjCTurboModule {
|
||||
public:
|
||||
NativeStatusBarManagerSpecJSI(id<RCTTurboModule> instance, std::shared_ptr<CallInvoker> jsInvoker);
|
||||
NativeStatusBarManagerAndroidSpecJSI(id<RCTTurboModule> instance, std::shared_ptr<CallInvoker> jsInvoker);
|
||||
|
||||
};
|
||||
} // namespace react
|
||||
} // namespace facebook
|
||||
|
||||
namespace JS {
|
||||
namespace NativeStatusBarManagerIOS {
|
||||
struct SpecGetHeightCallbackResult {
|
||||
double height() const;
|
||||
|
||||
SpecGetHeightCallbackResult(NSDictionary *const v) : _v(v) {}
|
||||
private:
|
||||
NSDictionary *_v;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@interface RCTCxxConvert (NativeStatusBarManagerIOS_SpecGetHeightCallbackResult)
|
||||
+ (RCTManagedPointer *)JS_NativeStatusBarManagerIOS_SpecGetHeightCallbackResult:(id)json;
|
||||
@end
|
||||
|
||||
namespace JS {
|
||||
namespace NativeStatusBarManagerIOS {
|
||||
struct Constants {
|
||||
|
||||
struct Builder {
|
||||
struct Input {
|
||||
RCTRequired<double> HEIGHT;
|
||||
RCTRequired<double> DEFAULT_BACKGROUND_COLOR;
|
||||
};
|
||||
|
||||
/** Initialize with a set of values */
|
||||
Builder(const Input i);
|
||||
/** Initialize with an existing Constants */
|
||||
Builder(Constants i);
|
||||
/** Builds the object. Generally used only by the infrastructure. */
|
||||
NSDictionary *buildUnsafeRawValue() const { return _factory(); };
|
||||
private:
|
||||
NSDictionary *(^_factory)(void);
|
||||
};
|
||||
|
||||
static Constants fromUnsafeRawValue(NSDictionary *const v) { return {v}; }
|
||||
NSDictionary *unsafeRawValue() const { return _v; }
|
||||
private:
|
||||
Constants(NSDictionary *const v) : _v(v) {}
|
||||
NSDictionary *_v;
|
||||
};
|
||||
}
|
||||
}
|
||||
@protocol NativeStatusBarManagerIOSSpec <RCTBridgeModule, RCTTurboModule>
|
||||
|
||||
- (void)getHeight:(RCTResponseSenderBlock)callback;
|
||||
- (void)setNetworkActivityIndicatorVisible:(BOOL)visible;
|
||||
- (void)addListener:(NSString *)eventType;
|
||||
- (void)removeListeners:(double)count;
|
||||
- (void)setStyle:(NSString * _Nullable)statusBarStyle
|
||||
animated:(BOOL)animated;
|
||||
- (void)setHidden:(BOOL)hidden
|
||||
withAnimation:(NSString *)withAnimation;
|
||||
- (facebook::react::ModuleConstants<JS::NativeStatusBarManagerIOS::Constants::Builder>)constantsToExport;
|
||||
- (facebook::react::ModuleConstants<JS::NativeStatusBarManagerIOS::Constants::Builder>)getConstants;
|
||||
|
||||
@end
|
||||
namespace facebook {
|
||||
namespace react {
|
||||
/**
|
||||
* ObjC++ class for module 'StatusBarManagerIOS'
|
||||
*/
|
||||
|
||||
class JSI_EXPORT NativeStatusBarManagerIOSSpecJSI : public ObjCTurboModule {
|
||||
public:
|
||||
NativeStatusBarManagerIOSSpecJSI(id<RCTTurboModule> instance, std::shared_ptr<CallInvoker> jsInvoker);
|
||||
|
||||
};
|
||||
} // namespace react
|
||||
@@ -3308,12 +3358,7 @@ inline JS::NativeSourceCode::Constants::Builder::Builder(const Input i) : _facto
|
||||
inline JS::NativeSourceCode::Constants::Builder::Builder(Constants i) : _factory(^{
|
||||
return i.unsafeRawValue();
|
||||
}) {}
|
||||
inline double JS::NativeStatusBarManager::SpecGetHeightCallbackResult::height() const
|
||||
{
|
||||
id const p = _v[@"height"];
|
||||
return RCTBridgingToDouble(p);
|
||||
}
|
||||
inline JS::NativeStatusBarManager::Constants::Builder::Builder(const Input i) : _factory(^{
|
||||
inline JS::NativeStatusBarManagerAndroid::Constants::Builder::Builder(const Input i) : _factory(^{
|
||||
NSMutableDictionary *d = [NSMutableDictionary new];
|
||||
auto HEIGHT = i.HEIGHT.get();
|
||||
d[@"HEIGHT"] = @(HEIGHT);
|
||||
@@ -3321,7 +3366,23 @@ inline JS::NativeStatusBarManager::Constants::Builder::Builder(const Input i) :
|
||||
d[@"DEFAULT_BACKGROUND_COLOR"] = @(DEFAULT_BACKGROUND_COLOR);
|
||||
return d;
|
||||
}) {}
|
||||
inline JS::NativeStatusBarManager::Constants::Builder::Builder(Constants i) : _factory(^{
|
||||
inline JS::NativeStatusBarManagerAndroid::Constants::Builder::Builder(Constants i) : _factory(^{
|
||||
return i.unsafeRawValue();
|
||||
}) {}
|
||||
inline double JS::NativeStatusBarManagerIOS::SpecGetHeightCallbackResult::height() const
|
||||
{
|
||||
id const p = _v[@"height"];
|
||||
return RCTBridgingToDouble(p);
|
||||
}
|
||||
inline JS::NativeStatusBarManagerIOS::Constants::Builder::Builder(const Input i) : _factory(^{
|
||||
NSMutableDictionary *d = [NSMutableDictionary new];
|
||||
auto HEIGHT = i.HEIGHT.get();
|
||||
d[@"HEIGHT"] = @(HEIGHT);
|
||||
auto DEFAULT_BACKGROUND_COLOR = i.DEFAULT_BACKGROUND_COLOR.get();
|
||||
d[@"DEFAULT_BACKGROUND_COLOR"] = @(DEFAULT_BACKGROUND_COLOR);
|
||||
return d;
|
||||
}) {}
|
||||
inline JS::NativeStatusBarManagerIOS::Constants::Builder::Builder(Constants i) : _factory(^{
|
||||
return i.unsafeRawValue();
|
||||
}) {}
|
||||
inline JS::NativeToastAndroid::Constants::Builder::Builder(const Input i) : _factory(^{
|
||||
|
||||
@@ -203,6 +203,8 @@ PODS:
|
||||
- React-RCTActionSheet (1000.0.0):
|
||||
- React-Core/RCTActionSheetHeaders (= 1000.0.0)
|
||||
- React-RCTAnimation (1000.0.0):
|
||||
- FBReactNativeSpec (= 1000.0.0)
|
||||
- Folly (= 2018.10.22.00)
|
||||
- React-Core/RCTAnimationHeaders (= 1000.0.0)
|
||||
- React-RCTBlob (1000.0.0):
|
||||
- FBReactNativeSpec (= 1000.0.0)
|
||||
@@ -365,14 +367,14 @@ SPEC CHECKSUMS:
|
||||
RCTTypeSafety: 2b1cb2d92b779aa9a3522f67bd4f07e6b6d0797e
|
||||
React: 28a654b69575941571c073a656bc06795825e7f7
|
||||
React-ART: a5da06a892342d03896e0db45a7072525981f63c
|
||||
React-Core: f8656b21cfe16b1fe276686f3b921bce0fa6de4d
|
||||
React-Core: c74122b2f399f92f94301cd22e888787375ed5d8
|
||||
React-CoreModules: 96b2f1e0b84493e6c1b7f3bb21357f24fdcfce2f
|
||||
React-cxxreact: 7c4242192149ce0205b53efaa03e3bf86ba4337c
|
||||
React-jsi: 98d1f9d8a79d2720ba6a44c2d928a77f315b7e4f
|
||||
React-jsiexecutor: c0ab8c80a6e88380d63f583690a50d4a723b47b5
|
||||
React-jsinspector: ea0a218071a11c3687cef2480580180caa6a64c0
|
||||
React-RCTActionSheet: 090e7bd7c5774d919c47c4eeff78223a7fd8c19c
|
||||
React-RCTAnimation: 73d536fff417a101724d9529189c95a94263710c
|
||||
React-RCTAnimation: fb2b60b7050aedf5a8bf03cf5c30f33a8d2b01b5
|
||||
React-RCTBlob: acd519b1d6ec5d66f98b7cf8e70d0cd76642426f
|
||||
React-RCTImage: 4d2a090c491e29665f27f87c58feb4dfcb2f4cfa
|
||||
React-RCTLinking: d7d7f792e63a8d57380cecbb9b7a3b31f92d1bb6
|
||||
@@ -383,7 +385,7 @@ SPEC CHECKSUMS:
|
||||
React-RCTText: 9078167d3bc011162326f2d8ef4dd580ec1eca17
|
||||
React-RCTVibration: bf05159719598f876ba763e5a58ccbad21e2e82f
|
||||
ReactCommon: 9d212865526209dc2d01be40340c8d27b53e6bea
|
||||
Yoga: d88d8b51ee5b247f43211e2edf272438df1b484f
|
||||
Yoga: 01557763eb099a104c0ac47eed7dd07203e29d6b
|
||||
|
||||
PODFILE CHECKSUM: 060903e270072f1e192b064848e6c34528af1c87
|
||||
|
||||
|
||||
+69
@@ -0,0 +1,69 @@
|
||||
/**
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* <p>This source code is licensed under the MIT license found in the LICENSE file in the root
|
||||
* directory of this source tree.
|
||||
*
|
||||
* <p>Generated by an internal genrule from Flow types.
|
||||
*
|
||||
* @generated
|
||||
* @nolint
|
||||
*/
|
||||
|
||||
package com.facebook.fbreact.specs;
|
||||
|
||||
import com.facebook.react.bridge.ReactApplicationContext;
|
||||
import com.facebook.react.bridge.ReactContextBaseJavaModule;
|
||||
import com.facebook.react.bridge.ReactMethod;
|
||||
import com.facebook.react.bridge.ReactModuleWithSpec;
|
||||
import com.facebook.react.common.build.ReactBuildConfig;
|
||||
import com.facebook.react.turbomodule.core.interfaces.TurboModule;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashSet;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
public abstract class NativeStatusBarManagerAndroidSpec extends ReactContextBaseJavaModule implements ReactModuleWithSpec, TurboModule {
|
||||
public NativeStatusBarManagerAndroidSpec(ReactApplicationContext reactContext) {
|
||||
super(reactContext);
|
||||
}
|
||||
|
||||
@ReactMethod
|
||||
public abstract void setTranslucent(boolean translucent);
|
||||
|
||||
@ReactMethod
|
||||
public abstract void setColor(double color, boolean animated);
|
||||
|
||||
@ReactMethod
|
||||
public abstract void setHidden(boolean hidden);
|
||||
|
||||
@ReactMethod
|
||||
public abstract void setStyle(@Nullable String statusBarStyle);
|
||||
|
||||
protected abstract Map<String, Object> getTypedExportedConstants();
|
||||
|
||||
@Override
|
||||
public final @Nullable Map<String, Object> getConstants() {
|
||||
Map<String, Object> constants = getTypedExportedConstants();
|
||||
if (ReactBuildConfig.DEBUG || ReactBuildConfig.IS_INTERNAL_BUILD) {
|
||||
Set<String> obligatoryFlowConstants = new HashSet<>(Arrays.asList(
|
||||
"DEFAULT_BACKGROUND_COLOR",
|
||||
"HEIGHT"
|
||||
));
|
||||
Set<String> optionalFlowConstants = new HashSet<>();
|
||||
Set<String> undeclaredConstants = new HashSet<>(constants.keySet());
|
||||
undeclaredConstants.removeAll(obligatoryFlowConstants);
|
||||
undeclaredConstants.removeAll(optionalFlowConstants);
|
||||
if (!undeclaredConstants.isEmpty()) {
|
||||
throw new IllegalStateException(String.format("Native Module Flow doesn't declare constants: %s", undeclaredConstants));
|
||||
}
|
||||
undeclaredConstants = obligatoryFlowConstants;
|
||||
undeclaredConstants.removeAll(constants.keySet());
|
||||
if (!undeclaredConstants.isEmpty()) {
|
||||
throw new IllegalStateException(String.format("Native Module doesn't fill in constants: %s", undeclaredConstants));
|
||||
}
|
||||
}
|
||||
return constants;
|
||||
}
|
||||
}
|
||||
+76
@@ -0,0 +1,76 @@
|
||||
/**
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* <p>This source code is licensed under the MIT license found in the LICENSE file in the root
|
||||
* directory of this source tree.
|
||||
*
|
||||
* <p>Generated by an internal genrule from Flow types.
|
||||
*
|
||||
* @generated
|
||||
* @nolint
|
||||
*/
|
||||
|
||||
package com.facebook.fbreact.specs;
|
||||
|
||||
import com.facebook.react.bridge.Callback;
|
||||
import com.facebook.react.bridge.ReactApplicationContext;
|
||||
import com.facebook.react.bridge.ReactContextBaseJavaModule;
|
||||
import com.facebook.react.bridge.ReactMethod;
|
||||
import com.facebook.react.bridge.ReactModuleWithSpec;
|
||||
import com.facebook.react.common.build.ReactBuildConfig;
|
||||
import com.facebook.react.turbomodule.core.interfaces.TurboModule;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashSet;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
public abstract class NativeStatusBarManagerIOSSpec extends ReactContextBaseJavaModule implements ReactModuleWithSpec, TurboModule {
|
||||
public NativeStatusBarManagerIOSSpec(ReactApplicationContext reactContext) {
|
||||
super(reactContext);
|
||||
}
|
||||
|
||||
@ReactMethod
|
||||
public abstract void setNetworkActivityIndicatorVisible(boolean visible);
|
||||
|
||||
@ReactMethod
|
||||
public abstract void getHeight(Callback callback);
|
||||
|
||||
@ReactMethod
|
||||
public abstract void removeListeners(double count);
|
||||
|
||||
@ReactMethod
|
||||
public abstract void setHidden(boolean hidden, String withAnimation);
|
||||
|
||||
@ReactMethod
|
||||
public abstract void setStyle(@Nullable String statusBarStyle, boolean animated);
|
||||
|
||||
@ReactMethod
|
||||
public abstract void addListener(String eventType);
|
||||
|
||||
protected abstract Map<String, Object> getTypedExportedConstants();
|
||||
|
||||
@Override
|
||||
public final @Nullable Map<String, Object> getConstants() {
|
||||
Map<String, Object> constants = getTypedExportedConstants();
|
||||
if (ReactBuildConfig.DEBUG || ReactBuildConfig.IS_INTERNAL_BUILD) {
|
||||
Set<String> obligatoryFlowConstants = new HashSet<>(Arrays.asList(
|
||||
"DEFAULT_BACKGROUND_COLOR",
|
||||
"HEIGHT"
|
||||
));
|
||||
Set<String> optionalFlowConstants = new HashSet<>();
|
||||
Set<String> undeclaredConstants = new HashSet<>(constants.keySet());
|
||||
undeclaredConstants.removeAll(obligatoryFlowConstants);
|
||||
undeclaredConstants.removeAll(optionalFlowConstants);
|
||||
if (!undeclaredConstants.isEmpty()) {
|
||||
throw new IllegalStateException(String.format("Native Module Flow doesn't declare constants: %s", undeclaredConstants));
|
||||
}
|
||||
undeclaredConstants = obligatoryFlowConstants;
|
||||
undeclaredConstants.removeAll(constants.keySet());
|
||||
if (!undeclaredConstants.isEmpty()) {
|
||||
throw new IllegalStateException(String.format("Native Module doesn't fill in constants: %s", undeclaredConstants));
|
||||
}
|
||||
}
|
||||
return constants;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user