react-native 0.66.2 → 0.67.0-rc.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Libraries/ActionSheetIOS/ActionSheetIOS.js +14 -1
- package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +2 -0
- package/Libraries/Animated/AnimatedEvent.js +23 -4
- package/Libraries/Animated/NativeAnimatedHelper.js +2 -2
- package/Libraries/Animated/components/AnimatedImage.js +3 -3
- package/Libraries/Animated/components/AnimatedScrollView.js +3 -3
- package/Libraries/Animated/components/AnimatedText.js +3 -3
- package/Libraries/Animated/components/AnimatedView.js +1 -3
- package/Libraries/Animated/createAnimatedComponent.js +3 -34
- package/Libraries/Components/Button.js +3 -0
- package/Libraries/Components/DatePicker/DatePickerIOS.ios.js +3 -6
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +4 -7
- package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +1 -0
- package/Libraries/Components/ScrollView/ScrollView.js +17 -16
- package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +268 -252
- package/Libraries/Components/View/View.js +1 -1
- package/Libraries/Components/View/ViewAccessibility.js +1 -1
- package/Libraries/Core/ExceptionsManager.js +45 -80
- package/Libraries/Core/ExtendedError.js +0 -1
- package/Libraries/Core/ReactNativeVersion.js +3 -3
- package/Libraries/Core/setUpBatchedBridge.js +1 -1
- package/Libraries/Core/setUpGlobals.js +2 -4
- package/Libraries/Core/setUpTimers.js +2 -2
- package/Libraries/Image/Image.ios.js +6 -0
- package/Libraries/Image/ImageBackground.js +10 -8
- package/Libraries/Image/ImageProps.js +28 -0
- package/Libraries/Image/RCTImageView.mm +4 -0
- package/Libraries/LogBox/Data/LogBoxData.js +0 -1
- package/Libraries/LogBox/UI/LogBoxImages/alert-triangle.png +0 -0
- package/Libraries/LogBox/UI/LogBoxImages/chevron-left.png +0 -0
- package/Libraries/LogBox/UI/LogBoxImages/chevron-right.png +0 -0
- package/Libraries/LogBox/UI/LogBoxImages/close.png +0 -0
- package/Libraries/LogBox/UI/LogBoxImages/loader.png +0 -0
- package/Libraries/NativeAnimation/Nodes/RCTPropsAnimatedNode.m +0 -3
- package/Libraries/NativeAnimation/RCTNativeAnimatedModule.mm +6 -3
- package/Libraries/NativeAnimation/RCTNativeAnimatedTurboModule.h +1 -2
- package/Libraries/NativeAnimation/RCTNativeAnimatedTurboModule.mm +2 -1
- package/Libraries/NewAppScreen/components/logo.png +0 -0
- package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +2 -1
- package/Libraries/PermissionsAndroid/PermissionsAndroid.js +2 -0
- package/Libraries/Pressability/Pressability.js +13 -13
- package/Libraries/Pressability/PressabilityPerformanceEventEmitter.js +1 -1
- package/Libraries/PushNotificationIOS/RCTPushNotificationManager.mm +0 -1
- package/Libraries/ReactNative/AppRegistry.js +4 -2
- package/Libraries/Renderer/REVISION +1 -1
- package/Libraries/Renderer/implementations/ReactFabric-dev.fb.js +1569 -875
- package/Libraries/Renderer/implementations/ReactFabric-prod.fb.js +529 -319
- package/Libraries/Renderer/implementations/ReactFabric-profiling.fb.js +570 -362
- package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.fb.js +1592 -891
- package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.fb.js +521 -311
- package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.fb.js +562 -354
- package/Libraries/Share/Share.js +1 -1
- package/Libraries/StyleSheet/normalizeColor.js +2 -2
- package/Libraries/Text/TextInput/Multiline/RCTUITextView.m +4 -2
- package/Libraries/Text/TextInput/RCTBaseTextInputView.m +2 -12
- package/Libraries/Text/TextInput/RCTInputAccessoryViewContent.m +4 -11
- package/Libraries/Text/TextProps.js +1 -7
- package/Libraries/TurboModule/TurboModuleRegistry.js +1 -1
- package/Libraries/Utilities/HMRClient.js +1 -1
- package/README.md +1 -1
- package/React/Base/RCTBridge+Private.h +8 -0
- package/React/Base/RCTBridge.h +4 -0
- package/React/Base/RCTBridge.m +19 -7
- package/React/Base/RCTBridgeModule.h +2 -11
- package/React/Base/RCTBundleURLProvider.h +1 -1
- package/React/Base/RCTBundleURLProvider.mm +5 -3
- package/React/Base/RCTConstants.h +0 -6
- package/React/Base/RCTConstants.m +0 -15
- package/React/Base/RCTConvert.h +1 -1
- package/React/Base/RCTDefines.h +12 -3
- package/React/Base/RCTEventDispatcherProtocol.h +2 -0
- package/React/Base/RCTJSThread.h +29 -0
- package/React/Base/RCTJSThread.m +19 -0
- package/React/Base/RCTRootView.h +15 -0
- package/React/Base/RCTRootView.m +15 -0
- package/React/Base/RCTTouchHandler.m +1 -9
- package/React/Base/RCTUtils.h +3 -0
- package/React/Base/RCTUtils.m +14 -7
- package/React/Base/RCTVersion.m +3 -3
- package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.h +11 -0
- package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.mm +35 -1
- package/React/CoreModules/RCTAccessibilityManager+Internal.h +24 -0
- package/React/CoreModules/RCTAccessibilityManager.mm +18 -3
- package/React/CoreModules/RCTActionSheetManager.mm +14 -5
- package/React/CoreModules/RCTDevLoadingView.mm +5 -10
- package/React/CoreModules/RCTDevSettings.mm +6 -6
- package/React/CoreModules/RCTDevSplitBundleLoader.mm +1 -1
- package/React/CoreModules/RCTDeviceInfo.mm +4 -4
- package/React/CoreModules/RCTEventDispatcher.mm +5 -0
- package/React/CoreModules/RCTExceptionsManager.mm +11 -24
- package/React/CoreModules/RCTLogBox.mm +0 -1
- package/React/CoreModules/RCTPerfMonitor.mm +9 -4
- package/React/CoreModules/RCTRedBox.mm +1 -5
- package/React/CxxBridge/RCTCxxBridge.mm +18 -1
- package/React/DevSupport/RCTPackagerConnection.h +3 -0
- package/React/DevSupport/RCTPackagerConnection.mm +9 -5
- package/React/FBReactNativeSpec/FBReactNativeSpec.podspec +11 -3
- package/React/Fabric/Mounting/ComponentViews/Modal/RCTModalHostViewComponentView.mm +0 -3
- package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm +16 -0
- package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.h +6 -0
- package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +3 -5
- package/React/Fabric/Mounting/RCTMountingManager.mm +15 -1
- package/React/Fabric/RCTScheduler.mm +12 -5
- package/React/Fabric/RCTSurfacePresenter.mm +0 -4
- package/React/Fabric/RCTSurfaceTouchHandler.mm +6 -20
- package/React/Fabric/Surface/RCTFabricSurface.mm +1 -3
- package/React/React-RCTFabric.podspec +0 -1
- package/React/Views/RCTFont.mm +54 -38
- package/React/Views/RCTView.m +1 -6
- package/React/Views/RCTViewManager.m +3 -2
- package/React/Views/SafeAreaView/RCTSafeAreaView.m +1 -5
- package/React/Views/ScrollView/RCTScrollView.m +5 -15
- package/React/Views/ScrollView/RCTScrollViewManager.m +0 -7
- package/React/Views/UIView+React.m +2 -11
- package/React-Core.podspec +0 -1
- package/ReactAndroid/build.gradle +11 -5
- package/ReactAndroid/gradle.properties +1 -1
- package/ReactAndroid/src/androidTest/java/com/facebook/react/tests/BUCK +0 -1
- package/ReactAndroid/src/androidTest/js/TestBundle.js +0 -7
- package/ReactAndroid/src/main/java/com/facebook/hermes/instrumentation/BUCK +2 -1
- package/ReactAndroid/src/main/java/com/facebook/hermes/reactexecutor/HermesExecutor.java +14 -8
- package/ReactAndroid/src/main/java/com/facebook/react/BUCK +0 -1
- package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java +63 -26
- package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManagerBuilder.java +50 -2
- package/ReactAndroid/src/main/java/com/facebook/react/ReactNativeHost.java +31 -0
- package/ReactAndroid/src/main/java/com/facebook/react/ReactRootView.java +17 -1
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstance.java +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstanceImpl.java +13 -2
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java +1 -0
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactCxxErrorHandler.java +39 -0
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/RuntimeScheduler.java +21 -0
- package/ReactAndroid/src/main/java/com/facebook/react/common/BUCK +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/common/SurfaceDelegate.java +40 -0
- package/ReactAndroid/src/main/java/com/facebook/react/common/SurfaceDelegateFactory.java +24 -0
- package/ReactAndroid/src/main/java/com/facebook/react/common/mapbuffer/jni/BUCK +0 -6
- package/ReactAndroid/src/main/java/com/facebook/react/config/ReactFeatureFlags.java +16 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BUCK +1 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BridgeDevSupportManager.java +5 -2
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DefaultDevSupportManagerFactory.java +102 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.java +35 -11
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerFactory.java +5 -72
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DisabledDevSupportManager.java +12 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/LogBoxDialogSurfaceDelegate.java +92 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/LogBoxModule.java +27 -42
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/DevSupportManager.java +14 -0
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/Binding.java +5 -4
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricJSIModuleProvider.java +3 -7
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +41 -2
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/EventEmitterWrapper.java +8 -3
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/FabricEventEmitter.java +43 -9
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Android.mk +2 -1
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/AsyncEventBeatV2.cpp +69 -0
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/AsyncEventBeatV2.h +40 -0
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/BUCK +2 -6
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Binding.cpp +84 -32
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Binding.h +4 -2
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/EventEmitterWrapper.cpp +20 -2
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/EventEmitterWrapper.h +2 -1
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountItemDispatcher.java +9 -1
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.java +19 -4
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/IntBufferBatchMountItem.java +6 -2
- package/ReactAndroid/src/main/java/com/facebook/react/jscexecutor/BUCK +2 -1
- package/ReactAndroid/src/main/java/com/facebook/react/jscexecutor/JSCExecutor.java +6 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/jni/BUCK +0 -6
- package/ReactAndroid/src/main/java/com/facebook/react/modules/clipboard/BUCK +4 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/clipboard/ClipboardModule.java +9 -8
- package/ReactAndroid/src/main/java/com/facebook/react/modules/core/ExceptionsManagerModule.java +7 -19
- package/ReactAndroid/src/main/java/com/facebook/react/modules/core/{JavaScriptTimerManager.java → JavaScriptTimerExecutor.java} +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/core/JavaTimerManager.java +7 -7
- package/ReactAndroid/src/main/java/com/facebook/react/modules/core/TimingModule.java +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/modules/i18nmanager/I18nManagerModule.java +7 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/intent/IntentModule.java +23 -19
- package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ForwardingCookieHandler.java +1 -4
- package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +3 -3
- package/ReactAndroid/src/main/java/com/facebook/react/packagerconnection/ReconnectingWebSocket.java +8 -8
- package/ReactAndroid/src/main/java/com/facebook/react/processing/ReactPropertyProcessor.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/reactperflogger/jni/BUCK +0 -6
- package/ReactAndroid/src/main/java/com/facebook/react/shell/BUCK +0 -1
- package/ReactAndroid/src/main/java/com/facebook/react/shell/MainReactPackage.java +0 -5
- package/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/BUCK +0 -12
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/JSTouchDispatcher.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/TouchTargetHelper.java +75 -10
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/Event.java +19 -22
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventCategoryDef.java +42 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherImpl.java +7 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/LockFreeEventDispatcherImpl.java +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTEventEmitter.java +7 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTModernEventEmitter.java +2 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/ReactEventEmitter.java +17 -9
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEvent.java +43 -8
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEventType.java +15 -16
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchesHelper.java +108 -19
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/jni/BUCK +0 -6
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +79 -4
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollViewManager.java +5 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.java +94 -3
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewHelper.java +21 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewManager.java +5 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextAnchorViewManager.java +0 -4
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextShadowNode.java +16 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextView.java +9 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextAttributeProps.java +20 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.java +25 -6
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManagerMapBuffer.java +25 -5
- package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditTextInputConnectionWrapper.java +3 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/CanvasUtil.java +92 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.java +19 -0
- package/ReactAndroid/src/main/jni/react/jni/Android.mk +3 -2
- package/ReactAndroid/src/main/jni/react/jni/BUCK +4 -5
- package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.cpp +49 -7
- package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.h +15 -2
- package/ReactAndroid/src/main/jni/react/jni/JReactCxxErrorHandler.cpp +18 -0
- package/ReactAndroid/src/main/jni/react/jni/JReactCxxErrorHandler.h +25 -0
- package/{ReactCommon/react/renderer/core/Constants.cpp → ReactAndroid/src/main/jni/react/jni/JRuntimeScheduler.cpp} +6 -8
- package/ReactAndroid/src/main/jni/react/jni/JRuntimeScheduler.h +30 -0
- package/ReactAndroid/src/main/jni/react/perftests/BUCK +0 -4
- package/ReactAndroid/src/main/third-party/android/androidx/BUCK +6 -6
- package/ReactAndroid/src/test/java/com/facebook/react/RootViewTest.java +43 -0
- package/ReactAndroid/src/test/java/com/facebook/react/modules/clipboard/ClipboardModuleTest.java +3 -1
- package/ReactCommon/React-Fabric.podspec +9 -1
- package/ReactCommon/better/BUCK +0 -6
- package/ReactCommon/callinvoker/BUCK +2 -8
- package/ReactCommon/cxxreact/BUCK +1 -16
- package/ReactCommon/cxxreact/ReactNativeVersion.h +3 -3
- package/ReactCommon/hermes/inspector/tools/msggen/package.json +7 -4
- package/ReactCommon/hermes/inspector/tools/msggen/yarn.lock +13 -10
- package/ReactCommon/jsi/BUCK +0 -9
- package/ReactCommon/jsinspector/BUCK +0 -5
- package/ReactCommon/logger/BUCK +0 -5
- package/ReactCommon/react/config/BUCK +0 -6
- package/ReactCommon/react/debug/BUCK +0 -6
- package/ReactCommon/react/nativemodule/core/BUCK +0 -5
- package/ReactCommon/react/nativemodule/core/platform/ios/RCTTurboModuleManager.mm +14 -31
- package/ReactCommon/react/nativemodule/samples/BUCK +0 -7
- package/ReactCommon/react/renderer/animations/BUCK +1 -4
- package/ReactCommon/react/renderer/animations/LayoutAnimationCallbackWrapper.h +34 -0
- package/ReactCommon/react/renderer/animations/LayoutAnimationDriver.cpp +5 -26
- package/ReactCommon/react/renderer/animations/LayoutAnimationDriver.h +8 -14
- package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.cpp +912 -1147
- package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.h +80 -245
- package/ReactCommon/react/renderer/animations/conversions.h +212 -0
- package/ReactCommon/react/renderer/animations/primitives.h +104 -0
- package/ReactCommon/react/renderer/animations/tests/LayoutAnimationTest.cpp +3 -3
- package/ReactCommon/react/renderer/animations/utils.cpp +71 -0
- package/ReactCommon/react/renderer/animations/utils.h +80 -0
- package/ReactCommon/react/renderer/attributedstring/AttributedString.h +0 -1
- package/ReactCommon/react/renderer/attributedstring/BUCK +0 -6
- package/ReactCommon/react/renderer/attributedstring/ParagraphAttributes.cpp +7 -3
- package/ReactCommon/react/renderer/attributedstring/ParagraphAttributes.h +12 -2
- package/ReactCommon/react/renderer/attributedstring/TextAttributes.h +1 -1
- package/ReactCommon/react/renderer/attributedstring/conversions.h +58 -3
- package/ReactCommon/react/renderer/attributedstring/primitives.h +18 -1
- package/ReactCommon/react/renderer/componentregistry/BUCK +0 -6
- package/ReactCommon/react/renderer/componentregistry/native/BUCK +0 -6
- package/ReactCommon/react/renderer/components/image/BUCK +0 -6
- package/ReactCommon/react/renderer/components/image/ImageComponentDescriptor.h +0 -2
- package/ReactCommon/react/renderer/components/inputaccessory/BUCK +0 -6
- package/ReactCommon/react/renderer/components/inputaccessory/InputAccessoryComponentDescriptor.h +0 -4
- package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/BUCK +0 -6
- package/ReactCommon/react/renderer/components/modal/BUCK +0 -6
- package/ReactCommon/react/renderer/components/modal/ModalHostViewComponentDescriptor.h +0 -5
- package/ReactCommon/react/renderer/components/progressbar/BUCK +0 -6
- package/ReactCommon/react/renderer/components/progressbar/android/react/renderer/components/progressbar/AndroidProgressBarComponentDescriptor.h +0 -3
- package/ReactCommon/react/renderer/components/root/BUCK +0 -6
- package/ReactCommon/react/renderer/components/safeareaview/BUCK +0 -6
- package/ReactCommon/react/renderer/components/scrollview/BUCK +0 -6
- package/ReactCommon/react/renderer/components/slider/BUCK +0 -6
- package/ReactCommon/react/renderer/components/slider/SliderComponentDescriptor.h +0 -3
- package/ReactCommon/react/renderer/components/switch/BUCK +0 -6
- package/ReactCommon/react/renderer/components/switch/androidswitch/react/renderer/components/androidswitch/AndroidSwitchComponentDescriptor.h +0 -3
- package/ReactCommon/react/renderer/components/text/BUCK +0 -6
- package/ReactCommon/react/renderer/components/text/ParagraphComponentDescriptor.h +1 -20
- package/ReactCommon/react/renderer/components/textinput/BUCK +0 -6
- package/ReactCommon/react/renderer/components/textinput/androidtextinput/react/renderer/components/androidtextinput/AndroidTextInputComponentDescriptor.h +0 -3
- package/ReactCommon/react/renderer/components/textinput/androidtextinput/react/renderer/components/androidtextinput/AndroidTextInputProps.h +2 -0
- package/ReactCommon/react/renderer/components/textinput/iostextinput/BUCK +0 -6
- package/ReactCommon/react/renderer/components/textinput/iostextinput/TextInputComponentDescriptor.h +0 -3
- package/ReactCommon/react/renderer/components/unimplementedview/BUCK +0 -6
- package/ReactCommon/react/renderer/components/unimplementedview/UnimplementedViewComponentDescriptor.cpp +0 -4
- package/ReactCommon/react/renderer/components/view/Android.mk +1 -1
- package/ReactCommon/react/renderer/components/view/BUCK +0 -6
- package/ReactCommon/react/renderer/components/view/Touch.h +1 -32
- package/ReactCommon/react/renderer/components/view/ViewComponentDescriptor.h +0 -23
- package/ReactCommon/react/renderer/components/view/ViewPropsInterpolation.h +2 -3
- package/ReactCommon/react/renderer/components/view/ViewShadowNode.cpp +3 -3
- package/ReactCommon/react/renderer/components/view/ViewShadowNode.h +1 -1
- package/ReactCommon/react/renderer/components/view/accessibilityPropsConversions.h +4 -0
- package/ReactCommon/react/renderer/core/BUCK +2 -6
- package/ReactCommon/react/renderer/core/ConcreteComponentDescriptor.h +14 -9
- package/ReactCommon/react/renderer/core/ConcreteShadowNode.h +1 -10
- package/ReactCommon/react/renderer/core/EventEmitter.cpp +9 -4
- package/ReactCommon/react/renderer/core/EventEmitter.h +2 -1
- package/ReactCommon/react/renderer/core/Props.h +1 -0
- package/ReactCommon/react/renderer/core/PropsParserContext.h +3 -2
- package/ReactCommon/react/renderer/core/RawEvent.h +7 -5
- package/ReactCommon/react/renderer/core/RawPropsKey.cpp +10 -2
- package/ReactCommon/react/renderer/core/ReactPrimitives.h +0 -2
- package/ReactCommon/react/renderer/core/ShadowNode.cpp +7 -10
- package/ReactCommon/react/renderer/core/ShadowNodeFamily.h +1 -0
- package/ReactCommon/react/renderer/debug/BUCK +0 -6
- package/ReactCommon/react/renderer/element/BUCK +0 -6
- package/ReactCommon/react/renderer/graphics/Android.mk +1 -1
- package/ReactCommon/react/renderer/graphics/BUCK +0 -6
- package/ReactCommon/react/renderer/graphics/React-graphics.podspec +0 -1
- package/ReactCommon/react/renderer/graphics/Transform.cpp +1 -1
- package/ReactCommon/react/renderer/graphics/Transform.h +1 -1
- package/ReactCommon/react/renderer/imagemanager/BUCK +0 -6
- package/ReactCommon/react/renderer/leakchecker/BUCK +0 -6
- package/ReactCommon/react/renderer/mapbuffer/BUCK +0 -6
- package/ReactCommon/react/renderer/mounting/Android.mk +2 -1
- package/ReactCommon/react/renderer/mounting/BUCK +0 -6
- package/ReactCommon/react/renderer/mounting/MountingOverrideDelegate.h +1 -1
- package/ReactCommon/react/renderer/mounting/ShadowViewMutation.cpp +12 -0
- package/ReactCommon/react/renderer/mounting/ShadowViewMutation.h +10 -1
- package/ReactCommon/react/renderer/runtimescheduler/Android.mk +2 -1
- package/ReactCommon/react/renderer/runtimescheduler/BUCK +1 -7
- package/ReactCommon/react/renderer/runtimescheduler/ErrorUtils.h +36 -0
- package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.cpp +28 -20
- package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.h +4 -2
- package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerBinding.cpp +4 -3
- package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerBinding.h +4 -2
- package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerCallInvoker.cpp +32 -0
- package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerCallInvoker.h +36 -0
- package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerClock.h +4 -2
- package/ReactCommon/react/renderer/runtimescheduler/SchedulerPriority.h +4 -3
- package/ReactCommon/react/renderer/runtimescheduler/Task.cpp +4 -2
- package/ReactCommon/react/renderer/runtimescheduler/Task.h +4 -2
- package/ReactCommon/react/renderer/runtimescheduler/primitives.h +4 -2
- package/ReactCommon/react/renderer/runtimescheduler/tests/RuntimeSchedulerTest.cpp +26 -1
- package/ReactCommon/react/renderer/runtimescheduler/tests/StubErrorUtils.h +72 -0
- package/ReactCommon/react/renderer/scheduler/BUCK +0 -6
- package/ReactCommon/react/renderer/scheduler/Scheduler.cpp +1 -4
- package/ReactCommon/react/renderer/scheduler/Scheduler.h +1 -1
- package/ReactCommon/react/renderer/scheduler/SurfaceHandler.h +4 -4
- package/ReactCommon/react/renderer/telemetry/BUCK +0 -6
- package/ReactCommon/react/renderer/templateprocessor/BUCK +0 -6
- package/ReactCommon/react/renderer/textlayoutmanager/BUCK +0 -6
- package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/RCTAttributedTextUtils.h +2 -0
- package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/RCTAttributedTextUtils.mm +19 -0
- package/ReactCommon/react/renderer/timeline/BUCK +6 -12
- package/ReactCommon/react/renderer/uimanager/BUCK +0 -6
- package/ReactCommon/react/renderer/uimanager/UIManagerAnimationDelegate.h +1 -1
- package/ReactCommon/react/renderer/uimanager/UIManagerBinding.cpp +2 -2
- package/ReactCommon/react/renderer/uimanager/UIManagerBinding.h +1 -1
- package/ReactCommon/react/test_utils/BUCK +3 -6
- package/ReactCommon/react/{renderer/core/Constants.h → test_utils/MockSurfaceHandler.h} +9 -7
- package/ReactCommon/react/utils/BUCK +0 -6
- package/ReactCommon/react/utils/ContextContainer.h +0 -27
- package/ReactCommon/reactperflogger/BUCK +0 -4
- package/ReactCommon/runtimeexecutor/BUCK +0 -6
- package/ReactCommon/yoga/BUCK +1 -5
- package/android/com/facebook/react/react-native/{0.66.2/react-native-0.66.2.aar → 0.67.0-rc.3/react-native-0.67.0-rc.3.aar} +0 -0
- package/android/com/facebook/react/react-native/0.67.0-rc.3/react-native-0.67.0-rc.3.aar.md5 +1 -0
- package/android/com/facebook/react/react-native/0.67.0-rc.3/react-native-0.67.0-rc.3.aar.sha1 +1 -0
- package/android/com/facebook/react/react-native/0.67.0-rc.3/react-native-0.67.0-rc.3.aar.sha256 +1 -0
- package/android/com/facebook/react/react-native/0.67.0-rc.3/react-native-0.67.0-rc.3.aar.sha512 +1 -0
- package/android/com/facebook/react/react-native/{0.66.2/react-native-0.66.2.module → 0.67.0-rc.3/react-native-0.67.0-rc.3.module} +16 -17
- package/android/com/facebook/react/react-native/0.67.0-rc.3/react-native-0.67.0-rc.3.module.md5 +1 -0
- package/android/com/facebook/react/react-native/0.67.0-rc.3/react-native-0.67.0-rc.3.module.sha1 +1 -0
- package/android/com/facebook/react/react-native/0.67.0-rc.3/react-native-0.67.0-rc.3.module.sha256 +1 -0
- package/android/com/facebook/react/react-native/0.67.0-rc.3/react-native-0.67.0-rc.3.module.sha512 +1 -0
- package/android/com/facebook/react/react-native/{0.66.2/react-native-0.66.2.pom → 0.67.0-rc.3/react-native-0.67.0-rc.3.pom} +2 -2
- package/android/com/facebook/react/react-native/0.67.0-rc.3/react-native-0.67.0-rc.3.pom.md5 +1 -0
- package/android/com/facebook/react/react-native/0.67.0-rc.3/react-native-0.67.0-rc.3.pom.sha1 +1 -0
- package/android/com/facebook/react/react-native/0.67.0-rc.3/react-native-0.67.0-rc.3.pom.sha256 +1 -0
- package/android/com/facebook/react/react-native/0.67.0-rc.3/react-native-0.67.0-rc.3.pom.sha512 +1 -0
- package/android/com/facebook/react/react-native/maven-metadata.xml +4 -4
- package/android/com/facebook/react/react-native/maven-metadata.xml.md5 +1 -1
- package/android/com/facebook/react/react-native/maven-metadata.xml.sha1 +1 -1
- package/android/com/facebook/react/react-native/maven-metadata.xml.sha256 +1 -1
- package/android/com/facebook/react/react-native/maven-metadata.xml.sha512 +1 -1
- package/flow/global.js +45 -0
- package/index.js +15 -10
- package/jest/mockModal.js +31 -0
- package/jest/setup.js +5 -3
- package/package.json +8 -9
- package/react.gradle +53 -18
- package/scripts/find-node.sh +13 -0
- package/scripts/generate-specs-cli.js +18 -0
- package/scripts/ios-configure-glog.sh +4 -0
- package/scripts/react-native-xcode.sh +6 -6
- package/scripts/react_native_pods.rb +200 -57
- package/template/Gemfile +6 -0
- package/template/Gemfile.lock +100 -0
- package/template/_bundle/config +2 -0
- package/template/_flowconfig +1 -1
- package/template/_ruby-version +1 -0
- package/template/android/app/build.gradle +1 -1
- package/template/android/app/src/main/res/drawable/rn_edit_text_material.xml +36 -0
- package/template/android/app/src/main/res/values/styles.xml +1 -0
- package/template/android/build.gradle +7 -3
- package/template/android/gradle/wrapper/gradle-wrapper.properties +1 -1
- package/template/android/gradle.properties +1 -1
- package/template/ios/HelloWorld.xcodeproj/project.pbxproj +0 -2
- package/template/package.json +1 -1
- package/third-party-podspecs/RCT-Folly.podspec +1 -1
- package/third-party-podspecs/glog.podspec +0 -1
- package/Libraries/Components/DatePickerAndroid/DatePickerAndroid.android.js +0 -87
- package/Libraries/Components/DatePickerAndroid/DatePickerAndroid.ios.js +0 -30
- package/Libraries/Components/DatePickerAndroid/DatePickerAndroidTypes.js +0 -30
- package/Libraries/Components/StaticContainer.react.js +0 -51
- package/Libraries/Components/Touchable/ensurePositiveDelayProps.js +0 -25
- package/Libraries/Interaction/InteractionMixin.js +0 -54
- package/Libraries/ReactNative/queryLayoutByID.js +0 -58
- package/ReactAndroid/src/androidTest/java/com/facebook/react/tests/DatePickerDialogTestCase.java +0 -172
- package/ReactAndroid/src/androidTest/js/DatePickerDialogTestModule.js +0 -45
- package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/BUCK +0 -27
- package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DatePickerDialogFragment.java +0 -137
- package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DatePickerDialogModule.java +0 -153
- package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DatePickerMode.java +0 -15
- package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DismissableDatePickerDialog.java +0 -117
- package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/BUCK +0 -20
- package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/RuntimeSchedulerManager.java +0 -39
- package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/Android.mk +0 -34
- package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/BUCK +0 -35
- package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/OnLoad.cpp +0 -15
- package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/RuntimeSchedulerManager.cpp +0 -46
- package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/RuntimeSchedulerManager.h +0 -40
- package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/AndroidViewPagerManagerDelegate.java +0 -57
- package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/AndroidViewPagerManagerInterface.java +0 -23
- package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/BUCK +0 -19
- package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/DatePickerManagerDelegate.java +0 -62
- package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/DatePickerManagerInterface.java +0 -25
- package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/InputAccessoryViewManagerDelegate.java +0 -33
- package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/InputAccessoryViewManagerInterface.java +0 -17
- package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/PullToRefreshViewManagerDelegate.java +0 -51
- package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/PullToRefreshViewManagerInterface.java +0 -21
- package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/SwitchManagerDelegate.java +0 -63
- package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/SwitchManagerInterface.java +0 -24
- package/android/com/facebook/react/react-native/0.66.2/react-native-0.66.2.aar.md5 +0 -1
- package/android/com/facebook/react/react-native/0.66.2/react-native-0.66.2.aar.sha1 +0 -1
- package/android/com/facebook/react/react-native/0.66.2/react-native-0.66.2.aar.sha256 +0 -1
- package/android/com/facebook/react/react-native/0.66.2/react-native-0.66.2.aar.sha512 +0 -1
- package/android/com/facebook/react/react-native/0.66.2/react-native-0.66.2.module.md5 +0 -1
- package/android/com/facebook/react/react-native/0.66.2/react-native-0.66.2.module.sha1 +0 -1
- package/android/com/facebook/react/react-native/0.66.2/react-native-0.66.2.module.sha256 +0 -1
- package/android/com/facebook/react/react-native/0.66.2/react-native-0.66.2.module.sha512 +0 -1
- package/android/com/facebook/react/react-native/0.66.2/react-native-0.66.2.pom.md5 +0 -1
- package/android/com/facebook/react/react-native/0.66.2/react-native-0.66.2.pom.sha1 +0 -1
- package/android/com/facebook/react/react-native/0.66.2/react-native-0.66.2.pom.sha256 +0 -1
- package/android/com/facebook/react/react-native/0.66.2/react-native-0.66.2.pom.sha512 +0 -1
- package/scripts/generate-specs.sh +0 -99
- package/template/_editorconfig +0 -3
- package/template/_gitattributes +0 -3
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
#include "Binding.h"
|
|
9
9
|
#include "AsyncEventBeat.h"
|
|
10
|
+
#include "AsyncEventBeatV2.h"
|
|
10
11
|
#include "EventEmitterWrapper.h"
|
|
11
12
|
#include "ReactNativeConfigHolder.h"
|
|
12
13
|
#include "StateWrapperImpl.h"
|
|
@@ -242,8 +243,9 @@ Binding::getInspectorDataForInstance(
|
|
|
242
243
|
}
|
|
243
244
|
|
|
244
245
|
EventEmitterWrapper *cEventEmitter = cthis(eventEmitterWrapper);
|
|
245
|
-
InspectorData data =
|
|
246
|
-
|
|
246
|
+
InspectorData data = scheduler->getInspectorDataForInstance(
|
|
247
|
+
enableEventEmitterRawPointer_ ? *cEventEmitter->eventEmitterPointer
|
|
248
|
+
: *cEventEmitter->eventEmitter);
|
|
247
249
|
|
|
248
250
|
folly::dynamic result = folly::dynamic::object;
|
|
249
251
|
result["fileName"] = data.fileName;
|
|
@@ -493,9 +495,9 @@ bool isMapBufferSerializationEnabled() {
|
|
|
493
495
|
|
|
494
496
|
void Binding::installFabricUIManager(
|
|
495
497
|
jni::alias_ref<JRuntimeExecutor::javaobject> runtimeExecutorHolder,
|
|
498
|
+
jni::alias_ref<JRuntimeScheduler::javaobject> runtimeSchedulerHolder,
|
|
496
499
|
jni::alias_ref<jobject> javaUIManager,
|
|
497
500
|
EventBeatManager *eventBeatManager,
|
|
498
|
-
jni::alias_ref<JavaMessageQueueThread::javaobject> jsMessageQueueThread,
|
|
499
501
|
ComponentFactory *componentsRegistry,
|
|
500
502
|
jni::alias_ref<jobject> reactNativeConfig) {
|
|
501
503
|
SystraceSection s("FabricUIManagerBinding::installFabricUIManager");
|
|
@@ -506,6 +508,12 @@ void Binding::installFabricUIManager(
|
|
|
506
508
|
enableFabricLogs_ =
|
|
507
509
|
config->getBool("react_fabric:enabled_android_fabric_logs");
|
|
508
510
|
|
|
511
|
+
disableRevisionCheckForPreallocation_ =
|
|
512
|
+
config->getBool("react_fabric:disable_revision_check_for_preallocation");
|
|
513
|
+
|
|
514
|
+
enableEventEmitterRawPointer_ =
|
|
515
|
+
config->getBool("react_fabric:enable_event_emitter_wrapper_raw_pointer");
|
|
516
|
+
|
|
509
517
|
if (enableFabricLogs_) {
|
|
510
518
|
LOG(WARNING) << "Binding::installFabricUIManager() was called (address: "
|
|
511
519
|
<< this << ").";
|
|
@@ -523,26 +531,54 @@ void Binding::installFabricUIManager(
|
|
|
523
531
|
ContextContainer::Shared contextContainer =
|
|
524
532
|
std::make_shared<ContextContainer>();
|
|
525
533
|
|
|
526
|
-
auto sharedJSMessageQueueThread =
|
|
527
|
-
std::make_shared<JMessageQueueThread>(jsMessageQueueThread);
|
|
528
534
|
auto runtimeExecutor = runtimeExecutorHolder->cthis()->get();
|
|
529
535
|
|
|
536
|
+
if (runtimeSchedulerHolder) {
|
|
537
|
+
auto runtimeScheduler = runtimeSchedulerHolder->cthis()->get().lock();
|
|
538
|
+
if (runtimeScheduler) {
|
|
539
|
+
runtimeScheduler->setEnableYielding(config->getBool(
|
|
540
|
+
"react_native_new_architecture:runtimescheduler_enable_yielding_android"));
|
|
541
|
+
runtimeExecutor =
|
|
542
|
+
[runtimeScheduler](
|
|
543
|
+
std::function<void(jsi::Runtime & runtime)> &&callback) {
|
|
544
|
+
runtimeScheduler->scheduleWork(std::move(callback));
|
|
545
|
+
};
|
|
546
|
+
}
|
|
547
|
+
}
|
|
548
|
+
|
|
549
|
+
auto enableV2AsynchronousEventBeat =
|
|
550
|
+
config->getBool("react_fabric:enable_asynchronous_event_beat_v2_android");
|
|
551
|
+
|
|
530
552
|
// TODO: T31905686 Create synchronous Event Beat
|
|
531
553
|
jni::global_ref<jobject> localJavaUIManager = javaUIManager_;
|
|
532
554
|
EventBeat::Factory synchronousBeatFactory =
|
|
533
|
-
[eventBeatManager,
|
|
534
|
-
|
|
555
|
+
[eventBeatManager,
|
|
556
|
+
runtimeExecutor,
|
|
557
|
+
localJavaUIManager,
|
|
558
|
+
enableV2AsynchronousEventBeat](EventBeat::SharedOwnerBox const &ownerBox)
|
|
535
559
|
-> std::unique_ptr<EventBeat> {
|
|
536
|
-
|
|
537
|
-
|
|
560
|
+
if (enableV2AsynchronousEventBeat) {
|
|
561
|
+
return std::make_unique<AsyncEventBeatV2>(
|
|
562
|
+
ownerBox, eventBeatManager, runtimeExecutor, localJavaUIManager);
|
|
563
|
+
} else {
|
|
564
|
+
return std::make_unique<AsyncEventBeat>(
|
|
565
|
+
ownerBox, eventBeatManager, runtimeExecutor, localJavaUIManager);
|
|
566
|
+
}
|
|
538
567
|
};
|
|
539
568
|
|
|
540
569
|
EventBeat::Factory asynchronousBeatFactory =
|
|
541
|
-
[eventBeatManager,
|
|
542
|
-
|
|
570
|
+
[eventBeatManager,
|
|
571
|
+
runtimeExecutor,
|
|
572
|
+
localJavaUIManager,
|
|
573
|
+
enableV2AsynchronousEventBeat](EventBeat::SharedOwnerBox const &ownerBox)
|
|
543
574
|
-> std::unique_ptr<EventBeat> {
|
|
544
|
-
|
|
545
|
-
|
|
575
|
+
if (enableV2AsynchronousEventBeat) {
|
|
576
|
+
return std::make_unique<AsyncEventBeatV2>(
|
|
577
|
+
ownerBox, eventBeatManager, runtimeExecutor, localJavaUIManager);
|
|
578
|
+
} else {
|
|
579
|
+
return std::make_unique<AsyncEventBeat>(
|
|
580
|
+
ownerBox, eventBeatManager, runtimeExecutor, localJavaUIManager);
|
|
581
|
+
}
|
|
546
582
|
};
|
|
547
583
|
|
|
548
584
|
contextContainer->insert("ReactNativeConfig", config);
|
|
@@ -573,8 +609,8 @@ void Binding::installFabricUIManager(
|
|
|
573
609
|
toolbox.backgroundExecutor = backgroundExecutor_->get();
|
|
574
610
|
}
|
|
575
611
|
|
|
576
|
-
animationDriver_ =
|
|
577
|
-
|
|
612
|
+
animationDriver_ = std::make_shared<LayoutAnimationDriver>(
|
|
613
|
+
runtimeExecutor, contextContainer, this);
|
|
578
614
|
scheduler_ = std::make_shared<Scheduler>(
|
|
579
615
|
toolbox, (animationDriver_ ? animationDriver_.get() : nullptr), this);
|
|
580
616
|
}
|
|
@@ -610,16 +646,19 @@ inline local_ref<ReadableArray::javaobject> castReadableArray(
|
|
|
610
646
|
|
|
611
647
|
// TODO: this method will be removed when binding for components are code-gen
|
|
612
648
|
local_ref<JString> getPlatformComponentName(const ShadowView &shadowView) {
|
|
613
|
-
|
|
614
|
-
auto newViewProps =
|
|
615
|
-
std::dynamic_pointer_cast<const ScrollViewProps>(shadowView.props);
|
|
649
|
+
static std::string scrollViewComponentName = std::string("ScrollView");
|
|
616
650
|
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
651
|
+
local_ref<JString> componentName;
|
|
652
|
+
if (scrollViewComponentName.compare(shadowView.componentName) == 0) {
|
|
653
|
+
auto newViewProps =
|
|
654
|
+
std::static_pointer_cast<const ScrollViewProps>(shadowView.props);
|
|
655
|
+
if (newViewProps->getProbablyMoreHorizontalThanVertical_DEPRECATED()) {
|
|
656
|
+
componentName = make_jstring("AndroidHorizontalScrollView");
|
|
657
|
+
return componentName;
|
|
658
|
+
}
|
|
622
659
|
}
|
|
660
|
+
|
|
661
|
+
componentName = make_jstring(shadowView.componentName);
|
|
623
662
|
return componentName;
|
|
624
663
|
}
|
|
625
664
|
|
|
@@ -885,8 +924,11 @@ void Binding::schedulerDidFinishTransaction(
|
|
|
885
924
|
mountItem.newChildShadowView.eventEmitter;
|
|
886
925
|
auto javaEventEmitter = EventEmitterWrapper::newObjectJavaArgs();
|
|
887
926
|
EventEmitterWrapper *cEventEmitter = cthis(javaEventEmitter);
|
|
888
|
-
|
|
889
|
-
|
|
927
|
+
if (enableEventEmitterRawPointer_) {
|
|
928
|
+
cEventEmitter->eventEmitterPointer = eventEmitter.get();
|
|
929
|
+
} else {
|
|
930
|
+
cEventEmitter->eventEmitter = eventEmitter;
|
|
931
|
+
}
|
|
890
932
|
temp[0] = mountItem.newChildShadowView.tag;
|
|
891
933
|
temp[1] = isLayoutable;
|
|
892
934
|
env->SetIntArrayRegion(intBufferArray, intBufferPosition, 2, temp);
|
|
@@ -1036,7 +1078,11 @@ void Binding::schedulerDidFinishTransaction(
|
|
|
1036
1078
|
// Do not hold a reference to javaEventEmitter from the C++ side.
|
|
1037
1079
|
auto javaEventEmitter = EventEmitterWrapper::newObjectJavaArgs();
|
|
1038
1080
|
EventEmitterWrapper *cEventEmitter = cthis(javaEventEmitter);
|
|
1039
|
-
|
|
1081
|
+
if (enableEventEmitterRawPointer_) {
|
|
1082
|
+
cEventEmitter->eventEmitterPointer = eventEmitter.get();
|
|
1083
|
+
} else {
|
|
1084
|
+
cEventEmitter->eventEmitter = eventEmitter;
|
|
1085
|
+
}
|
|
1040
1086
|
|
|
1041
1087
|
(*objBufferArray)[objBufferPosition++] = javaEventEmitter.get();
|
|
1042
1088
|
}
|
|
@@ -1163,7 +1209,11 @@ void Binding::preallocateShadowView(
|
|
|
1163
1209
|
if (eventEmitter != nullptr) {
|
|
1164
1210
|
javaEventEmitter = EventEmitterWrapper::newObjectJavaArgs();
|
|
1165
1211
|
EventEmitterWrapper *cEventEmitter = cthis(javaEventEmitter);
|
|
1166
|
-
|
|
1212
|
+
if (enableEventEmitterRawPointer_) {
|
|
1213
|
+
cEventEmitter->eventEmitterPointer = eventEmitter.get();
|
|
1214
|
+
} else {
|
|
1215
|
+
cEventEmitter->eventEmitter = eventEmitter;
|
|
1216
|
+
}
|
|
1167
1217
|
}
|
|
1168
1218
|
}
|
|
1169
1219
|
|
|
@@ -1210,11 +1260,13 @@ void Binding::schedulerDidCloneShadowNode(
|
|
|
1210
1260
|
// 1. The revision is exactly 1
|
|
1211
1261
|
// 2. At revision 0 (the old node), View Preallocation would have been skipped
|
|
1212
1262
|
|
|
1213
|
-
if (
|
|
1214
|
-
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1263
|
+
if (!disableRevisionCheckForPreallocation_) {
|
|
1264
|
+
if (newShadowNode.getProps()->revision != 1) {
|
|
1265
|
+
return;
|
|
1266
|
+
}
|
|
1267
|
+
if (oldShadowNode.getProps()->revision != 0) {
|
|
1268
|
+
return;
|
|
1269
|
+
}
|
|
1218
1270
|
}
|
|
1219
1271
|
|
|
1220
1272
|
// If the new node is concrete and the old wasn't, we can preallocate
|
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
#pragma once
|
|
9
9
|
|
|
10
10
|
#include <fbjni/fbjni.h>
|
|
11
|
-
#include <react/jni/JMessageQueueThread.h>
|
|
12
11
|
#include <react/jni/JRuntimeExecutor.h>
|
|
12
|
+
#include <react/jni/JRuntimeScheduler.h>
|
|
13
13
|
#include <react/jni/ReadableNativeMap.h>
|
|
14
14
|
#include <react/renderer/animations/LayoutAnimationDriver.h>
|
|
15
15
|
#include <react/renderer/scheduler/Scheduler.h>
|
|
@@ -105,9 +105,9 @@ class Binding : public jni::HybridClass<Binding>,
|
|
|
105
105
|
|
|
106
106
|
void installFabricUIManager(
|
|
107
107
|
jni::alias_ref<JRuntimeExecutor::javaobject> runtimeExecutorHolder,
|
|
108
|
+
jni::alias_ref<JRuntimeScheduler::javaobject> runtimeSchedulerHolder,
|
|
108
109
|
jni::alias_ref<jobject> javaUIManager,
|
|
109
110
|
EventBeatManager *eventBeatManager,
|
|
110
|
-
jni::alias_ref<JavaMessageQueueThread::javaobject> jsMessageQueueThread,
|
|
111
111
|
ComponentFactory *componentsRegistry,
|
|
112
112
|
jni::alias_ref<jobject> reactNativeConfig);
|
|
113
113
|
|
|
@@ -199,6 +199,8 @@ class Binding : public jni::HybridClass<Binding>,
|
|
|
199
199
|
bool disablePreallocateViews_{false};
|
|
200
200
|
bool enableFabricLogs_{false};
|
|
201
201
|
bool enableEarlyEventEmitterUpdate_{false};
|
|
202
|
+
bool disableRevisionCheckForPreallocation_{false};
|
|
203
|
+
bool enableEventEmitterRawPointer_{false};
|
|
202
204
|
};
|
|
203
205
|
|
|
204
206
|
} // namespace react
|
|
@@ -20,13 +20,26 @@ EventEmitterWrapper::initHybrid(jni::alias_ref<jclass>) {
|
|
|
20
20
|
|
|
21
21
|
void EventEmitterWrapper::invokeEvent(
|
|
22
22
|
std::string eventName,
|
|
23
|
-
NativeMap *payload
|
|
23
|
+
NativeMap *payload,
|
|
24
|
+
int category) {
|
|
25
|
+
if (eventEmitterPointer) {
|
|
26
|
+
eventEmitterPointer->dispatchEvent(
|
|
27
|
+
std::move(eventName),
|
|
28
|
+
payload->consume(),
|
|
29
|
+
EventPriority::AsynchronousBatched,
|
|
30
|
+
static_cast<RawEvent::Category>(category));
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
|
|
24
34
|
// It is marginal, but possible for this to be constructed without a valid
|
|
25
35
|
// EventEmitter. In those cases, make sure we noop/blackhole events instead of
|
|
26
36
|
// crashing.
|
|
27
37
|
if (eventEmitter != nullptr) {
|
|
28
38
|
eventEmitter->dispatchEvent(
|
|
29
|
-
eventName,
|
|
39
|
+
eventName,
|
|
40
|
+
payload->consume(),
|
|
41
|
+
EventPriority::AsynchronousBatched,
|
|
42
|
+
static_cast<RawEvent::Category>(category));
|
|
30
43
|
}
|
|
31
44
|
}
|
|
32
45
|
|
|
@@ -34,6 +47,11 @@ void EventEmitterWrapper::invokeUniqueEvent(
|
|
|
34
47
|
std::string eventName,
|
|
35
48
|
NativeMap *payload,
|
|
36
49
|
int customCoalesceKey) {
|
|
50
|
+
if (eventEmitterPointer) {
|
|
51
|
+
eventEmitterPointer->dispatchUniqueEvent(
|
|
52
|
+
std::move(eventName), payload->consume());
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
37
55
|
// TODO: customCoalesceKey currently unused
|
|
38
56
|
// It is marginal, but possible for this to be constructed without a valid
|
|
39
57
|
// EventEmitter. In those cases, make sure we noop/blackhole events instead of
|
|
@@ -24,8 +24,9 @@ class EventEmitterWrapper : public jni::HybridClass<EventEmitterWrapper> {
|
|
|
24
24
|
static void registerNatives();
|
|
25
25
|
|
|
26
26
|
SharedEventEmitter eventEmitter;
|
|
27
|
+
EventEmitter const *eventEmitterPointer;
|
|
27
28
|
|
|
28
|
-
void invokeEvent(std::string eventName, NativeMap *params);
|
|
29
|
+
void invokeEvent(std::string eventName, NativeMap *params, int category);
|
|
29
30
|
void invokeUniqueEvent(
|
|
30
31
|
std::string eventName,
|
|
31
32
|
NativeMap *params,
|
package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountItemDispatcher.java
CHANGED
|
@@ -13,6 +13,7 @@ import static com.facebook.react.fabric.FabricUIManager.ENABLE_FABRIC_LOGS;
|
|
|
13
13
|
import static com.facebook.react.fabric.FabricUIManager.IS_DEVELOPMENT_ENVIRONMENT;
|
|
14
14
|
|
|
15
15
|
import android.os.SystemClock;
|
|
16
|
+
import android.view.View;
|
|
16
17
|
import androidx.annotation.AnyThread;
|
|
17
18
|
import androidx.annotation.NonNull;
|
|
18
19
|
import androidx.annotation.Nullable;
|
|
@@ -274,10 +275,17 @@ public class MountItemDispatcher {
|
|
|
274
275
|
executeOrEnqueue(mountItem);
|
|
275
276
|
} catch (Throwable e) {
|
|
276
277
|
// If there's an exception, we want to log diagnostics in prod and rethrow.
|
|
277
|
-
FLog.e(TAG, "dispatchMountItems: caught exception, displaying
|
|
278
|
+
FLog.e(TAG, "dispatchMountItems: caught exception, displaying mount state", e);
|
|
278
279
|
for (MountItem m : mountItemsToDispatch) {
|
|
279
280
|
printMountItem(m, "dispatchMountItems: mountItem");
|
|
280
281
|
}
|
|
282
|
+
if (mountItem.getSurfaceId() != View.NO_ID) {
|
|
283
|
+
SurfaceMountingManager surfaceManager =
|
|
284
|
+
mMountingManager.getSurfaceManager(mountItem.getSurfaceId());
|
|
285
|
+
if (surfaceManager != null) {
|
|
286
|
+
surfaceManager.printSurfaceState();
|
|
287
|
+
}
|
|
288
|
+
}
|
|
281
289
|
|
|
282
290
|
if (ReactIgnorableMountingException.isIgnorable(e)) {
|
|
283
291
|
ReactSoftExceptionLogger.logSoftException(TAG, e);
|
package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.java
CHANGED
|
@@ -910,10 +910,6 @@ public class SurfaceMountingManager {
|
|
|
910
910
|
// We treat this as a perf problem and not a logical error. View Preallocation or unexpected
|
|
911
911
|
// changes to Differ or C++ Binding could cause some redundant Create instructions.
|
|
912
912
|
if (getNullableViewState(reactTag) != null) {
|
|
913
|
-
ReactSoftExceptionLogger.logSoftException(
|
|
914
|
-
TAG,
|
|
915
|
-
new IllegalStateException(
|
|
916
|
-
"Cannot Preallocate view with tag [" + reactTag + "], already exists."));
|
|
917
913
|
return;
|
|
918
914
|
}
|
|
919
915
|
|
|
@@ -963,6 +959,25 @@ public class SurfaceMountingManager {
|
|
|
963
959
|
return (ViewGroupManager<ViewGroup>) viewState.mViewManager;
|
|
964
960
|
}
|
|
965
961
|
|
|
962
|
+
public void printSurfaceState() {
|
|
963
|
+
FLog.e(TAG, "Views created for surface {%d}:", getSurfaceId());
|
|
964
|
+
for (ViewState viewState : mTagToViewState.values()) {
|
|
965
|
+
String viewManagerName =
|
|
966
|
+
viewState.mViewManager != null ? viewState.mViewManager.getName() : null;
|
|
967
|
+
@Nullable View view = viewState.mView;
|
|
968
|
+
@Nullable View parent = view != null ? (View) view.getParent() : null;
|
|
969
|
+
@Nullable Integer parentTag = parent != null ? parent.getId() : null;
|
|
970
|
+
|
|
971
|
+
FLog.e(
|
|
972
|
+
TAG,
|
|
973
|
+
"<%s id=%d parentTag=%s isRoot=%b />",
|
|
974
|
+
viewManagerName,
|
|
975
|
+
viewState.mReactTag,
|
|
976
|
+
parentTag,
|
|
977
|
+
viewState.mIsRoot);
|
|
978
|
+
}
|
|
979
|
+
}
|
|
980
|
+
|
|
966
981
|
/**
|
|
967
982
|
* This class holds view state for react tags. Objects of this class are stored into the {@link
|
|
968
983
|
* #mTagToViewState}, and they should be updated in the same thread.
|
|
@@ -226,8 +226,12 @@ public class IntBufferBatchMountItem implements MountItem {
|
|
|
226
226
|
: "<hidden>";
|
|
227
227
|
s.append(String.format("UPDATE PROPS [%d]: %s\n", mIntBuffer[i++], propsString));
|
|
228
228
|
} else if (type == INSTRUCTION_UPDATE_STATE) {
|
|
229
|
-
|
|
230
|
-
|
|
229
|
+
StateWrapper state = castToState(mObjBuffer[j++]);
|
|
230
|
+
String stateString =
|
|
231
|
+
IS_DEVELOPMENT_ENVIRONMENT
|
|
232
|
+
? (state != null ? state.getStateData().toString() : "<null>")
|
|
233
|
+
: "<hidden>";
|
|
234
|
+
s.append(String.format("UPDATE STATE [%d]: %s\n", mIntBuffer[i++], stateString));
|
|
231
235
|
} else if (type == INSTRUCTION_UPDATE_LAYOUT) {
|
|
232
236
|
s.append(
|
|
233
237
|
String.format(
|
|
@@ -20,7 +20,8 @@ rn_xplat_cxx_library(
|
|
|
20
20
|
srcs = glob(["*.cpp"]),
|
|
21
21
|
headers = glob(["*.h"]),
|
|
22
22
|
header_namespace = "",
|
|
23
|
-
|
|
23
|
+
compiler_flags_enable_exceptions = True, # TODO: is this necessary?
|
|
24
|
+
compiler_flags_enable_rtti = True, # TODO: is this necessary?
|
|
24
25
|
fbandroid_allow_jni_merging = True,
|
|
25
26
|
platforms = ANDROID,
|
|
26
27
|
soname = "libjscexecutor.$(ext)",
|
|
@@ -14,8 +14,13 @@ import com.facebook.react.bridge.ReadableNativeMap;
|
|
|
14
14
|
import com.facebook.soloader.SoLoader;
|
|
15
15
|
|
|
16
16
|
@DoNotStrip
|
|
17
|
-
/* package */ class JSCExecutor extends JavaScriptExecutor {
|
|
17
|
+
/* package */ public class JSCExecutor extends JavaScriptExecutor {
|
|
18
|
+
|
|
18
19
|
static {
|
|
20
|
+
loadLibrary();
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
public static void loadLibrary() throws UnsatisfiedLinkError {
|
|
19
24
|
SoLoader.loadLibrary("jscexecutor");
|
|
20
25
|
}
|
|
21
26
|
|
|
@@ -5,12 +5,6 @@ rn_xplat_cxx_library(
|
|
|
5
5
|
srcs = glob(["*.cpp"]),
|
|
6
6
|
headers = glob(["*.h"]),
|
|
7
7
|
header_namespace = "",
|
|
8
|
-
compiler_flags = [
|
|
9
|
-
"-fexceptions",
|
|
10
|
-
"-frtti",
|
|
11
|
-
"-std=c++17",
|
|
12
|
-
"-Wall",
|
|
13
|
-
],
|
|
14
8
|
labels = ["supermodule:xplat/default/public.react_native.infra"],
|
|
15
9
|
platforms = ANDROID,
|
|
16
10
|
soname = "libreactnativeblob.$(ext)",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
load("//tools/build_defs/oss:rn_defs.bzl", "react_native_dep", "react_native_target", "rn_android_library")
|
|
1
|
+
load("//tools/build_defs/oss:rn_defs.bzl", "react_native_dep", "react_native_root_target", "react_native_target", "rn_android_library")
|
|
2
2
|
|
|
3
3
|
rn_android_library(
|
|
4
4
|
name = "clipboard",
|
|
@@ -16,4 +16,7 @@ rn_android_library(
|
|
|
16
16
|
react_native_target("java/com/facebook/react/common:common"),
|
|
17
17
|
react_native_target("java/com/facebook/react/module/annotations:annotations"),
|
|
18
18
|
],
|
|
19
|
+
exported_deps = [
|
|
20
|
+
react_native_root_target(":FBReactNativeSpec"),
|
|
21
|
+
],
|
|
19
22
|
)
|
package/ReactAndroid/src/main/java/com/facebook/react/modules/clipboard/ClipboardModule.java
CHANGED
|
@@ -9,17 +9,16 @@ package com.facebook.react.modules.clipboard;
|
|
|
9
9
|
|
|
10
10
|
import android.content.ClipData;
|
|
11
11
|
import android.content.ClipboardManager;
|
|
12
|
-
import
|
|
13
|
-
import com.facebook.react.bridge.ContextBaseJavaModule;
|
|
12
|
+
import com.facebook.fbreact.specs.NativeClipboardSpec;
|
|
14
13
|
import com.facebook.react.bridge.Promise;
|
|
15
|
-
import com.facebook.react.bridge.
|
|
14
|
+
import com.facebook.react.bridge.ReactApplicationContext;
|
|
16
15
|
import com.facebook.react.module.annotations.ReactModule;
|
|
17
16
|
|
|
18
17
|
/** A module that allows JS to get/set clipboard contents. */
|
|
19
18
|
@ReactModule(name = ClipboardModule.NAME)
|
|
20
|
-
public class ClipboardModule extends
|
|
19
|
+
public class ClipboardModule extends NativeClipboardSpec {
|
|
21
20
|
|
|
22
|
-
public ClipboardModule(
|
|
21
|
+
public ClipboardModule(ReactApplicationContext context) {
|
|
23
22
|
super(context);
|
|
24
23
|
}
|
|
25
24
|
|
|
@@ -31,10 +30,12 @@ public class ClipboardModule extends ContextBaseJavaModule {
|
|
|
31
30
|
}
|
|
32
31
|
|
|
33
32
|
private ClipboardManager getClipboardService() {
|
|
34
|
-
return (ClipboardManager)
|
|
33
|
+
return (ClipboardManager)
|
|
34
|
+
getReactApplicationContext()
|
|
35
|
+
.getSystemService(getReactApplicationContext().CLIPBOARD_SERVICE);
|
|
35
36
|
}
|
|
36
37
|
|
|
37
|
-
@
|
|
38
|
+
@Override
|
|
38
39
|
public void getString(Promise promise) {
|
|
39
40
|
try {
|
|
40
41
|
ClipboardManager clipboard = getClipboardService();
|
|
@@ -50,7 +51,7 @@ public class ClipboardModule extends ContextBaseJavaModule {
|
|
|
50
51
|
}
|
|
51
52
|
}
|
|
52
53
|
|
|
53
|
-
@
|
|
54
|
+
@Override
|
|
54
55
|
public void setString(String text) {
|
|
55
56
|
ClipData clipdata = ClipData.newPlainText(null, text);
|
|
56
57
|
ClipboardManager clipboard = getClipboardService();
|
package/ReactAndroid/src/main/java/com/facebook/react/modules/core/ExceptionsManagerModule.java
CHANGED
|
@@ -65,28 +65,16 @@ public class ExceptionsManagerModule extends NativeExceptionsManagerSpec {
|
|
|
65
65
|
public void reportException(ReadableMap data) {
|
|
66
66
|
String message = data.hasKey("message") ? data.getString("message") : "";
|
|
67
67
|
ReadableArray stack = data.hasKey("stack") ? data.getArray("stack") : Arguments.createArray();
|
|
68
|
-
int id = data.hasKey("id") ? data.getInt("id") : -1;
|
|
69
68
|
boolean isFatal = data.hasKey("isFatal") ? data.getBoolean("isFatal") : false;
|
|
70
69
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
if (!suppressRedBox) {
|
|
78
|
-
mDevSupportManager.showNewJSError(message, stack, id);
|
|
79
|
-
}
|
|
70
|
+
String extraDataAsJson = ExceptionDataHelper.getExtraDataAsJson(data);
|
|
71
|
+
if (isFatal) {
|
|
72
|
+
throw new JavascriptException(JSStackTrace.format(message, stack))
|
|
73
|
+
.setExtraDataAsJson(extraDataAsJson);
|
|
80
74
|
} else {
|
|
81
|
-
|
|
82
|
-
if (
|
|
83
|
-
|
|
84
|
-
.setExtraDataAsJson(extraDataAsJson);
|
|
85
|
-
} else {
|
|
86
|
-
FLog.e(ReactConstants.TAG, JSStackTrace.format(message, stack));
|
|
87
|
-
if (extraDataAsJson != null) {
|
|
88
|
-
FLog.d(ReactConstants.TAG, "extraData: %s", extraDataAsJson);
|
|
89
|
-
}
|
|
75
|
+
FLog.e(ReactConstants.TAG, JSStackTrace.format(message, stack));
|
|
76
|
+
if (extraDataAsJson != null) {
|
|
77
|
+
FLog.d(ReactConstants.TAG, "extraData: %s", extraDataAsJson);
|
|
90
78
|
}
|
|
91
79
|
}
|
|
92
80
|
}
|
|
@@ -10,7 +10,7 @@ package com.facebook.react.modules.core;
|
|
|
10
10
|
import com.facebook.react.bridge.WritableArray;
|
|
11
11
|
|
|
12
12
|
/** An interface used by {@link JavaTimerManager} to access and call JS timers from Java. */
|
|
13
|
-
public interface
|
|
13
|
+
public interface JavaScriptTimerExecutor {
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
16
|
* Calls the JS callback(s) associated with the timer ID(s). Also unregisters the callback if the
|
|
@@ -81,7 +81,7 @@ public class JavaTimerManager {
|
|
|
81
81
|
}
|
|
82
82
|
|
|
83
83
|
if (mTimersToCall != null) {
|
|
84
|
-
|
|
84
|
+
mJavaScriptTimerExecutor.callTimers(mTimersToCall);
|
|
85
85
|
mTimersToCall = null;
|
|
86
86
|
}
|
|
87
87
|
|
|
@@ -139,7 +139,7 @@ public class JavaTimerManager {
|
|
|
139
139
|
}
|
|
140
140
|
|
|
141
141
|
if (sendIdleEvents) {
|
|
142
|
-
|
|
142
|
+
mJavaScriptTimerExecutor.callIdleCallbacks(absoluteFrameStartTime);
|
|
143
143
|
}
|
|
144
144
|
|
|
145
145
|
mCurrentIdleCallbackRunnable = null;
|
|
@@ -151,7 +151,7 @@ public class JavaTimerManager {
|
|
|
151
151
|
}
|
|
152
152
|
|
|
153
153
|
private final ReactApplicationContext mReactApplicationContext;
|
|
154
|
-
private final
|
|
154
|
+
private final JavaScriptTimerExecutor mJavaScriptTimerExecutor;
|
|
155
155
|
private final ReactChoreographer mReactChoreographer;
|
|
156
156
|
private final DevSupportManager mDevSupportManager;
|
|
157
157
|
private final Object mTimerGuard = new Object();
|
|
@@ -169,11 +169,11 @@ public class JavaTimerManager {
|
|
|
169
169
|
|
|
170
170
|
public JavaTimerManager(
|
|
171
171
|
ReactApplicationContext reactContext,
|
|
172
|
-
|
|
172
|
+
JavaScriptTimerExecutor javaScriptTimerManager,
|
|
173
173
|
ReactChoreographer reactChoreographer,
|
|
174
174
|
DevSupportManager devSupportManager) {
|
|
175
175
|
mReactApplicationContext = reactContext;
|
|
176
|
-
|
|
176
|
+
mJavaScriptTimerExecutor = javaScriptTimerManager;
|
|
177
177
|
mReactChoreographer = reactChoreographer;
|
|
178
178
|
mDevSupportManager = devSupportManager;
|
|
179
179
|
|
|
@@ -327,7 +327,7 @@ public class JavaTimerManager {
|
|
|
327
327
|
if (mDevSupportManager.getDevSupportEnabled()) {
|
|
328
328
|
long driftTime = Math.abs(remoteTime - deviceTime);
|
|
329
329
|
if (driftTime > 60000) {
|
|
330
|
-
|
|
330
|
+
mJavaScriptTimerExecutor.emitTimeDriftWarning(
|
|
331
331
|
"Debugger and device times have drifted by more than 60s. Please correct this by "
|
|
332
332
|
+ "running adb shell \"date `date +%m%d%H%M%Y.%S`\" on your debugger machine.");
|
|
333
333
|
}
|
|
@@ -338,7 +338,7 @@ public class JavaTimerManager {
|
|
|
338
338
|
if (duration == 0 && !repeat) {
|
|
339
339
|
WritableArray timerToCall = Arguments.createArray();
|
|
340
340
|
timerToCall.pushInt(callbackID);
|
|
341
|
-
|
|
341
|
+
mJavaScriptTimerExecutor.callTimers(timerToCall);
|
|
342
342
|
return;
|
|
343
343
|
}
|
|
344
344
|
|
|
@@ -22,7 +22,7 @@ import com.facebook.react.module.annotations.ReactModule;
|
|
|
22
22
|
public final class TimingModule extends NativeTimingSpec
|
|
23
23
|
implements LifecycleEventListener, HeadlessJsTaskEventListener {
|
|
24
24
|
|
|
25
|
-
public class
|
|
25
|
+
public class BridgeTimerExecutor implements JavaScriptTimerExecutor {
|
|
26
26
|
@Override
|
|
27
27
|
public void callTimers(WritableArray timerIDs) {
|
|
28
28
|
ReactApplicationContext reactApplicationContext = getReactApplicationContextIfActiveOrWarn();
|
|
@@ -61,7 +61,7 @@ public final class TimingModule extends NativeTimingSpec
|
|
|
61
61
|
mJavaTimerManager =
|
|
62
62
|
new JavaTimerManager(
|
|
63
63
|
reactContext,
|
|
64
|
-
new
|
|
64
|
+
new BridgeTimerExecutor(),
|
|
65
65
|
ReactChoreographer.getInstance(),
|
|
66
66
|
devSupportManager);
|
|
67
67
|
}
|
package/ReactAndroid/src/main/java/com/facebook/react/modules/i18nmanager/I18nManagerModule.java
CHANGED
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
package com.facebook.react.modules.i18nmanager;
|
|
9
9
|
|
|
10
10
|
import android.content.Context;
|
|
11
|
+
import android.os.Build;
|
|
11
12
|
import com.facebook.fbreact.specs.NativeI18nManagerSpec;
|
|
12
13
|
import com.facebook.react.bridge.NativeModule;
|
|
13
14
|
import com.facebook.react.bridge.ReactApplicationContext;
|
|
@@ -36,7 +37,12 @@ public class I18nManagerModule extends NativeI18nManagerSpec {
|
|
|
36
37
|
@Override
|
|
37
38
|
public Map<String, Object> getTypedExportedConstants() {
|
|
38
39
|
final Context context = getReactApplicationContext();
|
|
39
|
-
final Locale locale
|
|
40
|
+
final Locale locale;
|
|
41
|
+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
|
42
|
+
locale = context.getResources().getConfiguration().getLocales().get(0);
|
|
43
|
+
} else {
|
|
44
|
+
locale = context.getResources().getConfiguration().locale;
|
|
45
|
+
}
|
|
40
46
|
|
|
41
47
|
final Map<String, Object> constants = MapBuilder.newHashMap();
|
|
42
48
|
constants.put("isRTL", sharedI18nUtilInstance.isRTL(context));
|