react-native 0.66.0-rc.4 → 0.67.0-rc.1
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 +2 -2
- 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 +18 -19
- 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 +2 -2
- 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/RCTAppearance.mm +3 -1
- 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/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/react/BUCK +0 -1
- package/ReactAndroid/src/main/java/com/facebook/react/ReactActivity.java +7 -0
- package/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java +7 -0
- package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java +63 -26
- package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManagerBuilder.java +46 -1
- 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/modules/appearance/AppearanceModule.java +10 -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 +2 -2
- 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/ReactViewBackgroundDrawable.java +8 -8
- 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 +2 -2
- 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.0-rc.4/react-native-0.66.0-rc.4.aar → 0.67.0-rc.1/react-native-0.67.0-rc.1.aar} +0 -0
- package/android/com/facebook/react/react-native/0.67.0-rc.1/react-native-0.67.0-rc.1.aar.md5 +1 -0
- package/android/com/facebook/react/react-native/0.67.0-rc.1/react-native-0.67.0-rc.1.aar.sha1 +1 -0
- package/android/com/facebook/react/react-native/0.67.0-rc.1/react-native-0.67.0-rc.1.aar.sha256 +1 -0
- package/android/com/facebook/react/react-native/0.67.0-rc.1/react-native-0.67.0-rc.1.aar.sha512 +1 -0
- package/android/com/facebook/react/react-native/{0.66.0-rc.4/react-native-0.66.0-rc.4.module → 0.67.0-rc.1/react-native-0.67.0-rc.1.module} +16 -17
- package/android/com/facebook/react/react-native/0.67.0-rc.1/react-native-0.67.0-rc.1.module.md5 +1 -0
- package/android/com/facebook/react/react-native/0.67.0-rc.1/react-native-0.67.0-rc.1.module.sha1 +1 -0
- package/android/com/facebook/react/react-native/0.67.0-rc.1/react-native-0.67.0-rc.1.module.sha256 +1 -0
- package/android/com/facebook/react/react-native/0.67.0-rc.1/react-native-0.67.0-rc.1.module.sha512 +1 -0
- package/android/com/facebook/react/react-native/{0.66.0-rc.4/react-native-0.66.0-rc.4.pom → 0.67.0-rc.1/react-native-0.67.0-rc.1.pom} +2 -2
- package/android/com/facebook/react/react-native/0.67.0-rc.1/react-native-0.67.0-rc.1.pom.md5 +1 -0
- package/android/com/facebook/react/react-native/0.67.0-rc.1/react-native-0.67.0-rc.1.pom.sha1 +1 -0
- package/android/com/facebook/react/react-native/0.67.0-rc.1/react-native-0.67.0-rc.1.pom.sha256 +1 -0
- package/android/com/facebook/react/react-native/0.67.0-rc.1/react-native-0.67.0-rc.1.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 +7 -7
- package/scripts/react_native_pods.rb +202 -70
- 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/ios/Podfile +0 -1
- 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.0-rc.4/react-native-0.66.0-rc.4.aar.md5 +0 -1
- package/android/com/facebook/react/react-native/0.66.0-rc.4/react-native-0.66.0-rc.4.aar.sha1 +0 -1
- package/android/com/facebook/react/react-native/0.66.0-rc.4/react-native-0.66.0-rc.4.aar.sha256 +0 -1
- package/android/com/facebook/react/react-native/0.66.0-rc.4/react-native-0.66.0-rc.4.aar.sha512 +0 -1
- package/android/com/facebook/react/react-native/0.66.0-rc.4/react-native-0.66.0-rc.4.module.md5 +0 -1
- package/android/com/facebook/react/react-native/0.66.0-rc.4/react-native-0.66.0-rc.4.module.sha1 +0 -1
- package/android/com/facebook/react/react-native/0.66.0-rc.4/react-native-0.66.0-rc.4.module.sha256 +0 -1
- package/android/com/facebook/react/react-native/0.66.0-rc.4/react-native-0.66.0-rc.4.module.sha512 +0 -1
- package/android/com/facebook/react/react-native/0.66.0-rc.4/react-native-0.66.0-rc.4.pom.md5 +0 -1
- package/android/com/facebook/react/react-native/0.66.0-rc.4/react-native-0.66.0-rc.4.pom.sha1 +0 -1
- package/android/com/facebook/react/react-native/0.66.0-rc.4/react-native-0.66.0-rc.4.pom.sha256 +0 -1
- package/android/com/facebook/react/react-native/0.66.0-rc.4/react-native-0.66.0-rc.4.pom.sha512 +0 -1
- package/scripts/generate-specs.sh +0 -99
- package/template/_editorconfig +0 -3
- package/template/_gitattributes +0 -3
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
package com.facebook.react.common;
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Factory to create a {@link SurfaceDelegate}. The moduleName is needed to help the factory decide
|
|
12
|
+
* which surface to return {@link SurfaceDelegate} that the given module should use to interact
|
|
13
|
+
* with.
|
|
14
|
+
*/
|
|
15
|
+
public interface SurfaceDelegateFactory {
|
|
16
|
+
/**
|
|
17
|
+
* Create a {@link SurfaceDelegate} instance which is used to interact with a surface of platform
|
|
18
|
+
* the app is running in.
|
|
19
|
+
*
|
|
20
|
+
* @param moduleName the module name that will be using the surface
|
|
21
|
+
* @return {@link SurfaceDelegate} instance
|
|
22
|
+
*/
|
|
23
|
+
SurfaceDelegate createSurfaceDelegate(String moduleName);
|
|
24
|
+
}
|
|
@@ -11,12 +11,6 @@ rn_xplat_cxx_library(
|
|
|
11
11
|
],
|
|
12
12
|
prefix = "react/common/mapbuffer",
|
|
13
13
|
),
|
|
14
|
-
compiler_flags = [
|
|
15
|
-
"-fexceptions",
|
|
16
|
-
"-frtti",
|
|
17
|
-
"-std=c++17",
|
|
18
|
-
"-Wall",
|
|
19
|
-
],
|
|
20
14
|
fbandroid_allow_jni_merging = True,
|
|
21
15
|
labels = ["supermodule:xplat/default/public.react_native.infra"],
|
|
22
16
|
platforms = ANDROID,
|
|
@@ -25,6 +25,12 @@ public class ReactFeatureFlags {
|
|
|
25
25
|
*/
|
|
26
26
|
public static volatile boolean useTurboModules = false;
|
|
27
27
|
|
|
28
|
+
/**
|
|
29
|
+
* Should this application use the new (Fabric) Renderer? If yes, all rendering in this app will
|
|
30
|
+
* use Fabric instead of the legacy renderer.
|
|
31
|
+
*/
|
|
32
|
+
public static volatile boolean enableFabricRenderer = false;
|
|
33
|
+
|
|
28
34
|
/**
|
|
29
35
|
* After TurboModules and Fabric are enabled, we need to ensure that the legacy NativeModule isn't
|
|
30
36
|
* isn't used. So, turn this flag on to trigger warnings whenever the legacy NativeModule system
|
|
@@ -66,6 +72,8 @@ public class ReactFeatureFlags {
|
|
|
66
72
|
|
|
67
73
|
public static boolean enableRuntimeScheduler = false;
|
|
68
74
|
|
|
75
|
+
public static boolean enableRuntimeSchedulerInTurboModule = false;
|
|
76
|
+
|
|
69
77
|
/** Enables a more aggressive cleanup during destruction of ReactContext */
|
|
70
78
|
public static boolean enableReactContextCleanupFix = false;
|
|
71
79
|
|
|
@@ -89,4 +97,12 @@ public class ReactFeatureFlags {
|
|
|
89
97
|
public static boolean enableLockFreeEventDispatcher = false;
|
|
90
98
|
|
|
91
99
|
public static boolean enableAggressiveEventEmitterCleanup = false;
|
|
100
|
+
|
|
101
|
+
public static boolean insertZReorderBarriersOnViewGroupChildren = true;
|
|
102
|
+
|
|
103
|
+
public static boolean enableScrollViewSnapToAlignmentProp = true;
|
|
104
|
+
|
|
105
|
+
public static boolean useDispatchUniqueForCoalescableEvents = false;
|
|
106
|
+
|
|
107
|
+
public static boolean useUpdatedTouchPreprocessing = false;
|
|
92
108
|
}
|
|
@@ -57,6 +57,7 @@ rn_android_library(
|
|
|
57
57
|
react_native_dep("third-party/android/androidx:annotation"),
|
|
58
58
|
react_native_dep("third-party/java/jsr-305:jsr-305"),
|
|
59
59
|
react_native_target("java/com/facebook/react/bridge:bridge"),
|
|
60
|
+
react_native_target("java/com/facebook/react/common:common"),
|
|
60
61
|
react_native_target("java/com/facebook/react/modules/debug:interfaces"),
|
|
61
62
|
],
|
|
62
63
|
)
|
package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BridgeDevSupportManager.java
CHANGED
|
@@ -22,6 +22,7 @@ import com.facebook.react.bridge.ReactMarker;
|
|
|
22
22
|
import com.facebook.react.bridge.ReactMarkerConstants;
|
|
23
23
|
import com.facebook.react.bridge.UiThreadUtil;
|
|
24
24
|
import com.facebook.react.common.ReactConstants;
|
|
25
|
+
import com.facebook.react.common.SurfaceDelegateFactory;
|
|
25
26
|
import com.facebook.react.common.futures.SimpleSettableFuture;
|
|
26
27
|
import com.facebook.react.devsupport.interfaces.DevBundleDownloadListener;
|
|
27
28
|
import com.facebook.react.devsupport.interfaces.DevOptionHandler;
|
|
@@ -71,7 +72,8 @@ public final class BridgeDevSupportManager extends DevSupportManagerBase {
|
|
|
71
72
|
@Nullable RedBoxHandler redBoxHandler,
|
|
72
73
|
@Nullable DevBundleDownloadListener devBundleDownloadListener,
|
|
73
74
|
int minNumShakes,
|
|
74
|
-
@Nullable Map<String, RequestHandler> customPackagerCommandHandlers
|
|
75
|
+
@Nullable Map<String, RequestHandler> customPackagerCommandHandlers,
|
|
76
|
+
@Nullable SurfaceDelegateFactory surfaceDelegateFactory) {
|
|
75
77
|
super(
|
|
76
78
|
applicationContext,
|
|
77
79
|
reactInstanceManagerHelper,
|
|
@@ -80,7 +82,8 @@ public final class BridgeDevSupportManager extends DevSupportManagerBase {
|
|
|
80
82
|
redBoxHandler,
|
|
81
83
|
devBundleDownloadListener,
|
|
82
84
|
minNumShakes,
|
|
83
|
-
customPackagerCommandHandlers
|
|
85
|
+
customPackagerCommandHandlers,
|
|
86
|
+
surfaceDelegateFactory);
|
|
84
87
|
|
|
85
88
|
if (getDevSettings().isStartSamplingProfilerOnInit()) {
|
|
86
89
|
// Only start the profiler. If its already running, there is an error
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
package com.facebook.react.devsupport;
|
|
9
|
+
|
|
10
|
+
import android.content.Context;
|
|
11
|
+
import androidx.annotation.Nullable;
|
|
12
|
+
import com.facebook.react.common.SurfaceDelegateFactory;
|
|
13
|
+
import com.facebook.react.devsupport.interfaces.DevBundleDownloadListener;
|
|
14
|
+
import com.facebook.react.devsupport.interfaces.DevSupportManager;
|
|
15
|
+
import com.facebook.react.packagerconnection.RequestHandler;
|
|
16
|
+
import java.lang.reflect.Constructor;
|
|
17
|
+
import java.util.Map;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* A simple factory that creates instances of {@link DevSupportManager} implementations. Uses
|
|
21
|
+
* reflection to create BridgeDevSupportManager if it exists. This allows ProGuard to strip that
|
|
22
|
+
* class and its dependencies in release builds. If the class isn't found, {@link
|
|
23
|
+
* DisabledDevSupportManager} is returned instead.
|
|
24
|
+
*/
|
|
25
|
+
public class DefaultDevSupportManagerFactory implements DevSupportManagerFactory {
|
|
26
|
+
|
|
27
|
+
private static final String DEVSUPPORT_IMPL_PACKAGE = "com.facebook.react.devsupport";
|
|
28
|
+
private static final String DEVSUPPORT_IMPL_CLASS = "BridgeDevSupportManager";
|
|
29
|
+
|
|
30
|
+
public DevSupportManager create(
|
|
31
|
+
Context applicationContext,
|
|
32
|
+
ReactInstanceDevHelper reactInstanceDevHelper,
|
|
33
|
+
@Nullable String packagerPathForJSBundleName,
|
|
34
|
+
boolean enableOnCreate,
|
|
35
|
+
int minNumShakes) {
|
|
36
|
+
|
|
37
|
+
return create(
|
|
38
|
+
applicationContext,
|
|
39
|
+
reactInstanceDevHelper,
|
|
40
|
+
packagerPathForJSBundleName,
|
|
41
|
+
enableOnCreate,
|
|
42
|
+
null,
|
|
43
|
+
null,
|
|
44
|
+
minNumShakes,
|
|
45
|
+
null,
|
|
46
|
+
null);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
@Override
|
|
50
|
+
public DevSupportManager create(
|
|
51
|
+
Context applicationContext,
|
|
52
|
+
ReactInstanceDevHelper reactInstanceManagerHelper,
|
|
53
|
+
@Nullable String packagerPathForJSBundleName,
|
|
54
|
+
boolean enableOnCreate,
|
|
55
|
+
@Nullable RedBoxHandler redBoxHandler,
|
|
56
|
+
@Nullable DevBundleDownloadListener devBundleDownloadListener,
|
|
57
|
+
int minNumShakes,
|
|
58
|
+
@Nullable Map<String, RequestHandler> customPackagerCommandHandlers,
|
|
59
|
+
@Nullable SurfaceDelegateFactory surfaceDelegateFactory) {
|
|
60
|
+
if (!enableOnCreate) {
|
|
61
|
+
return new DisabledDevSupportManager();
|
|
62
|
+
}
|
|
63
|
+
try {
|
|
64
|
+
// ProGuard is surprisingly smart in this case and will keep a class if it detects a call to
|
|
65
|
+
// Class.forName() with a static string. So instead we generate a quasi-dynamic string to
|
|
66
|
+
// confuse it.
|
|
67
|
+
String className =
|
|
68
|
+
new StringBuilder(DEVSUPPORT_IMPL_PACKAGE)
|
|
69
|
+
.append(".")
|
|
70
|
+
.append(DEVSUPPORT_IMPL_CLASS)
|
|
71
|
+
.toString();
|
|
72
|
+
Class<?> devSupportManagerClass = Class.forName(className);
|
|
73
|
+
Constructor constructor =
|
|
74
|
+
devSupportManagerClass.getConstructor(
|
|
75
|
+
Context.class,
|
|
76
|
+
ReactInstanceDevHelper.class,
|
|
77
|
+
String.class,
|
|
78
|
+
boolean.class,
|
|
79
|
+
RedBoxHandler.class,
|
|
80
|
+
DevBundleDownloadListener.class,
|
|
81
|
+
int.class,
|
|
82
|
+
Map.class,
|
|
83
|
+
SurfaceDelegateFactory.class);
|
|
84
|
+
return (DevSupportManager)
|
|
85
|
+
constructor.newInstance(
|
|
86
|
+
applicationContext,
|
|
87
|
+
reactInstanceManagerHelper,
|
|
88
|
+
packagerPathForJSBundleName,
|
|
89
|
+
true,
|
|
90
|
+
redBoxHandler,
|
|
91
|
+
devBundleDownloadListener,
|
|
92
|
+
minNumShakes,
|
|
93
|
+
customPackagerCommandHandlers,
|
|
94
|
+
surfaceDelegateFactory);
|
|
95
|
+
} catch (Exception e) {
|
|
96
|
+
throw new RuntimeException(
|
|
97
|
+
"Requested enabled DevSupportManager, but BridgeDevSupportManager class was not found"
|
|
98
|
+
+ " or could not be created",
|
|
99
|
+
e);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
@@ -41,6 +41,8 @@ import com.facebook.react.bridge.UiThreadUtil;
|
|
|
41
41
|
import com.facebook.react.common.DebugServerException;
|
|
42
42
|
import com.facebook.react.common.ReactConstants;
|
|
43
43
|
import com.facebook.react.common.ShakeDetector;
|
|
44
|
+
import com.facebook.react.common.SurfaceDelegate;
|
|
45
|
+
import com.facebook.react.common.SurfaceDelegateFactory;
|
|
44
46
|
import com.facebook.react.devsupport.DevServerHelper.PackagerCommandListener;
|
|
45
47
|
import com.facebook.react.devsupport.interfaces.BundleLoadCallback;
|
|
46
48
|
import com.facebook.react.devsupport.interfaces.DevBundleDownloadListener;
|
|
@@ -118,6 +120,7 @@ public abstract class DevSupportManagerBase implements DevSupportManager {
|
|
|
118
120
|
private @Nullable Map<String, RequestHandler> mCustomPackagerCommandHandlers;
|
|
119
121
|
|
|
120
122
|
private @Nullable Activity currentActivity;
|
|
123
|
+
private @Nullable final SurfaceDelegateFactory mSurfaceDelegateFactory;
|
|
121
124
|
|
|
122
125
|
public DevSupportManagerBase(
|
|
123
126
|
Context applicationContext,
|
|
@@ -127,7 +130,8 @@ public abstract class DevSupportManagerBase implements DevSupportManager {
|
|
|
127
130
|
@Nullable RedBoxHandler redBoxHandler,
|
|
128
131
|
@Nullable DevBundleDownloadListener devBundleDownloadListener,
|
|
129
132
|
int minNumShakes,
|
|
130
|
-
@Nullable Map<String, RequestHandler> customPackagerCommandHandlers
|
|
133
|
+
@Nullable Map<String, RequestHandler> customPackagerCommandHandlers,
|
|
134
|
+
@Nullable SurfaceDelegateFactory surfaceDelegateFactory) {
|
|
131
135
|
mReactInstanceDevHelper = reactInstanceDevHelper;
|
|
132
136
|
mApplicationContext = applicationContext;
|
|
133
137
|
mJSAppBundleName = packagerPathForJSBundleName;
|
|
@@ -202,7 +206,8 @@ public abstract class DevSupportManagerBase implements DevSupportManager {
|
|
|
202
206
|
|
|
203
207
|
mRedBoxHandler = redBoxHandler;
|
|
204
208
|
mDevLoadingViewController = new DevLoadingViewController(reactInstanceDevHelper);
|
|
205
|
-
|
|
209
|
+
mSurfaceDelegateFactory = surfaceDelegateFactory;
|
|
210
|
+
};
|
|
206
211
|
|
|
207
212
|
protected abstract String getUniqueTag();
|
|
208
213
|
|
|
@@ -345,16 +350,21 @@ public abstract class DevSupportManagerBase implements DevSupportManager {
|
|
|
345
350
|
@Override
|
|
346
351
|
public void run() {
|
|
347
352
|
Activity context = mReactInstanceDevHelper.getCurrentActivity();
|
|
348
|
-
if (
|
|
349
|
-
if (context == null || context.isFinishing()) {
|
|
350
|
-
FLog.e(
|
|
351
|
-
ReactConstants.TAG,
|
|
352
|
-
"Unable to launch redbox because react activity "
|
|
353
|
-
+ "is not available, here is the error that redbox would've displayed: "
|
|
354
|
-
+ message);
|
|
355
|
-
return;
|
|
356
|
-
}
|
|
353
|
+
if (context != null && !context.isFinishing() && currentActivity != context) {
|
|
357
354
|
currentActivity = context;
|
|
355
|
+
// Create a new RedBox when currentActivity get updated
|
|
356
|
+
mRedBoxDialog =
|
|
357
|
+
new RedBoxDialog(currentActivity, DevSupportManagerBase.this, mRedBoxHandler);
|
|
358
|
+
}
|
|
359
|
+
if (currentActivity == null || currentActivity.isFinishing()) {
|
|
360
|
+
FLog.e(
|
|
361
|
+
ReactConstants.TAG,
|
|
362
|
+
"Unable to launch redbox because react activity "
|
|
363
|
+
+ "is not available, here is the error that redbox would've displayed: "
|
|
364
|
+
+ message);
|
|
365
|
+
return;
|
|
366
|
+
}
|
|
367
|
+
if (mRedBoxDialog == null) {
|
|
358
368
|
mRedBoxDialog =
|
|
359
369
|
new RedBoxDialog(currentActivity, DevSupportManagerBase.this, mRedBoxHandler);
|
|
360
370
|
}
|
|
@@ -1199,4 +1209,18 @@ public abstract class DevSupportManagerBase implements DevSupportManager {
|
|
|
1199
1209
|
DevSupportManager.PackagerLocationCustomizer packagerLocationCustomizer) {
|
|
1200
1210
|
mPackagerLocationCustomizer = packagerLocationCustomizer;
|
|
1201
1211
|
}
|
|
1212
|
+
|
|
1213
|
+
@Override
|
|
1214
|
+
public @Nullable Activity getCurrentActivity() {
|
|
1215
|
+
return mReactInstanceDevHelper.getCurrentActivity();
|
|
1216
|
+
}
|
|
1217
|
+
|
|
1218
|
+
@Override
|
|
1219
|
+
public @Nullable SurfaceDelegate createSurfaceDelegate(String moduleName) {
|
|
1220
|
+
if (mSurfaceDelegateFactory == null) {
|
|
1221
|
+
return null;
|
|
1222
|
+
}
|
|
1223
|
+
|
|
1224
|
+
return mSurfaceDelegateFactory.createSurfaceDelegate(moduleName);
|
|
1225
|
+
}
|
|
1202
1226
|
}
|
package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerFactory.java
CHANGED
|
@@ -9,42 +9,14 @@ package com.facebook.react.devsupport;
|
|
|
9
9
|
|
|
10
10
|
import android.content.Context;
|
|
11
11
|
import androidx.annotation.Nullable;
|
|
12
|
+
import com.facebook.react.common.SurfaceDelegateFactory;
|
|
12
13
|
import com.facebook.react.devsupport.interfaces.DevBundleDownloadListener;
|
|
13
14
|
import com.facebook.react.devsupport.interfaces.DevSupportManager;
|
|
14
15
|
import com.facebook.react.packagerconnection.RequestHandler;
|
|
15
|
-
import java.lang.reflect.Constructor;
|
|
16
16
|
import java.util.Map;
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
* reflection to create BridgeDevSupportManager if it exists. This allows ProGuard to strip that
|
|
21
|
-
* class and its dependencies in release builds. If the class isn't found, {@link
|
|
22
|
-
* DisabledDevSupportManager} is returned instead.
|
|
23
|
-
*/
|
|
24
|
-
public class DevSupportManagerFactory {
|
|
25
|
-
|
|
26
|
-
private static final String DEVSUPPORT_IMPL_PACKAGE = "com.facebook.react.devsupport";
|
|
27
|
-
private static final String DEVSUPPORT_IMPL_CLASS = "BridgeDevSupportManager";
|
|
28
|
-
|
|
29
|
-
public static DevSupportManager create(
|
|
30
|
-
Context applicationContext,
|
|
31
|
-
ReactInstanceDevHelper reactInstanceDevHelper,
|
|
32
|
-
@Nullable String packagerPathForJSBundleName,
|
|
33
|
-
boolean enableOnCreate,
|
|
34
|
-
int minNumShakes) {
|
|
35
|
-
|
|
36
|
-
return create(
|
|
37
|
-
applicationContext,
|
|
38
|
-
reactInstanceDevHelper,
|
|
39
|
-
packagerPathForJSBundleName,
|
|
40
|
-
enableOnCreate,
|
|
41
|
-
null,
|
|
42
|
-
null,
|
|
43
|
-
minNumShakes,
|
|
44
|
-
null);
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
public static DevSupportManager create(
|
|
18
|
+
public interface DevSupportManagerFactory {
|
|
19
|
+
DevSupportManager create(
|
|
48
20
|
Context applicationContext,
|
|
49
21
|
ReactInstanceDevHelper reactInstanceManagerHelper,
|
|
50
22
|
@Nullable String packagerPathForJSBundleName,
|
|
@@ -52,45 +24,6 @@ public class DevSupportManagerFactory {
|
|
|
52
24
|
@Nullable RedBoxHandler redBoxHandler,
|
|
53
25
|
@Nullable DevBundleDownloadListener devBundleDownloadListener,
|
|
54
26
|
int minNumShakes,
|
|
55
|
-
@Nullable Map<String, RequestHandler> customPackagerCommandHandlers
|
|
56
|
-
|
|
57
|
-
return new DisabledDevSupportManager();
|
|
58
|
-
}
|
|
59
|
-
try {
|
|
60
|
-
// ProGuard is surprisingly smart in this case and will keep a class if it detects a call to
|
|
61
|
-
// Class.forName() with a static string. So instead we generate a quasi-dynamic string to
|
|
62
|
-
// confuse it.
|
|
63
|
-
String className =
|
|
64
|
-
new StringBuilder(DEVSUPPORT_IMPL_PACKAGE)
|
|
65
|
-
.append(".")
|
|
66
|
-
.append(DEVSUPPORT_IMPL_CLASS)
|
|
67
|
-
.toString();
|
|
68
|
-
Class<?> devSupportManagerClass = Class.forName(className);
|
|
69
|
-
Constructor constructor =
|
|
70
|
-
devSupportManagerClass.getConstructor(
|
|
71
|
-
Context.class,
|
|
72
|
-
ReactInstanceDevHelper.class,
|
|
73
|
-
String.class,
|
|
74
|
-
boolean.class,
|
|
75
|
-
RedBoxHandler.class,
|
|
76
|
-
DevBundleDownloadListener.class,
|
|
77
|
-
int.class,
|
|
78
|
-
Map.class);
|
|
79
|
-
return (DevSupportManager)
|
|
80
|
-
constructor.newInstance(
|
|
81
|
-
applicationContext,
|
|
82
|
-
reactInstanceManagerHelper,
|
|
83
|
-
packagerPathForJSBundleName,
|
|
84
|
-
true,
|
|
85
|
-
redBoxHandler,
|
|
86
|
-
devBundleDownloadListener,
|
|
87
|
-
minNumShakes,
|
|
88
|
-
customPackagerCommandHandlers);
|
|
89
|
-
} catch (Exception e) {
|
|
90
|
-
throw new RuntimeException(
|
|
91
|
-
"Requested enabled DevSupportManager, but BridgeDevSupportManager class was not found"
|
|
92
|
-
+ " or could not be created",
|
|
93
|
-
e);
|
|
94
|
-
}
|
|
95
|
-
}
|
|
27
|
+
@Nullable Map<String, RequestHandler> customPackagerCommandHandlers,
|
|
28
|
+
@Nullable SurfaceDelegateFactory surfaceDelegateFactory);
|
|
96
29
|
}
|
package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DisabledDevSupportManager.java
CHANGED
|
@@ -7,11 +7,13 @@
|
|
|
7
7
|
|
|
8
8
|
package com.facebook.react.devsupport;
|
|
9
9
|
|
|
10
|
+
import android.app.Activity;
|
|
10
11
|
import android.view.View;
|
|
11
12
|
import androidx.annotation.Nullable;
|
|
12
13
|
import com.facebook.react.bridge.DefaultNativeModuleCallExceptionHandler;
|
|
13
14
|
import com.facebook.react.bridge.ReactContext;
|
|
14
15
|
import com.facebook.react.bridge.ReadableArray;
|
|
16
|
+
import com.facebook.react.common.SurfaceDelegate;
|
|
15
17
|
import com.facebook.react.devsupport.interfaces.BundleLoadCallback;
|
|
16
18
|
import com.facebook.react.devsupport.interfaces.DevOptionHandler;
|
|
17
19
|
import com.facebook.react.devsupport.interfaces.DevSplitBundleCallback;
|
|
@@ -175,4 +177,14 @@ public class DisabledDevSupportManager implements DevSupportManager {
|
|
|
175
177
|
public void handleException(Exception e) {
|
|
176
178
|
mDefaultNativeModuleCallExceptionHandler.handleException(e);
|
|
177
179
|
}
|
|
180
|
+
|
|
181
|
+
@Override
|
|
182
|
+
public @Nullable Activity getCurrentActivity() {
|
|
183
|
+
return null;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
@Override
|
|
187
|
+
public @Nullable SurfaceDelegate createSurfaceDelegate(String moduleName) {
|
|
188
|
+
return null;
|
|
189
|
+
}
|
|
178
190
|
}
|
package/ReactAndroid/src/main/java/com/facebook/react/devsupport/LogBoxDialogSurfaceDelegate.java
ADDED
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
package com.facebook.react.devsupport;
|
|
9
|
+
|
|
10
|
+
import android.app.Activity;
|
|
11
|
+
import android.view.View;
|
|
12
|
+
import android.view.ViewGroup;
|
|
13
|
+
import androidx.annotation.Nullable;
|
|
14
|
+
import com.facebook.infer.annotation.Assertions;
|
|
15
|
+
import com.facebook.react.common.SurfaceDelegate;
|
|
16
|
+
import com.facebook.react.devsupport.interfaces.DevSupportManager;
|
|
17
|
+
import com.facebook.react.util.RNLog;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* The implementation of SurfaceDelegate with {@link Activity}. This is the default SurfaceDelegate
|
|
21
|
+
* for Mobile.
|
|
22
|
+
*/
|
|
23
|
+
public class LogBoxDialogSurfaceDelegate implements SurfaceDelegate {
|
|
24
|
+
|
|
25
|
+
private @Nullable View mReactRootView;
|
|
26
|
+
private @Nullable LogBoxDialog mDialog;
|
|
27
|
+
private final DevSupportManager mDevSupportManager;
|
|
28
|
+
|
|
29
|
+
LogBoxDialogSurfaceDelegate(DevSupportManager devSupportManager) {
|
|
30
|
+
mDevSupportManager = devSupportManager;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
@Override
|
|
34
|
+
public void createContentView(String appKey) {
|
|
35
|
+
Assertions.assertCondition(
|
|
36
|
+
appKey.equals("LogBox"), "This surface manager can only create LogBox React application");
|
|
37
|
+
mReactRootView = mDevSupportManager.createRootView("LogBox");
|
|
38
|
+
if (mReactRootView == null) {
|
|
39
|
+
RNLog.e("Unable to launch logbox because react was unable to create the root view");
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
@Override
|
|
44
|
+
public boolean isContentViewReady() {
|
|
45
|
+
return mReactRootView != null;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
@Override
|
|
49
|
+
public void destroyContentView() {
|
|
50
|
+
if (mReactRootView != null) {
|
|
51
|
+
mDevSupportManager.destroyRootView(mReactRootView);
|
|
52
|
+
mReactRootView = null;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
@Override
|
|
57
|
+
public void show() {
|
|
58
|
+
if (isSurfaceVisible() || !isContentViewReady()) {
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
final @Nullable Activity context = mDevSupportManager.getCurrentActivity();
|
|
63
|
+
if (context == null || context.isFinishing()) {
|
|
64
|
+
RNLog.e(
|
|
65
|
+
"Unable to launch logbox because react activity "
|
|
66
|
+
+ "is not available, here is the error that logbox would've displayed: ");
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
mDialog = new LogBoxDialog(context, mReactRootView);
|
|
71
|
+
mDialog.setCancelable(false);
|
|
72
|
+
mDialog.show();
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
@Override
|
|
76
|
+
public void hide() {
|
|
77
|
+
if (!isSurfaceVisible()) {
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
if (mReactRootView != null && mReactRootView.getParent() != null) {
|
|
82
|
+
((ViewGroup) mReactRootView.getParent()).removeView(mReactRootView);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
mDialog.dismiss();
|
|
86
|
+
mDialog = null;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
private boolean isSurfaceVisible() {
|
|
90
|
+
return mDialog != null;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
@@ -7,16 +7,13 @@
|
|
|
7
7
|
|
|
8
8
|
package com.facebook.react.devsupport;
|
|
9
9
|
|
|
10
|
-
import android.app.Activity;
|
|
11
|
-
import android.view.View;
|
|
12
|
-
import android.view.ViewGroup;
|
|
13
10
|
import androidx.annotation.Nullable;
|
|
14
11
|
import com.facebook.fbreact.specs.NativeLogBoxSpec;
|
|
15
12
|
import com.facebook.react.bridge.ReactApplicationContext;
|
|
16
13
|
import com.facebook.react.bridge.UiThreadUtil;
|
|
14
|
+
import com.facebook.react.common.SurfaceDelegate;
|
|
17
15
|
import com.facebook.react.devsupport.interfaces.DevSupportManager;
|
|
18
16
|
import com.facebook.react.module.annotations.ReactModule;
|
|
19
|
-
import com.facebook.react.util.RNLog;
|
|
20
17
|
|
|
21
18
|
@ReactModule(name = LogBoxModule.NAME)
|
|
22
19
|
public class LogBoxModule extends NativeLogBoxSpec {
|
|
@@ -24,24 +21,30 @@ public class LogBoxModule extends NativeLogBoxSpec {
|
|
|
24
21
|
public static final String NAME = "LogBox";
|
|
25
22
|
|
|
26
23
|
private final DevSupportManager mDevSupportManager;
|
|
27
|
-
private
|
|
28
|
-
private @Nullable LogBoxDialog mLogBoxDialog;
|
|
24
|
+
private final SurfaceDelegate mSurfaceDelegate;
|
|
29
25
|
|
|
26
|
+
/**
|
|
27
|
+
* LogBoxModule can be rendered in different surface. By default, it will use LogBoxDialog to wrap
|
|
28
|
+
* the content of logs. In other platform (for example VR), a surfaceDelegate can be provided so
|
|
29
|
+
* that the content can be wrapped in custom surface.
|
|
30
|
+
*/
|
|
30
31
|
public LogBoxModule(ReactApplicationContext reactContext, DevSupportManager devSupportManager) {
|
|
31
32
|
super(reactContext);
|
|
32
33
|
|
|
33
34
|
mDevSupportManager = devSupportManager;
|
|
34
35
|
|
|
36
|
+
@Nullable SurfaceDelegate surfaceDelegate = devSupportManager.createSurfaceDelegate(NAME);
|
|
37
|
+
if (surfaceDelegate != null) {
|
|
38
|
+
mSurfaceDelegate = surfaceDelegate;
|
|
39
|
+
} else {
|
|
40
|
+
mSurfaceDelegate = new LogBoxDialogSurfaceDelegate(devSupportManager);
|
|
41
|
+
}
|
|
42
|
+
|
|
35
43
|
UiThreadUtil.runOnUiThread(
|
|
36
44
|
new Runnable() {
|
|
37
45
|
@Override
|
|
38
46
|
public void run() {
|
|
39
|
-
|
|
40
|
-
mReactRootView = mDevSupportManager.createRootView("LogBox");
|
|
41
|
-
if (mReactRootView == null) {
|
|
42
|
-
RNLog.e("Unable to launch logbox because react was unable to create the root view");
|
|
43
|
-
}
|
|
44
|
-
}
|
|
47
|
+
mSurfaceDelegate.createContentView("LogBox");
|
|
45
48
|
}
|
|
46
49
|
});
|
|
47
50
|
}
|
|
@@ -53,26 +56,17 @@ public class LogBoxModule extends NativeLogBoxSpec {
|
|
|
53
56
|
|
|
54
57
|
@Override
|
|
55
58
|
public void show() {
|
|
56
|
-
if (
|
|
57
|
-
|
|
58
|
-
new Runnable() {
|
|
59
|
-
@Override
|
|
60
|
-
public void run() {
|
|
61
|
-
if (mLogBoxDialog == null && mReactRootView != null) {
|
|
62
|
-
Activity context = getCurrentActivity();
|
|
63
|
-
if (context == null || context.isFinishing()) {
|
|
64
|
-
RNLog.e(
|
|
65
|
-
"Unable to launch logbox because react activity "
|
|
66
|
-
+ "is not available, here is the error that logbox would've displayed: ");
|
|
67
|
-
return;
|
|
68
|
-
}
|
|
69
|
-
mLogBoxDialog = new LogBoxDialog(context, mReactRootView);
|
|
70
|
-
mLogBoxDialog.setCancelable(false);
|
|
71
|
-
mLogBoxDialog.show();
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
});
|
|
59
|
+
if (!mSurfaceDelegate.isContentViewReady()) {
|
|
60
|
+
return;
|
|
75
61
|
}
|
|
62
|
+
|
|
63
|
+
UiThreadUtil.runOnUiThread(
|
|
64
|
+
new Runnable() {
|
|
65
|
+
@Override
|
|
66
|
+
public void run() {
|
|
67
|
+
mSurfaceDelegate.show();
|
|
68
|
+
}
|
|
69
|
+
});
|
|
76
70
|
}
|
|
77
71
|
|
|
78
72
|
@Override
|
|
@@ -81,13 +75,7 @@ public class LogBoxModule extends NativeLogBoxSpec {
|
|
|
81
75
|
new Runnable() {
|
|
82
76
|
@Override
|
|
83
77
|
public void run() {
|
|
84
|
-
|
|
85
|
-
if (mReactRootView != null && mReactRootView.getParent() != null) {
|
|
86
|
-
((ViewGroup) mReactRootView.getParent()).removeView(mReactRootView);
|
|
87
|
-
}
|
|
88
|
-
mLogBoxDialog.dismiss();
|
|
89
|
-
mLogBoxDialog = null;
|
|
90
|
-
}
|
|
78
|
+
mSurfaceDelegate.hide();
|
|
91
79
|
}
|
|
92
80
|
});
|
|
93
81
|
}
|
|
@@ -98,10 +86,7 @@ public class LogBoxModule extends NativeLogBoxSpec {
|
|
|
98
86
|
new Runnable() {
|
|
99
87
|
@Override
|
|
100
88
|
public void run() {
|
|
101
|
-
|
|
102
|
-
mDevSupportManager.destroyRootView(mReactRootView);
|
|
103
|
-
mReactRootView = null;
|
|
104
|
-
}
|
|
89
|
+
mSurfaceDelegate.destroyContentView();
|
|
105
90
|
}
|
|
106
91
|
});
|
|
107
92
|
}
|
package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/DevSupportManager.java
CHANGED
|
@@ -7,11 +7,13 @@
|
|
|
7
7
|
|
|
8
8
|
package com.facebook.react.devsupport.interfaces;
|
|
9
9
|
|
|
10
|
+
import android.app.Activity;
|
|
10
11
|
import android.view.View;
|
|
11
12
|
import androidx.annotation.Nullable;
|
|
12
13
|
import com.facebook.react.bridge.NativeModuleCallExceptionHandler;
|
|
13
14
|
import com.facebook.react.bridge.ReactContext;
|
|
14
15
|
import com.facebook.react.bridge.ReadableArray;
|
|
16
|
+
import com.facebook.react.common.SurfaceDelegate;
|
|
15
17
|
import com.facebook.react.modules.debug.interfaces.DeveloperSettings;
|
|
16
18
|
import java.io.File;
|
|
17
19
|
|
|
@@ -107,4 +109,16 @@ public interface DevSupportManager extends NativeModuleCallExceptionHandler {
|
|
|
107
109
|
}
|
|
108
110
|
|
|
109
111
|
void setPackagerLocationCustomizer(PackagerLocationCustomizer packagerLocationCustomizer);
|
|
112
|
+
|
|
113
|
+
@Nullable
|
|
114
|
+
Activity getCurrentActivity();
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* Create the surface delegate that the provided module should use to interact with
|
|
118
|
+
*
|
|
119
|
+
* @param moduleName the module name that helps decide which surface it should interact with
|
|
120
|
+
* @return a {@link SurfaceDelegate} instance
|
|
121
|
+
*/
|
|
122
|
+
@Nullable
|
|
123
|
+
SurfaceDelegate createSurfaceDelegate(String moduleName);
|
|
110
124
|
}
|