Commit Graph

21910 Commits

Author SHA1 Message Date
Valentin Shergin 33d6091cac Fabric: Using SurfaceHandler on iOS
Summary:
This diff migrates iOS renderer to using SurfaceHandler directly instead of calling Scheduler methods.

Major changes:
* RCTFabricSurface only stores a SurfaceHandler and platform-specific parts (such as a UIView instance and TouchHandler); all other pieces of state are stored in SurfaceHandler object.
* All the state changes initiated from RCTFabricSurface are performed via calling corresponding methods on SurfaceHandler (bypassing RCTSurfacePresenter, RCTScheduler, Scheduler, and UIManager).
* Every RCTSurfaceHandler is responsible for observing `UIContentSizeCategoryDidChangeNotification` and communicating the change down to SurfaceHandler. (Besides code simplifications it's more correct because on iOS the DPI actually depends on a particular UIScreen/UIWindow associated with UIView and *not* global for the whole app.)

Changelog: [Internal] Fabric-specific internal change.

Reviewed By: sammy-SC

Differential Revision: D24290778

fbshipit-source-id: 62b600c3f1b2e66a7513481404af941ef8b78bec
2021-02-09 08:10:43 -08:00
Samuel Susla 5c202cafd6 Simplify content mode conversion
Summary:
Changelog: [internal]

To avoid typecasting, let's return `UIViewContentMode`. This way we get rid of a condition to check if contentMode is repeat.

Reviewed By: JoshuaGross

Differential Revision: D26252431

fbshipit-source-id: 94ef7af1a76f13c91b696d57ceecc2453bbc9d8d
2021-02-09 04:03:48 -08:00
Tim Yung 1049835b50 RN: Simplify Keyboard
Summary:
Simplifies `Keyboard` by removing redundant methods and changing `addEventListener` to return an `EventSubscription`.

Changelog:
[General][Changed] - `Keyboard.addListener` now returns an `EventSubscription` object.
[General][Removed] - Removed `Keyboard.removeListener`. Instead, use the `remove()` method on the object returned by `Keyboard.addListener`.
[General][Removed] - `Keyboard` no longer inherits from `NativeEventEmitter`, so it no longer implements `removeAllListeners`, and `removeSubscription`.

Reviewed By: milroc

Differential Revision: D26163536

fbshipit-source-id: b4bd91627cd027a13fcba269a253823913eb7589
2021-02-08 17:49:31 -08:00
Tim Yung 88a41f180c LogBox: Intelligently Un-Collapse Stack Frames
Summary:
Tweaks LogBox so that if all stack frames are collapsed, start off without collapsing any of them.

It saves developers from one extra interaction to make the LogBox actually useful for errors where every frame is ignored.

Changelog:
[General][Changed] - LogBox will not initially collapse stack frames if every frame would be collapsed.

Differential Revision: D26266195

fbshipit-source-id: dcdbe0834da5fc3a0bf49fb7857de30dd7e4b8cb
2021-02-08 17:17:57 -08:00
Luna Wei 7f5ec15009 Update RNTester example headers
Summary:
Changelog:
[General][Changed] - Update RNTester example headers
* Removed platform availability on a example page
* Add the title of the example module since we aren't updating the native title bar

Since we already show platform information on the list of examples, it's redundant to show it again on the example page and this would give us more clearance for our examples below.

Where we already show platform information
| Android | iOS |
| {F370209520} | {F370209763} |

Reviewed By: nadiia, kacieb

Differential Revision: D26293966

fbshipit-source-id: a503db3703fc0c56a64c91880a83d222fe38faf4
2021-02-08 17:08:43 -08:00
Luna Wei 4ed54c6411 Move SectionList examples to RNTester
Summary:
Changelog:
[General][Added] - Add more SectionList examples to RNTester

Move the examples we're using for e2e tests to RNTester as well

Reviewed By: nadiia, kacieb

Differential Revision: D26290719

fbshipit-source-id: c61ccd3034ac21c779c3a94e5c0febcfbf9897f7
2021-02-08 17:08:43 -08:00
Ramanpreet Nara ab21226457 Migrate away from "@fbsource//tools/build_defs/apple:flag_defs.bzl"
Summary:
We still have usages of "fbsource//tools/build_defs/apple:flag_defs.bzl" in react-native-github. But this should get us closer towards not using the fbsource cell. Hopefully, this is enough to unbreak the  test_docker CircleCI build.

Changelog: [Internal]

Reviewed By: fkgozali

Differential Revision: D26289304

fbshipit-source-id: 1c6464bb84df4f82f8a797321a73a1ed324e319a
2021-02-08 16:04:51 -08:00
Ramanpreet Nara 442d44fe46 Rename OBJC_ARC_PREPROCESSOR_FLAGS to get_objc_arc_preprocessor_flags()
Summary:
This'll make OSS buck targets consistent with FB targets.

Changelog: [Internal]

Reviewed By: fkgozali

Differential Revision: D26289310

fbshipit-source-id: 1b435676fd23b722224bba5b343067d0fa922e82
2021-02-08 16:04:51 -08:00
Jesse Katsumata 34e1b0ef98 chore: fix warning comments of deprecated modules (#30911)
Summary:
Updated some warning messages that shows up when importing deprecated modules to have the updated name space.

## Changelog

<!-- Help reviewers and the release process by writing your own changelog entry. For an example, see:
https://github.com/facebook/react-native/wiki/Changelog
-->

[General] [Changed] - Update package name warning of deprecated modules

Pull Request resolved: https://github.com/facebook/react-native/pull/30911

Test Plan: Updated link works as expected

Reviewed By: TheSavior

Differential Revision: D26318425

Pulled By: PeteTheHeat

fbshipit-source-id: 74a9909698236e62af8da23644df65c75bb1df11
2021-02-08 15:59:39 -08:00
Valentin Shergin 81147b6f79 Fabric: Changes in YogaLayoutableShadowNode::applyLayoutConstraints that prevent descendant nodes overgrow to infinity
Summary:
Instead of changing Yoga styles for a root node, now we pass available height and width to YGNodeCalculateLayout directly.

Changelog: [Internal] Fabric-specific internal change.

Reviewed By: sammy-SC, mdvacca

Differential Revision: D26292378

fbshipit-source-id: f99127e1cbddc1d57e4ee116afc141cbff5054ab
2021-02-08 15:36:57 -08:00
Kacie Bawiec 1c7d9c8046 Fix disabled prop not disabling onPress for voice assistant
Summary:
It is currently possible to activate a disabled Pressable with VoiceOver/TalkBack. This fixes this.

Changelog:
[General][Fixed] Fix disabled prop not disabling onPress for voice assistant

Reviewed By: blavalla

Differential Revision: D26225448

fbshipit-source-id: 67fa10f9e5c50143d986dc709a2fb639fdc3e718
2021-02-08 15:18:50 -08:00
maltoze 35b6d2e52b Add FileReader to eslint globals (#30766)
Summary:
Fix eslint complaining about FileReader not being defined.

## Changelog

<!-- Help reviewers and the release process by writing your own changelog entry. For an example, see:
https://github.com/facebook/react-native/wiki/Changelog
-->
[Internal] [Fixed] - Fix eslint complaining about FileReader not being defined.

Pull Request resolved: https://github.com/facebook/react-native/pull/30766

Reviewed By: TheSavior

Differential Revision: D26318564

Pulled By: PeteTheHeat

fbshipit-source-id: d08c040f872cca3cbb26e8bf753a1acb3931d294
2021-02-08 12:23:08 -08:00
David Vacca 41f93679d0 Update C++ flags in Fabric Android
Summary:
Update C++ flags in Fabric Android

changelog: [internal] internal

Reviewed By: JoshuaGross

Differential Revision: D26297398

fbshipit-source-id: d4603ee848abee98977ac9e21505547d9a867e21
2021-02-08 11:37:35 -08:00
David Vacca d79212120b Clean listeners during destroy of ReactContext
Summary:
This diff cleans listeners on the destruction of the ReactContext.

changelog: [inernal] internal

Reviewed By: JoshuaGross

Differential Revision: D26259929

fbshipit-source-id: 1843cabdac2fa3e67dcc890afd923b82472d8f66
2021-02-06 23:05:28 -08:00
David Vacca 98165a23f6 Clear internal maps of NativeModuleRegistry during turn down of the bridge
Summary:
This diff clears the internal maps of NativeModuleRegistry during turn down of the bridge.

This is necessary for a proper cleanup of these modules.

changelog: [internal] internal

Reviewed By: ShikaSD

Differential Revision: D26239303

fbshipit-source-id: 6e98e5db60a4f54d02e99b03339b03c17ecc183d
2021-02-06 23:05:28 -08:00
David Vacca 1e8c3e4ad8 Unregister UIManagerModule from LifecycleEventListener
Summary:
This diff unregisters the UIManagerModule from LifecycleEventListener during turn down of the bridge.

changelog: [internal] internal

Reviewed By: JoshuaGross

Differential Revision: D26239156

fbshipit-source-id: b230949228c6e580cca088c395b970a3cff94839
2021-02-06 23:05:28 -08:00
David Vacca d7191f80e8 Configure MC before the JS Bundle is loaded
Summary:
This diff setup a global variable to control the staticViewConfig experiment before the bundle is loaded.

This global variable only has a meaning when RN uses a Bridge

changelog: [internal]

Reviewed By: JoshuaGross

Differential Revision: D26237670

fbshipit-source-id: 25ae63f36fba9c1e640ab2e70de88b71452ad8e6
2021-02-06 23:05:27 -08:00
David Vacca 33c390a7da Deallocate EventDispatcher in FabricUIManager when StaticViewConfigs are enabled
Summary:
This diff refactor the initialization and deallocation of EventDispatcher in FabricUIManager when StaticViewConfigs are enabled.

The goal of this diff is to make sure that the EventDispatcher is deallocated correctly when using StaticViewConfigs

changelog: [internal]

Reviewed By: JoshuaGross

Differential Revision: D26166413

fbshipit-source-id: e5bdad7ba923edc677c6b73f3a4d1271941f41cc
2021-02-06 23:05:27 -08:00
Shaozhen Zhang b28fa2dae0 Update AppState Jest Mock
Summary:
Updates the AppState Jest mock to correspond to recent API changes.

Changelog:
[General][Fixed] - Updated AppState Jest mock to match new public API

Reviewed By: yungsters

Differential Revision: D26295371

fbshipit-source-id: e6e39f23d9100f0eacf257f45d509c5364dcb28d
2021-02-05 23:21:43 -08:00
Marshall Roch e2263b343e Deploy Flow v0.144.0
Summary: Changelog: [Internal]

Reviewed By: Hans-Halverson

Differential Revision: D26292193

fbshipit-source-id: 6732dbd1bd435d6f0d77dae7f621972623d9d320
2021-02-05 22:27:02 -08:00
Ramanpreet Nara d02211cbce Filter out TurboModules from extraModulesForBridge
Summary:
When the TurboModule system is enabled, all TM-compatible NativeModules should not go through the legacy system. We have this filtering elsewhere in the bridge, but not for eagerly initialized NativeModules with custom initializers (i.e: modules returned from extraModulesForBridge). This diff adds that filtering for modules returned from extraModulesForBridge.

NOTE: NativeModule initializers can still perform side-effects. So, it's still best to not create the TM-compatible NativeModule inside extraModulesForBridge. This diff just adds an additional layer of defense within the bridge.

Changelog: [Internal]

Differential Revision: D26264531

fbshipit-source-id: 26179d9094f67d6d6315a65cdb2dc614e5397bf3
2021-02-05 16:17:28 -08:00
Jesse Katsumata cd6c9f3273 Update react-native-codegen for template project (#30896)
Summary:
Updated react-native-codegen to 0.0.7 for template project

## Changelog

<!-- Help reviewers and the release process by writing your own changelog entry. For an example, see:
https://github.com/facebook/react-native/wiki/Changelog
-->

[General] [Changed] - update react-native-codegen to 0.0.7

Pull Request resolved: https://github.com/facebook/react-native/pull/30896

Test Plan: Template project builds correctly with codegen 0.0.7

Reviewed By: fkgozali

Differential Revision: D26286917

Pulled By: TheSavior

fbshipit-source-id: 6ea07a527b05c4c92e76e9ce53ef1288be4b098a
2021-02-05 14:53:27 -08:00
Ramanpreet Nara cba6aba2e6 Add @DoNotStrip annotation to getConstants()
Summary:
NativeModule getConstants() methods on Java might not be used within Java. So, they can be stripped by proguard. This diff adds the DoNotStrip annotation to the getConstants() method.

Changelog: [Internal]

Reviewed By: keoskate

Differential Revision: D26265874

fbshipit-source-id: b405ee32406e829212e5c9641750a6b5795899c3
2021-02-05 11:48:30 -08:00
Albert Sun b474be6cc8 Back out "Make NativeModules immediately initializable"
Summary:
This caused a few apps to crash on launch.

Changelog: [Android][Fixed] - Crashes due to "Make NativeModules immediately initializable"

Reviewed By: olegbl

Differential Revision: D26278594

fbshipit-source-id: 969a3dc49a843366c4ae6ed19a9233d1e6f39b13
2021-02-05 10:16:25 -08:00
Andrei Shikov a70dc4bcad Renew yarn keys before apt-get update to avoid errors
Summary:
Yarn key had expired on 2nd of February. The owner has renewed it, but seems like Circle CI still has the old one cached. (see https://github.com/yarnpkg/yarn/issues/6865#issuecomment-772047314)

Changelog: [Internal]

Reviewed By: fkgozali

Differential Revision: D26276386

fbshipit-source-id: 093c7de94445b6ff9beb5792b16564e5c3bd1234
2021-02-05 09:32:03 -08:00
Andrei Shikov 6061b79283 Clear enable_android_surface_clear_after_crash_report and disable_view_operations_after_catalyst_destroy
Summary: Changelog: [Internal]

Reviewed By: mdvacca

Differential Revision: D26238985

fbshipit-source-id: 5aa1172e73dd6623e2af1acd909e1548e37e8f30
2021-02-05 07:01:10 -08:00
Andrei Shikov 704dd2812f Replace jcenter with mavenCentral when possible
Summary:
Changelog:
[Android][Changed] - Initial replacement of jcenter with mavenCentral.

Replaces jcenter with Maven Central in the build files of the repository.

Some dependencies are not resolvable from maven central yet, so for now they are included from jcenter, but limited to specific modules only.

I didn't touch the template for now.

Reviewed By: mdvacca

Differential Revision: D26260977

fbshipit-source-id: 2a65e1195b6367c026089184ad6471bf3573dc37
2021-02-05 05:17:32 -08:00
Sidharth Guglani 96bc33a1d7 instance of checks for YogaNodeJniBase
Summary:
Changelog:
[Internal][Yoga] - Added instance of checks in `YogaNodeJNIBase` class to prevent `ClassCastException`s. This was happening for some NT android tests - Mocked Yoga Node object was being passed in the `addChildAt` api

Stack Trace of exception
    java.lang.ClassCastException: com.facebook.yoga.YogaNode$MockitoMock$1408896622 cannot be cast to com.facebook.yoga.YogaNodeJNIBase
	at com.facebook.yoga.YogaNodeJNIBase.addChildAt(YogaNodeJNIBase.java:86)
	at com.facebook.litho.DefaultInternalNode.addChildAt(DefaultInternalNode.java:220)
	at com.facebook.litho.DefaultInternalNode.child(DefaultInternalNode.java:377)
	at com.facebook.litho.DefaultInternalNode.child(DefaultInternalNode.java:360)
	at com.facebook.litho.Column.resolve(Column.java:118)
	at com.facebook.litho.Layout.create(Layout.java:172)

Reviewed By: Andrey-Mishanin

Differential Revision: D26114992

fbshipit-source-id: 774a689609e67f9244b81c6788b62cd61cd96d14
2021-02-05 03:42:50 -08:00
Joshua Gross 95cab24a6e LayoutAnimations: assert that tag >0 instead of != 0
Summary:
LayoutAnimations: assert that tag >0 instead of != 0. It's possible that a corrupt tag value would be below zero which is not valid.

Changelog: [Internal]

Reviewed By: mdvacca

Differential Revision: D26271515

fbshipit-source-id: a62445ad29d60e5180e62ec4c6d5b08784655808
2021-02-05 00:57:42 -08:00
Joshua Gross 1c2a95d6c6 LayoutAnimations: when setting up animation start/final ShadowViews, ensure props are not null
Summary:
LayoutAnimations: when setting up animation start/final ShadowViews, ensure props are not null

Changelog: [Internal]

Reviewed By: mdvacca

Differential Revision: D26271510

fbshipit-source-id: 8d99ba8272fb63103a8d85bb0e14d02256a6d74d
2021-02-05 00:57:41 -08:00
Joshua Gross cc9a3e27c2 LayoutAnimations: ensure that interpolated props are never null
Summary:
ensure that interpolated props are never null

Changelog: [Internal]

Reviewed By: mdvacca

Differential Revision: D26271516

fbshipit-source-id: d012e530e92dabce1e0a7df8edf670e90367a892
2021-02-05 00:57:41 -08:00
Joshua Gross f0a599a112 LayoutAnimations: in createInterpolatedShadowView, ensure that props are never null
Summary:
props should never be null

Changelog: [Internal]

Reviewed By: mdvacca

Differential Revision: D26271513

fbshipit-source-id: 126f4e11f0f0f4e4c911e445fa8f6632a1c77cf2
2021-02-05 00:57:41 -08:00
Joshua Gross 87fe643a2f LayoutAnimations: ensure that we always have a valid ComponentDescriptor
Summary:
We should always be able to reference a ComponentDescriptor. If there are any valid cases where the ComponentDescriptor doesn't exist (?) we need to document those and investigate more.

Changelog: [Internal]

Reviewed By: mdvacca

Differential Revision: D26271511

fbshipit-source-id: 659d160f82f1e78025d3dbe16efa0fa2d072d15f
2021-02-05 00:57:41 -08:00
Joshua Gross 512fd0e0b8 Add asserts to LayoutAnimations to check that ShadowViews are always valid
Summary:
Make sure there's no corruption happening to these ShadowViews.

Changelog: [internal]

Reviewed By: mdvacca

Differential Revision: D26271509

fbshipit-source-id: 01bfa1bfce56e72b48304fe15b6f6426d3b5247e
2021-02-05 00:57:40 -08:00
Joshua Gross 5ae8e84dc7 Fix IntBufferMountItem optimization + LayoutAnimation bug
Summary:
The new IntBufferMountItem queueing actually enforces a global ordering of mutation types: CREATEs, then INSERT, then REMOVE, then UPDATE, then DELETE.

See comments for more details. In general this ordering is fine, but if a DELETE animation is in progress and (due to view unflattening) the same view is recreated, the CREATE will be executed and then the in-process DELETE (since conflicting animations get flushed).

To mitigate this, in Binding we detect this and simply remove DELETE operations queued when we detect that we want to CREATE the node. `DELETE...CREATE` is valid but `CREATE...DELETE` in a single frame is not, so this is safe.

This does complicate and add more assumptions to Binding than I would like, but it should unblock us for now.

Changelog: [Internal]

Reviewed By: mdvacca

Differential Revision: D26271299

fbshipit-source-id: 9453fe17b8b541e484a047dc9637674dbdcc8e9a
2021-02-05 00:57:40 -08:00
Héctor Ramos edf18c74ce Bump react-native-codegen to 0.0.7
Summary:
Publish a new react-native-codegen release with latest changes in order to support the 0.64 react-native release.

Changelog:
[Internal]

Reviewed By: fkgozali

Differential Revision: D26253312

fbshipit-source-id: 766cfa3e088b3715bc9bc815523c8d04fae409bf
2021-02-04 17:35:57 -08:00
Tim Yung 6c0f5d1178 Fabric: Fix DevTools Inspector
Summary:
Fixes a bug when using Fabric with React DevTools to inspect a component.

The bug is due to the shape of instances being a bit different. These are where Paper and Fabric create instances differently:

- Paper: [ReactNativeHostConfig.js](https://github.com/facebook/react/blob/aa736a0fa6e22f902bd7a98dcb9b24d8c4310e35/packages/react-native-renderer/src/ReactNativeHostConfig.js#L138)
- Fabric: [ReactFabricHostConfig.js](https://github.com/facebook/react/blob/aa736a0fa6e22f902bd7a98dcb9b24d8c4310e35/packages/react-native-renderer/src/ReactFabricHostConfig.js#L218-L236)

Changelog:
[Internal]

Reviewed By: TheSavior

Differential Revision: D26265476

fbshipit-source-id: dfc510dc3854e1478d20a4c612237b1c2da608eb
2021-02-04 17:17:17 -08:00
David Vacca 3d0e974ed8 Add logs in the getViewManagerConfig
Summary:
This diff adds error logs when the method getViewManagerConfig() can't find a ViewConfig associated to a view manager

changelog: [inernal] internal

Reviewed By: JoshuaGross, ShikaSD

Differential Revision: D26231245

fbshipit-source-id: d9252dcdcb84464d57342058a928881ebbb1b68c
2021-02-04 15:56:15 -08:00
Sara Valderrama bb796be9e1 fix rounding for translation to android/ios colors
Summary:
Currently, there is a bug with the way that fabric translates float values for color components to hex/int value (which android uses). There are two main problems with the current setup. The first is that we are using 256 as our ratio instead of 255 which is the maximum value for any color component in hex. The second is that we cast the components to ints instead of rounding which truncates the values. We uncovered this with UIQR because our off-by-one color values were incorrectly off a little bit extra for fabric surfaces.

Changelog: [Internal] updates the float-to-int value conversion for color components to be fully accurate

Reviewed By: shergin

Differential Revision: D26161396

fbshipit-source-id: 884e27ffa01b116f9307c00298bb8d888f9f6dd7
2021-02-04 14:18:41 -08:00
Valentin Shergin 338ce93648 Fabric: setNativeProps methods was removed from FabricUIManager Flow type declaration
Summary:
FabricUIManager does not support it, the declaration is not correct.

Changelog: [Internal] Fabric-specific internal change.

Created from Diffusion's 'Open in Editor' feature.

Differential Revision: D26241483

fbshipit-source-id: 8a894dc847bce9c196d8ac2e1601853e4fe03e1d
2021-02-04 13:55:43 -08:00
Valentin Shergin fc24bb4af0 Fabric: Support for setIsJSResponder, all the native changes
Summary:
This is a Fabric-compliant implementation of `JSResponder` feature. To make it work e2e we also need to update FabricRenderer in React repository. But before we can do this, we need to ship the native changes.

Changelog: [Internal] Fabric-specific internal change.

Reviewed By: mdvacca

Differential Revision: D24630027

fbshipit-source-id: 70c30e1250b554d83862956b536714704093072f
2021-02-04 13:16:29 -08:00
Kacie Bawiec f0ed1e8201 Add to an RNTester ScrollView example a TextInput and a Button to test keyboardShouldPersistTaps
Summary:
This is an example from RNTester. I added a button in the ScrollView which can eat taps. This allows us to test the `keyboardShouldPersistTap` prop values for `ScrollView`, since there was no way to differentiate between "handled" and "always".

Expected behavior for each value of `keyboardShouldPersistTaps`:
* `"handled"` - The keyboard should dismiss if the ScrollView is tapped, but pressable components like buttons can eat taps (and not dismiss the keyboard)

* `"never"` - The keyboard should always dismiss when anything in the ScrollView is tapped. Buttons won't be pressed - the keyboard will dismiss instead.

* `"always"` - The keyboard should never dismiss. Buttons and other content in the ScrollView can be tapped.

Reviewed By: lunaleaps, nadiia

Differential Revision: D26228852

fbshipit-source-id: 1df78f0be10e2f2cc81e95548a6a6f7cab07894f
2021-02-04 12:48:13 -08:00
Tim Yung 6f22989e92 RN: Simplify AppState
Summary:
Simplifies `AppState` by removing redundant methods and changing `addEventListener` to return an `EventSubscription`.

Changelog:
[General][Changed] - `AppState.addEventListener` now returns an `EventSubscription` object.
[General][Removed] - Removed `AppState.removeEventListener`. Instead, use the `remove()` method on the object returned by `AppState.addEventListener`.
[General][Removed] - `AppState` no longer inherits from `NativeEventEmitter`, so it no longer implements `addListener`, `removeAllListeners`, and `removeSubscription`.

Reviewed By: wtfil

Differential Revision: D26161343

fbshipit-source-id: b3cff76bf0f8f7d79cd954fdef551d0654c682ca
2021-02-04 12:48:13 -08:00
Peter Argany 6774358a1a Basic bridgeless support for RCTDevMenu
Summary:
Changelog: [Internal]

This removes a couple dependencies on bridge in dev menu native module. So far reloading works, will get inspector and other options working in follow ups.

Reviewed By: sammy-SC

Differential Revision: D26240391

fbshipit-source-id: 7c9d585f4efa6cc9db995ef8a33865831bc8d526
2021-02-04 12:34:48 -08:00
Peter Argany ac63d57e5e Cleanup - remove isLiveReloadAvailable
Summary:
Live reload was removed as a user facing feature in 2019 in favour of fast refresh. The native code was left in case "automation" relied on it. I'm quite sure no automation is using this dev feature. Remember, the dev feature made it so that hitting save in a text editor auto reloaded in metro.

Cleanup the native implementation.

Changelog: [Internal]

Reviewed By: sammy-SC

Differential Revision: D26239628

fbshipit-source-id: 7f61c7204727bb2d739600a459f69c72842265c5
2021-02-04 12:34:48 -08:00
Peter Argany 5d4c3b8556 Cleanup - remove isDebuggingRemotely failsafe
Summary:
IIUC `isDebuggingRemotely` will never be set when `isDeviceDebuggingAvailable` is true. This was just a failsafe so that noone was trapped in an intermediate state.

Changelog: [Internal]

Reviewed By: sammy-SC

Differential Revision: D26239570

fbshipit-source-id: 8db6b022a0ea581216a1fa97b9d41f5ab6160562
2021-02-04 12:34:48 -08:00
Samuel Susla 33b600236a Simplify ModalHostView plugin setup
Summary:
Changelog: [internal]

Provide a default plugin function that provides core `RCTModalHostViewComponentView`. This makes for easier setup for standalone app migration.

Reviewed By: JoshuaGross, shergin

Differential Revision: D26150091

fbshipit-source-id: d39723b99c590d1a33fb7b628f809aa12b2f7589
2021-02-04 03:46:00 -08:00
Tim Yung c8c975f0d7 RN: Remove RCTDeviceEventEmitter Checks
Summary:
Removes the checks in `RCTDeviceEventEmitter` that were initially added to migrate call sites to other modules when `NativeEventEmitter` was introduced.

This set of checks is problematic for a few reasons:

1. Does not cover many other events that have since been introduced, so the small list covered is arbitrary.
2. Prevents composition of `RCTDeviceEventEmitter` in the implementation of those modules.
3. Code bloat.

Changelog:
[General][Removed] - `RCTDeviceEventEmitter` no longer throws for `SttatusBar`, `Keyboard`, and `AppState` events. However, you are still recommended to use the more appropriate modules for listening to these events.

Reviewed By: lunaleaps

Differential Revision: D26163602

fbshipit-source-id: 316287bfdf2947fe85d022a3f83a205e89c432ba
2021-02-03 22:04:40 -08:00
Ramanpreet Nara 2bf866e401 Make NativeModules immediately initializable
Summary:
## Problem:
NativeModules can only be initialized after we mark them initializable on the NativeModules thread. This work is scheduled in ReactInstanceManager.setupReactContext(), after we schedule the execution of the JS bundle on the JavaScript thread in ReactInstanceManager.createReactContext():

https://www.internalfb.com/intern/diffusion/FBS/browse/master/xplat/js/react-native-github/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java?commit=9b58f58b8eb12281567b8d24d6d000e868e61a1f&lines=1256-1257%2C1331%2C1334-1335%2C1333-1334

So, if the timings don't work out, the JavaScript thread could start executing the JS bundle before the NativeModule thread makes all NativeModules initializable. In this case, those NativeModule will just appear to be null in C++/JavaScript.

## Fix
This diff makes all NativeModules initializable immediately after  their ModuleHolder is created. ModuleHolder.markInitializable() simply initializes initializes modules that were eagerly created.

Changelog: [Android][Fixed] - Make NativeModules immediately initializable

Reviewed By: JoshuaGross

Differential Revision: D26233372

fbshipit-source-id: a9223ff093da5b80781169be88e6ec9516c7a29b
2021-02-03 18:42:43 -08:00
Andrew Coates f66dcab89f Try to install the SDK up to 3 times (#30742)
Summary:
The windows CI tests are flaky due to network failures trying to install the android SDK.  This modifies the CI to retry a couple of times if the first install fails.

CircleCI will timeout the command if there is no output to the console for 10mins.  I've added a timeout to the choco command for 9mins, which should cause it to timeout before the circleci one (assuming that it spends a non-zero time with output before hanging on the download)  On successful downloads runs the download seems to be substantially quicker than the 10min timeout.

I added --force and --forcedependencies on the retries, otherwise if the jdk package fails, but the androidsdk package installs, the retry will still not install the jdk package.

This doesn't fully fix the issue, since the CI is still hitting the network, which could be flaky all 3 attempts.  But hopefully it'll improve the success rate somewhat.  -- Really the Windows CI job should have some kind of docker image or something that already has all the prereqs installed.

## Changelog

[Internal] [Fixed] - Windows CI Android SDK install retry

Pull Request resolved: https://github.com/facebook/react-native/pull/30742

Test Plan: We'll see if the windows CI becomes more reliable

Reviewed By: fkgozali

Differential Revision: D26231499

Pulled By: hramos

fbshipit-source-id: f4a7f2132b3317f4763ddadcd909ef1c2a43dc2f
2021-02-03 15:01:56 -08:00