Summary:
Rewrite `RNTesterApplication` to Kotlin as per [Help us Kotlin-ify React Native tests - Round 2](https://github.com/facebook/react-native/issues/38825)
## Changelog:
[ANDROID] [CHANGED] - Rewrite RNTesterApplication to Kotlin, add AnnotationTarget property.
Pull Request resolved: https://github.com/facebook/react-native/pull/39557
Test Plan:
`yarn && yarn android` ✅
The only thing I'm kinda unsure of is whether `AnnotationTarget.PROPERTY` should be added, but it didn't let me annotate `reactHostInterface` without that and didn't compile.
<img width="637" alt="image" src="https://github.com/facebook/react-native/assets/33528752/8bc84870-f3f2-4a46-b076-6ee7e38bd735">
cortinico mdvacca
Reviewed By: cortinico
Differential Revision: D49598401
Pulled By: mdvacca
fbshipit-source-id: 105ae0c13c93dae0eeb2b6fa9040f03f42d2736a
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39788
Hotfix for exiting `npx react-native start` when a session is connected. Partially reverts D49422206.
This lines back up with the original RN CLI and Expo implementations — explicitly calling `process.exit()`. We still aim to follow this up with graceful server shutdown.
Changelog: [Internal]
Reviewed By: lunaleaps
Differential Revision: D49880226
fbshipit-source-id: d2c76b2de21b9172dfd892141d1f679b808e043d
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39595
X-link: https://github.com/facebook/yoga/pull/1404
These functions all ensure their returns are defined, but return FloatOptional anyway, making their callers have to deal with that possibility. Return `float` instead of `FloatOptional`, and do some additional cleanup.
Reviewed By: rshest
Differential Revision: D49531421
fbshipit-source-id: 95b21cade74e501dd54c7b6ca667c8c3859c5dae
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39644
This makes Android Paper/Classic renderer fire `onLayout` events top down, like in Fabric/new Architecture. This gives a much more sane model for using layout events to calculate bottom/right-edge insets.
I was under the impression that Paper in general was bottom-up, but it turns out that is only true for Android and Windows (iOS seems totally deterministic).
This is a behavior change, but to my knowledge was never hit during the Fabric migration, and any JS code already written for both Android and iOS cannot make assumptions here anyways.
Changelog:
[General][Changed] - Make layout events top-down on Android classic renderer
Reviewed By: mdvacca
Differential Revision: D49627996
fbshipit-source-id: 29964b421dd420681d45348c7db16f211a6c087f
Summary:
The Loading.../Refreshing... indicator is currently broken on Android.
The reason is related to D42599220
We used to have a Toast shown to users on Android as a fallback, but as the
DevLoadingView is not always loaded as a module in the core package, this ends up in the banner never beign shown to the user (on RN Tester or template apps).
Changelog:
[Android] [Fixed] - Fix broken Loading/Refreshing indicator on Android
Reviewed By: cipolleschi
Differential Revision: D49876757
fbshipit-source-id: 400e002327ebca908e3e7a7f81c5066888ac4e9b
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39591
Changelog: [Internal]
I'm refactoring this for a couple of reasons:
1) it isolates the void execution path, which we are changing now
2) switch case is safer than if else, in the future if we introduce new return types
Reviewed By: RSNara
Differential Revision: D49521866
fbshipit-source-id: 451c846ca15cc470cfeb5b2326d6eb2ffec74b25
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39589
Changelog: [Internal]
currently, turbomodule void methods run async by default, unless the consumer returns `RCTJSThread` in the `methodQueue` API.
we're looking to update this, so i'm introducing a flag at the module level that allows us to configure this behavior.
Reviewed By: RSNara
Differential Revision: D49521864
fbshipit-source-id: a6c61eb420b72199426e3dfdaec5fd090847efa5
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39597
X-link: https://github.com/facebook/yoga/pull/1406
Similar in vain to D49362819, we want to stop exposing pre-resolved CompactValue, and allow enum class usage without becoming annoying.
This also simplifies gap resolution a bit. I moved this to Style, to make it clear we aren't relying on any node state. I plan to do some similar cleanup for other resolution later.
Reviewed By: rshest
Differential Revision: D49530923
fbshipit-source-id: 47b06a7301fb283acc493dba159f496159d59580
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39775
ChoreographerCompat existed to support JellyBean, but given we target Android SDK 23+ now, this is safe to remove.
Changelog: [Android][Removed] Deprecated ChoreographerCompat.FrameCallback, use Choreographer.FrameCallback
Reviewed By: mdvacca
Differential Revision: D49826889
fbshipit-source-id: 5158c470553327b70a199168f5b7ed7071cc8c48
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39717
AsyncCallback is a better abstraction than the current usage of WeakCallbackWrapper and RAIICallbackWrapperDestroyer, and has way fewer gotchas. Making a few changes here to make it easier to use in various scenarios and match the behaviour we're already seeing in CallbackWrapper.
1) Remove the explicit copy constructor, since this prevents an automatic move constructor from being generated
2) Add a call variant which takes a lambda, for callers which need to manually create JSI arguments
3) Ignore AsyncCallback invocations when the underlying runtime has gone away.
Changelog: [Internal]
Reviewed By: NickGerleman
Differential Revision: D49684248
fbshipit-source-id: 8b49ec22cc409572ead80a85b10a190994bf0dd5
Summary:
If the first element of a line is not contributing (e.g. position absolute), an additional gap will be added to the line, because the first gap element of the line is never identified (wrong start index).
Fix: raise the index of the first line element until we find an element that is contributing to the line.
X-link: https://github.com/facebook/yoga/pull/1408
Reviewed By: yungsters
Differential Revision: D49722065
Pulled By: NickGerleman
fbshipit-source-id: 1068cb0b11ae4b04ec8d063e70540cce06181d5a
Summary:
These tests seem to have been deprecated for years, let's just remove them.
## Changelog:
[IOS] [REMOVED] - Remove deprecated Snapshot tests
Pull Request resolved: https://github.com/facebook/react-native/pull/39720
Test Plan: CI should pass
Reviewed By: cipolleschi
Differential Revision: D49809496
Pulled By: NickGerleman
fbshipit-source-id: d79f0a0896b190d071bda1eb837b3efa10dbbf3b
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39771
We now support SDK 23 as a minimum. That means we can drop JS side checks.
Because Android has `Platform.Version` as a number, and iOS as a string, it's common to do an Android check before checking version, even if in Android only code. I tried to remove those where it was super clear the code was Android only (i.e. the file is `.android.js`), but otherwise leave the Android platform check to not give the possibility of changing behavior.
Changelog:
[Internal]
Reviewed By: luluwu2032
Differential Revision: D49814610
fbshipit-source-id: f28b09db7091598e187fee0f383561e1c1993e9a
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39755
The goal of this diff is to fix:
```
JNI DETECTED ERROR IN APPLICATION: JNI NewGlobalRef called with pending exception java.lang.NoSuchMethodError: no static or non-static method
"Lcom/facebook/react/jscexecutor/JSCExecutor;.initHybrid(Lcom/facebook/react/bridge/ReadableNativeMap;)Lcom/facebook/jni/HybridData;"
```
changelog: [internal] internal
Reviewed By: luluwu2032
Differential Revision: D49831595
fbshipit-source-id: 9ce22cdccdd02af74edb27be2df72a469d3166c9
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39704
Default to native view configs in bridged mode and to static view configs in bridgeless mode.
Remove `setRuntimeConfigProvider` calls from RNTester and from the Template.
Changelog: [Internal]
Reviewed By: RSNara
Differential Revision: D49687252
fbshipit-source-id: 140e1c510ba3fbc153978b59c8bb4b4e35bc7571
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39751
There doesn't seem to be an easy way to drop `folly::makeMoveWrapper` for the reasons explained in below in the diff.
To unblock the folly deprecation in the RN codebase, we are copying the `MoveWrapper` class within the RN codebase.
Changelog: [Internal]
Reviewed By: sammy-SC, cipolleschi
Differential Revision: D49423389
fbshipit-source-id: 8abaa95a6d675b069be8e74933aa8c63f4ea43ee
Summary:
Addresses this issue: https://github.com/facebook/react-native/issues/39708
The embedded docs for `PixelRatio.getFontScale` haven't been updated in a while and it is still claiming lack of support for iOS when this is not the reality anymore. This was confusing for me when looking for docs through my local workspace.
## Changelog:
[INTERNAL] [CHANGED] - Updated PixelRatio.getFontScale docs to match the latest website
Pull Request resolved: https://github.com/facebook/react-native/pull/39709
Test Plan: N/A
Reviewed By: rshest
Differential Revision: D49752103
Pulled By: NickGerleman
fbshipit-source-id: 1b220bc0210639d7863b6961f665aab2cba52889
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39746
In an attempt to reduce footprint of React Native Android public APIs we are reducing visibility of classes and interfaces that are not meant to be used publicly OR are public but have no usages.
As part of our analysis, which involved looking for usages inside the Meta codebase and code search in OSS, we've detected that this class/interface is public but it's not used from other packages.
If you are using this class or interface please comment in this PR and we will restate the public access.
changelog: [Android][Changed] Reducing visibility of PerformanceCounter
Reviewed By: arushikesarwani94
Differential Revision: D49803283
fbshipit-source-id: 46d041f632f06a98392f4a67c839266010a1c68d
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39744
In an attempt to reduce footprint of React Native Android public APIs we are reducing visibility of classes and interfaces that are not meant to be used publicly OR are public but have no usages.
As part of our analysis, which involved looking for usages inside the Meta codebase and code search in OSS, we've detected that this class/interface is public but it's not used from other packages.
If you are using this class or interface please comment in this PR and we will restate the public access.
changelog: [Android][Changed] Reducing visibility of NativeArrayInterface
Reviewed By: arushikesarwani94
Differential Revision: D49803296
fbshipit-source-id: b0065d3df8ef5f20b71f66caf45856440dd61d80
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39736
In an attempt to reduce footprint of React Native Android public APIs we are reducing visibility of classes and interfaces that are not meant to be used publicly OR are public but have no usages.
As part of our analysis, which involved looking for usages inside the Meta codebase and code search in OSS, we've detected that this class/interface is public but it's not used from other packages.
If you are using this class or interface please comment in this PR and we will restate the public access.
changelog: [Android][Changed] Reducing visibility of NativeArgumentsParseException
Reviewed By: RSNara
Differential Revision: D49752145
fbshipit-source-id: 0ceb560a9be7d162b6856d90f57f6bda3888c6e7
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39738
In an attempt to reduce footprint of React Native Android public APIs we are reducing visibility of classes and interfaces that are not meant to be used publicly OR are public but have no usages.
As part of our analysis, which involved looking for usages inside the Meta codebase and code search in OSS, we've detected that this class/interface is public but it's not used from other packages.
If you are using this class or interface please comment in this PR and we will restate the public access.
changelog: [Android][Changed] Reducing visibility of JSInstance
Reviewed By: RSNara
Differential Revision: D49752139
fbshipit-source-id: b56667a91abd16d15a321dfc3e83026b596eaad3
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39740
In an attempt to reduce footprint of React Native Android public APIs we are reducing visibility of classes and interfaces that are not meant to be used publicly OR are public but have no usages.
As part of our analysis, which involved looking for usages inside the Meta codebase and code search in OSS, we've detected that this class/interface is public but it's not used from other packages.
If you are using this class or interface please comment in this PR and we will restate the public access.
changelog: [Android][Changed] Reducing visibility of JSIModuleRegistry.
Reviewed By: RSNara
Differential Revision: D49752138
fbshipit-source-id: 9878a3c2c431a2a84d4985812605032ed0d2d2d8
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39741
In an attempt to reduce footprint of React Native Android public APIs we are reducing visibility of classes and interfaces that are not meant to be used publicly OR are public but have no usages.
As part of our analysis, which involved looking for usages inside the Meta codebase and code search in OSS, we've detected that this class/interface is public but it's not used from other packages.
If you are using this class or interface please comment in this PR and we will restate the public access.
changelog: [Android][Changed] Reducing visibility of JSIModuleHolder
Reviewed By: RSNara
Differential Revision: D49752136
fbshipit-source-id: a2b525e6fe18f2ceabbe8775d6841807d73cdc86
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39737
In an attempt to reduce footprint of React Native Android public APIs we are reducing visibility of classes and interfaces that are not meant to be used publicly OR are public but have no usages.
As part of our analysis, which involved looking for usages inside the Meta codebase and code search in OSS, we've detected that this class/interface is public but it's not used from other packages.
If you are using this class or interface please comment in this PR and we will restate the public access.
changelog: [Android][Changed] Reducing visibility of JSCJavaScriptExecutorFactory
Reviewed By: RSNara
Differential Revision: D49752141
fbshipit-source-id: 77039a3b4c3d12f3c98e3659518e9ef10c66a29e
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39739
In an attempt to reduce footprint of React Native Android public APIs we are reducing visibility of classes and interfaces that are not meant to be used publicly OR are public but have no usages.
As part of our analysis, which involved looking for usages inside the Meta codebase and code search in OSS, we've detected that this class/interface is public but it's not used from other packages.
If you are using this class or interface please comment in this PR and we will restate the public access.
changelog: [Android][Changed] Reducing visibility of DynamicFromMap
Reviewed By: RSNara
Differential Revision: D49752137
fbshipit-source-id: 6bc8623ca1a8479401b4d8314916f968d708f40c
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39735
In an attempt to reduce footprint of React Native Android public APIs we are reducing visibility of classes and interfaces that are not meant to be used publicly OR are public but have no usages.
As part of our analysis, which involved looking for usages inside the Meta codebase and code search in OSS, we've detected that this class/interface is public but it's not used from other packages.
If you are using this class or interface please comment in this PR and we will restate the public access.
changelog: [Android][Changed] Reducing visibility of DynamicFromArray
Reviewed By: RSNara
Differential Revision: D49752134
fbshipit-source-id: 818a2cb0f4cafaad9c13c9b623505f32fb1ebcfe
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39565
CompositeReactPackage is not used at Meta neither in github public repositories, we are deprecating it in v0.73 with the goal to remove it in v0.74
changelog: [Android][Breaking] Deprecate CompositeReactPackage from RN Android
Reviewed By: christophpurrer
Differential Revision: D49440130
fbshipit-source-id: 6a9c220f57fd29f7a530db79c4f76ef169744fba
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39726
In an attempt to reduce footprint of React Native Android public APIs we are reducing visibility of classes and interfaces that are not meant to be used publicly OR are public but have no usages.
As part of our analysis, which involved looking for usages inside the Meta codebase and code search in OSS, we've detected that this class/interface is public but it's not used from other packages.
If you are using this class or interface please comment in this PR and we will restate the public access.
changelog: [Android][Changed] Reducing visibility of DecayAnimation
Reviewed By: javache, RSNara
Differential Revision: D49752144
fbshipit-source-id: 94b69f3f2d780aff55f0dbcf030d15199b703abd
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39730
In an attempt to reduce footprint of React Native Android public APIs we are reducing visibility of classes and interfaces that are not meant to be used publicly OR are public but have no usages.
As part of our analysis, which involved looking for usages inside the Meta codebase and code search in OSS, we've detected that this class/interface is public but it's not used from other packages.
If you are using this class or interface please comment in this PR and we will restate the public access.
changelog: [Android][Changed] Reducing visibility of AnimatedNodeWithUpdateableConfig
Reviewed By: RSNara
Differential Revision: D49752143
fbshipit-source-id: 023fb7657d922b2bd7ad8e12640e67bc82c96185
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39727
In an attempt to reduce footprint of React Native Android public APIs we are reducing visibility of classes and interfaces that are not meant to be used publicly OR are public but have no usages.
As part of our analysis, which involved looking for usages inside the Meta codebase and code search in OSS, we've detected that this class/interface is public but it's not used from other packages.
If you are using this class or interface please comment in this PR and we will restate the public access.
changelog: [Android][Changed] Reducing visibility of AnimatedNodeValueListener
Reviewed By: RSNara
Differential Revision: D49752131
fbshipit-source-id: 153cf0cb97ceadfd4c6acde1e1b51d4243eb5df6
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39728
In an attempt to reduce footprint of React Native Android public APIs we are reducing visibility of classes and interfaces that are not meant to be used publicly OR are public but have no usages.
As part of our analysis, which involved looking for usages inside the Meta codebase and code search in OSS, we've detected that this class/interface is public but it's not used from other packages.
If you are using this class or interface please comment in this PR and we will restate the public access.
changelog: [Android][Changed] Reducing visibility of ReactPackageHelper
Reviewed By: RSNara
Differential Revision: D49752142
fbshipit-source-id: d21812609a946faf2f9183993f28192dda34e132
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39729
In an attempt to reduce footprint of React Native Android public APIs we are reducing visibility of classes and interfaces that are not meant to be used publicly OR are public but have no usages.
As part of our analysis, which involved looking for usages inside the Meta codebase and code search in OSS, we've detected that this class/interface is public but it's not used from other packages.
If you are using this class or interface please comment in this PR and we will restate the public access.
changelog: [Android][Changed] Reducing visibility of ReactTextInputKeyPressEvent
Reviewed By: RSNara
Differential Revision: D49752135
fbshipit-source-id: 0d00d6558c3e259977c26a53cbb8fe7c5ae6235d
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39731
In an attempt to reduce footprint of React Native Android public APIs we are reducing visibility of classes and interfaces that are not meant to be used publicly OR are public but have no usages.
As part of our analysis, which involved looking for usages inside the Meta codebase and code search in OSS, we've detected that this class/interface is public but it's not used from other packages.
If you are using this class or interface please comment in this PR and we will restate the public access.
changelog: [Android][Changed] Reducing visibility of ReactAndroidHWInputDeviceHelper
Reviewed By: RSNara
Differential Revision: D49752132
fbshipit-source-id: 3eadc01f05f5ce49b4019fa8c3dafe8d5f5fc1f3
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39732
In an attempt to reduce footprint of React Native Android public APIs we are reducing visibility of classes and interfaces that are not meant to be used publicly OR are public but have no usages.
As part of our analysis, which involved looking for usages inside the Meta codebase and code search in OSS, we've detected that this class/interface is public but it's not used from other packages.
If you are using this class or interface please comment in this PR and we will restate the public access.
changelog: [Android][Changed] Reducing visibility of EagerModuleProvider
Reviewed By: RSNara
Differential Revision: D49752133
fbshipit-source-id: 3d24d471753bbf3857ecf6105a95f90305ac492d
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39725
In an attempt to reduce footprint of React Native Android public APIs we are reducing visibility of classes and interfaces that are not meant to be used publicly OR are public but have no usages.
As part of our analysis, which involved looking for usages inside the Meta codebase and code search in OSS, we've detected that this class/interface is public but it's not used from other packages.
If you are using this class or interface please comment in this PR and we will restate the public access.
changelog: [Android][Changed] Reducing visibility of CanvasUtil
Reviewed By: RSNara
Differential Revision: D49752146
fbshipit-source-id: 26fbcd20b7a9db52043978ca86879c6f6cd7a8db
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39678
Since minsdk version was increased to 23, we are deleting code using Android APIs < 23 for class ReactViewManager
bypass-github-export-checks
changelog: [Android][Breaking] Remove support for Android API < 23 in ReactViewManager
Reviewed By: NickGerleman
Differential Revision: D48545513
fbshipit-source-id: fba0212cc832b6b309ae0bfb45c0e08bf79bd5d1
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39667
Since minsdk version was increased to 23, we are deleting code using Android APIs < 23 for class ReactDrawableHelper
bypass-github-export-checks
changelog: [Android][Breaking] Remove support for Android API < 23 in ReactDrawableHelper
Reviewed By: NickGerleman
Differential Revision: D48545508
fbshipit-source-id: df15ad8dcf0ec94abd8291b8cb180be18771809d
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39686
Since minsdk version was increased to 23, we are deleting code using Android APIs < 23 for class ReactTextInputShadowNode
changelog: [Android][Breaking] Remove support for Android API < 23 in ReactTextInputShadowNode
Reviewed By: NickGerleman
Differential Revision: D48545503
fbshipit-source-id: f3b4fb696c3abf1f20ab00a89e786b3787c1b0e9
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39670
Since minsdk version was increased to 23, we are deleting code using Android APIs < 23 for class ReactTextInputLocalData
bypass-github-export-checks
changelog: [Android][Breaking] Remove support for Android API < 23 in ReactTextInputLocalData
Reviewed By: NickGerleman
Differential Revision: D48545510
fbshipit-source-id: 8601a30a58d0e74c51b7d5dc8cec9e92e65344d8
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39671
Since minsdk version was increased to 23, we are deleting code using Android APIs < 23 for class ReactEditText
changelog: [Android][Breaking] Remove support for Android API < 23 in ReactEditText
Reviewed By: NickGerleman
Differential Revision: D48545507
fbshipit-source-id: 98be52ba36248962864e99e80ff648bbb351ff61
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39677
Since minsdk version was increased to 23, we are deleting code using Android APIs < 23 for class TextLayoutManagerMapBuffer
bypass-github-export-checks
changelog: [Android][Breaking] Remove support for Android API < 23 in TextLayoutManagerMapBuffer
Reviewed By: NickGerleman
Differential Revision: D48545518
fbshipit-source-id: fe64730c40ddf42aab0a7f5a19e51eecea4c4bcd