react-native 0.75.0-rc.4 → 0.75.0-rc.5
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/AppDelegate/React-RCTAppDelegate.podspec +1 -1
- package/Libraries/Blob/React-RCTBlob.podspec +1 -1
- package/Libraries/Core/ReactNativeVersion.js +1 -1
- package/Libraries/Image/RCTImageLoader.mm +2 -6
- package/Libraries/Image/React-RCTImage.podspec +1 -1
- package/Libraries/LinkingIOS/React-RCTLinking.podspec +1 -1
- package/Libraries/NativeAnimation/React-RCTAnimation.podspec +1 -1
- package/Libraries/Network/RCTNetworkTask.mm +4 -3
- package/Libraries/Network/React-RCTNetwork.podspec +1 -1
- package/Libraries/PushNotificationIOS/React-RCTPushNotification.podspec +1 -1
- package/Libraries/Settings/React-RCTSettings.podspec +1 -1
- package/Libraries/Text/React-RCTText.podspec +1 -1
- package/Libraries/TypeSafety/RCTTypeSafety.podspec +1 -1
- package/Libraries/Utilities/Platform.android.js +1 -1
- package/Libraries/Utilities/Platform.d.ts +1 -1
- package/Libraries/Utilities/Platform.flow.js +2 -2
- package/Libraries/Utilities/Platform.ios.js +1 -1
- package/Libraries/Vibration/React-RCTVibration.podspec +1 -1
- package/React/Base/RCTVersion.m +1 -1
- package/React/CoreModules/RCTPlatform.mm +1 -3
- package/React/CoreModules/React-CoreModules.podspec +1 -1
- package/React/React-RCTFabric.podspec +1 -1
- package/React/Views/RCTComponentData.m +11 -3
- package/React-Core.podspec +1 -1
- package/ReactAndroid/api/ReactAndroid.api +2 -0
- package/ReactAndroid/build.gradle.kts +28 -0
- package/ReactAndroid/cmake-utils/ReactNative-application.cmake +5 -0
- package/ReactAndroid/gradle.properties +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstance.kt +4 -1
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/Dynamic.kt +4 -4
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeModule.java +64 -0
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReadableMap.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReadableNativeMap.kt +24 -24
- package/ReactAndroid/src/main/java/com/facebook/react/modules/i18nmanager/I18nUtil.kt +11 -0
- package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessCatalystInstance.kt +3 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/FilterHelper.kt +3 -3
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/LengthPercentage.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/views/imagehelper/ResourceDrawableIdHelper.kt +10 -0
- package/ReactAndroid/src/main/jni/react/runtime/jni/CMakeLists.txt +1 -0
- package/ReactAndroid/src/main/jni/react/runtime/jni/JReactInstance.cpp +3 -3
- package/ReactApple/Libraries/RCTFoundation/RCTDeprecation/RCTDeprecation.podspec +1 -1
- package/ReactCommon/React-Fabric.podspec +1 -1
- package/ReactCommon/React-FabricComponents.podspec +1 -1
- package/ReactCommon/React-FabricImage.podspec +1 -1
- package/ReactCommon/React-Mapbuffer.podspec +1 -1
- package/ReactCommon/React-nativeconfig.podspec +1 -1
- package/ReactCommon/React-rncore.podspec +1 -1
- package/ReactCommon/ReactCommon.podspec +1 -1
- package/ReactCommon/cxxreact/React-cxxreact.podspec +1 -1
- package/ReactCommon/cxxreact/ReactNativeVersion.h +1 -1
- package/ReactCommon/hermes/React-hermes.podspec +1 -1
- package/ReactCommon/hermes/executor/React-jsitracing.podspec +1 -1
- package/ReactCommon/jserrorhandler/React-jserrorhandler.podspec +1 -1
- package/ReactCommon/jsiexecutor/React-jsiexecutor.podspec +1 -1
- package/ReactCommon/jsinspector-modern/React-jsinspector.podspec +1 -1
- package/ReactCommon/react/debug/React-debug.podspec +1 -1
- package/ReactCommon/react/featureflags/React-featureflags.podspec +1 -1
- package/ReactCommon/react/nativemodule/core/platform/ios/React-NativeModulesApple.podspec +1 -1
- package/ReactCommon/react/nativemodule/defaults/React-defaultsnativemodule.podspec +1 -1
- package/ReactCommon/react/nativemodule/dom/React-domnativemodule.podspec +1 -1
- package/ReactCommon/react/nativemodule/featureflags/React-featureflagsnativemodule.podspec +1 -1
- package/ReactCommon/react/nativemodule/idlecallbacks/React-idlecallbacksnativemodule.podspec +1 -1
- package/ReactCommon/react/nativemodule/microtasks/React-microtasksnativemodule.podspec +1 -1
- package/ReactCommon/react/nativemodule/samples/ReactCommon-Samples.podspec +1 -1
- package/ReactCommon/react/performance/timeline/React-performancetimeline.podspec +1 -1
- package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropComponentDescriptor.mm +4 -3
- package/ReactCommon/react/renderer/consistency/React-rendererconsistency.podspec +1 -1
- package/ReactCommon/react/renderer/debug/React-rendererdebug.podspec +1 -1
- package/ReactCommon/react/renderer/graphics/React-graphics.podspec +1 -1
- package/ReactCommon/react/renderer/imagemanager/platform/ios/React-ImageManager.podspec +1 -1
- package/ReactCommon/react/renderer/runtimescheduler/React-runtimescheduler.podspec +1 -1
- package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Modern.cpp +1 -1
- package/ReactCommon/react/renderer/runtimescheduler/SchedulerPriorityUtils.h +4 -4
- package/ReactCommon/react/renderer/runtimescheduler/tests/RuntimeSchedulerTest.cpp +65 -0
- package/ReactCommon/react/renderer/runtimescheduler/tests/SchedulerPriorityTest.cpp +2 -2
- package/ReactCommon/react/runtime/React-RuntimeCore.podspec +1 -1
- package/ReactCommon/react/runtime/React-RuntimeHermes.podspec +1 -1
- package/ReactCommon/react/runtime/platform/ios/React-RuntimeApple.podspec +2 -1
- package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.mm +2 -2
- package/ReactCommon/react/utils/React-utils.podspec +1 -1
- package/ReactCommon/reactperflogger/React-perflogger.podspec +2 -1
- package/package.json +8 -8
- package/scripts/cocoapods/helpers.rb +4 -0
- package/scripts/cocoapods/new_architecture.rb +10 -23
- package/scripts/cocoapods/privacy_manifest_utils.rb +14 -5
- package/scripts/cocoapods/spm.rb +94 -0
- package/scripts/react_native_pods.rb +18 -0
- package/sdks/hermesc/osx-bin/hermes +0 -0
- package/sdks/hermesc/osx-bin/hermesc +0 -0
- package/sdks/hermesc/win64-bin/hermesc.exe +0 -0
- package/src/private/specs/modules/NativePlatformConstantsAndroid.js +1 -1
- package/src/private/specs/modules/NativePlatformConstantsIOS.js +1 -1
- package/third-party-podspecs/RCT-Folly.podspec +1 -1
- package/third-party-podspecs/fmt.podspec +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeModule.kt +0 -55
- package/ReactCommon/react/runtime/BridgelessJSCallInvoker.cpp +0 -29
- package/ReactCommon/react/runtime/BridgelessJSCallInvoker.h +0 -30
|
@@ -61,7 +61,7 @@ Pod::Spec.new do |s|
|
|
|
61
61
|
s.pod_target_xcconfig = {
|
|
62
62
|
"HEADER_SEARCH_PATHS" => header_search_paths,
|
|
63
63
|
"OTHER_CPLUSPLUSFLAGS" => other_cflags,
|
|
64
|
-
"CLANG_CXX_LANGUAGE_STANDARD" =>
|
|
64
|
+
"CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
|
|
65
65
|
"DEFINES_MODULE" => "YES"
|
|
66
66
|
}
|
|
67
67
|
s.user_target_xcconfig = { "HEADER_SEARCH_PATHS" => "\"$(PODS_ROOT)/Headers/Private/React-Core\""}
|
|
@@ -43,7 +43,7 @@ Pod::Spec.new do |s|
|
|
|
43
43
|
s.header_dir = "RCTBlob"
|
|
44
44
|
s.pod_target_xcconfig = {
|
|
45
45
|
"USE_HEADERMAP" => "YES",
|
|
46
|
-
"CLANG_CXX_LANGUAGE_STANDARD" =>
|
|
46
|
+
"CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
|
|
47
47
|
"HEADER_SEARCH_PATHS" => header_search_paths.join(' ')
|
|
48
48
|
}
|
|
49
49
|
|
|
@@ -32,11 +32,7 @@ static NSInteger RCTImageBytesForImage(UIImage *image)
|
|
|
32
32
|
return image.images ? image.images.count * singleImageBytes : singleImageBytes;
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
static uint64_t
|
|
36
|
-
{
|
|
37
|
-
static uint64_t requestCounter = 0;
|
|
38
|
-
return requestCounter++;
|
|
39
|
-
}
|
|
35
|
+
static auto currentRequestCount = std::atomic<uint64_t>(0);
|
|
40
36
|
|
|
41
37
|
static NSError *addResponseHeadersToError(NSError *originalError, NSHTTPURLResponse *response)
|
|
42
38
|
{
|
|
@@ -510,7 +506,7 @@ static UIImage *RCTResizeImageIfNeeded(UIImage *image, CGSize size, CGFloat scal
|
|
|
510
506
|
auto cancelled = std::make_shared<std::atomic<int>>(0);
|
|
511
507
|
__block dispatch_block_t cancelLoad = nil;
|
|
512
508
|
__block NSLock *cancelLoadLock = [NSLock new];
|
|
513
|
-
NSString *requestId = [NSString stringWithFormat:@"%@-%llu", [[NSUUID UUID] UUIDString],
|
|
509
|
+
NSString *requestId = [NSString stringWithFormat:@"%@-%llu", [[NSUUID UUID] UUIDString], currentRequestCount++];
|
|
514
510
|
|
|
515
511
|
void (^completionHandler)(NSError *, id, id, NSURLResponse *) =
|
|
516
512
|
^(NSError *error, id imageOrData, id imageMetadata, NSURLResponse *response) {
|
|
@@ -42,7 +42,7 @@ Pod::Spec.new do |s|
|
|
|
42
42
|
s.header_dir = "RCTImage"
|
|
43
43
|
s.pod_target_xcconfig = {
|
|
44
44
|
"USE_HEADERMAP" => "YES",
|
|
45
|
-
"CLANG_CXX_LANGUAGE_STANDARD" =>
|
|
45
|
+
"CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
|
|
46
46
|
"HEADER_SEARCH_PATHS" => header_search_paths.join(' ')
|
|
47
47
|
}
|
|
48
48
|
s.framework = ["Accelerate", "UIKit"]
|
|
@@ -41,7 +41,7 @@ Pod::Spec.new do |s|
|
|
|
41
41
|
s.header_dir = "RCTLinking"
|
|
42
42
|
s.pod_target_xcconfig = {
|
|
43
43
|
"USE_HEADERMAP" => "YES",
|
|
44
|
-
"CLANG_CXX_LANGUAGE_STANDARD" =>
|
|
44
|
+
"CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
|
|
45
45
|
"HEADER_SEARCH_PATHS" => header_search_paths.join(' ')
|
|
46
46
|
}
|
|
47
47
|
|
|
@@ -40,7 +40,7 @@ Pod::Spec.new do |s|
|
|
|
40
40
|
s.header_dir = "RCTAnimation"
|
|
41
41
|
s.pod_target_xcconfig = {
|
|
42
42
|
"USE_HEADERMAP" => "YES",
|
|
43
|
-
"CLANG_CXX_LANGUAGE_STANDARD" =>
|
|
43
|
+
"CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
|
|
44
44
|
"HEADER_SEARCH_PATHS" => header_search_paths.join(" ")
|
|
45
45
|
}
|
|
46
46
|
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
+
#import <atomic>
|
|
8
9
|
#import <mutex>
|
|
9
10
|
|
|
10
11
|
#import <React/RCTLog.h>
|
|
@@ -20,6 +21,8 @@
|
|
|
20
21
|
RCTNetworkTask *_selfReference;
|
|
21
22
|
}
|
|
22
23
|
|
|
24
|
+
static auto currentRequestId = std::atomic<NSUInteger>(0);
|
|
25
|
+
|
|
23
26
|
- (instancetype)initWithRequest:(NSURLRequest *)request
|
|
24
27
|
handler:(id<RCTURLRequestHandler>)handler
|
|
25
28
|
callbackQueue:(dispatch_queue_t)callbackQueue
|
|
@@ -28,10 +31,8 @@
|
|
|
28
31
|
RCTAssertParam(handler);
|
|
29
32
|
RCTAssertParam(callbackQueue);
|
|
30
33
|
|
|
31
|
-
static NSUInteger requestID = 0;
|
|
32
|
-
|
|
33
34
|
if ((self = [super init])) {
|
|
34
|
-
_requestID = @(
|
|
35
|
+
_requestID = @(currentRequestId++);
|
|
35
36
|
_request = request;
|
|
36
37
|
_handler = handler;
|
|
37
38
|
_callbackQueue = callbackQueue;
|
|
@@ -40,7 +40,7 @@ Pod::Spec.new do |s|
|
|
|
40
40
|
s.header_dir = "RCTNetwork"
|
|
41
41
|
s.pod_target_xcconfig = {
|
|
42
42
|
"USE_HEADERMAP" => "YES",
|
|
43
|
-
"CLANG_CXX_LANGUAGE_STANDARD" =>
|
|
43
|
+
"CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
|
|
44
44
|
"HEADER_SEARCH_PATHS" => header_search_paths.join(' ')
|
|
45
45
|
}
|
|
46
46
|
s.frameworks = "MobileCoreServices"
|
|
@@ -41,7 +41,7 @@ Pod::Spec.new do |s|
|
|
|
41
41
|
s.header_dir = "RCTPushNotification"
|
|
42
42
|
s.pod_target_xcconfig = {
|
|
43
43
|
"USE_HEADERMAP" => "YES",
|
|
44
|
-
"CLANG_CXX_LANGUAGE_STANDARD" =>
|
|
44
|
+
"CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
|
|
45
45
|
"HEADER_SEARCH_PATHS" => header_search_paths.join(' ')
|
|
46
46
|
}
|
|
47
47
|
s.framework = "UserNotifications"
|
|
@@ -41,7 +41,7 @@ Pod::Spec.new do |s|
|
|
|
41
41
|
s.header_dir = "RCTSettings"
|
|
42
42
|
s.pod_target_xcconfig = {
|
|
43
43
|
"USE_HEADERMAP" => "YES",
|
|
44
|
-
"CLANG_CXX_LANGUAGE_STANDARD" =>
|
|
44
|
+
"CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
|
|
45
45
|
"HEADER_SEARCH_PATHS" => header_search_paths.join(' ')
|
|
46
46
|
}
|
|
47
47
|
|
|
@@ -30,7 +30,7 @@ Pod::Spec.new do |s|
|
|
|
30
30
|
s.preserve_paths = "package.json", "LICENSE", "LICENSE-docs"
|
|
31
31
|
s.header_dir = "RCTText"
|
|
32
32
|
s.framework = ["MobileCoreServices"]
|
|
33
|
-
s.pod_target_xcconfig = { "CLANG_CXX_LANGUAGE_STANDARD" =>
|
|
33
|
+
s.pod_target_xcconfig = { "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard() }
|
|
34
34
|
|
|
35
35
|
s.dependency "Yoga"
|
|
36
36
|
s.dependency "React-Core/RCTTextHeaders", version
|
|
@@ -29,7 +29,7 @@ Pod::Spec.new do |s|
|
|
|
29
29
|
s.header_dir = "RCTTypeSafety"
|
|
30
30
|
s.pod_target_xcconfig = {
|
|
31
31
|
"USE_HEADERMAP" => "YES",
|
|
32
|
-
"CLANG_CXX_LANGUAGE_STANDARD" =>
|
|
32
|
+
"CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
|
|
33
33
|
"HEADER_SEARCH_PATHS" => "\"$(PODS_TARGET_SRCROOT)/Libraries/TypeSafety\""
|
|
34
34
|
}
|
|
35
35
|
|
|
@@ -32,7 +32,7 @@ type IOSPlatform = {
|
|
|
32
32
|
major: number,
|
|
33
33
|
minor: number,
|
|
34
34
|
patch: number,
|
|
35
|
-
prerelease: ?
|
|
35
|
+
prerelease: ?string,
|
|
36
36
|
|},
|
|
37
37
|
systemName: string,
|
|
38
38
|
isMacCatalyst?: boolean,
|
|
@@ -65,7 +65,7 @@ type AndroidPlatform = {
|
|
|
65
65
|
major: number,
|
|
66
66
|
minor: number,
|
|
67
67
|
patch: number,
|
|
68
|
-
prerelease: ?
|
|
68
|
+
prerelease: ?string,
|
|
69
69
|
|},
|
|
70
70
|
Version: number,
|
|
71
71
|
Release: string,
|
|
@@ -41,7 +41,7 @@ Pod::Spec.new do |s|
|
|
|
41
41
|
s.header_dir = "RCTVibration"
|
|
42
42
|
s.pod_target_xcconfig = {
|
|
43
43
|
"USE_HEADERMAP" => "YES",
|
|
44
|
-
"CLANG_CXX_LANGUAGE_STANDARD" =>
|
|
44
|
+
"CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
|
|
45
45
|
"HEADER_SEARCH_PATHS" => header_search_paths.join(' ')
|
|
46
46
|
}
|
|
47
47
|
s.frameworks = "AudioToolbox"
|
package/React/Base/RCTVersion.m
CHANGED
|
@@ -78,9 +78,7 @@ RCT_EXPORT_MODULE(PlatformConstants)
|
|
|
78
78
|
{.minor = [versions[@"minor"] doubleValue],
|
|
79
79
|
.major = [versions[@"major"] doubleValue],
|
|
80
80
|
.patch = [versions[@"patch"] doubleValue],
|
|
81
|
-
.prerelease = [versions[@"prerelease"] isKindOfClass:[NSNull class]]
|
|
82
|
-
? std::optional<double>{}
|
|
83
|
-
: [versions[@"prerelease"] doubleValue]}),
|
|
81
|
+
.prerelease = [versions[@"prerelease"] isKindOfClass:[NSNull class]] ? nullptr : versions[@"prerelease"]}),
|
|
84
82
|
#if TARGET_OS_MACCATALYST
|
|
85
83
|
.isMacCatalyst = true,
|
|
86
84
|
#else
|
|
@@ -44,7 +44,7 @@ Pod::Spec.new do |s|
|
|
|
44
44
|
s.header_dir = "CoreModules"
|
|
45
45
|
s.pod_target_xcconfig = {
|
|
46
46
|
"USE_HEADERMAP" => "YES",
|
|
47
|
-
"CLANG_CXX_LANGUAGE_STANDARD" =>
|
|
47
|
+
"CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
|
|
48
48
|
"HEADER_SEARCH_PATHS" => header_search_paths.join(" ")
|
|
49
49
|
}
|
|
50
50
|
s.framework = "UIKit"
|
|
@@ -60,7 +60,7 @@ Pod::Spec.new do |s|
|
|
|
60
60
|
s.pod_target_xcconfig = {
|
|
61
61
|
"HEADER_SEARCH_PATHS" => header_search_paths,
|
|
62
62
|
"OTHER_CFLAGS" => "$(inherited) " + folly_compiler_flags + new_arch_flags,
|
|
63
|
-
"CLANG_CXX_LANGUAGE_STANDARD" =>
|
|
63
|
+
"CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard()
|
|
64
64
|
}.merge!(ENV['USE_FRAMEWORKS'] != nil ? {
|
|
65
65
|
"PUBLIC_HEADERS_FOLDER_PATH" => "#{module_name}.framework/Headers/#{header_dir}"
|
|
66
66
|
}: {})
|
|
@@ -61,12 +61,20 @@ static SEL selectorForType(NSString *type)
|
|
|
61
61
|
return self;
|
|
62
62
|
}
|
|
63
63
|
|
|
64
|
+
- (BOOL)isBridgeMode
|
|
65
|
+
{
|
|
66
|
+
// If we are in bridge mode, the bridge is RCTBridge
|
|
67
|
+
// If we are bridgeless, the bridge is RCTBridgeProxy
|
|
68
|
+
return [_bridge isKindOfClass:[RCTBridge class]];
|
|
69
|
+
}
|
|
70
|
+
|
|
64
71
|
- (RCTViewManager *)manager
|
|
65
72
|
{
|
|
66
|
-
if (!_manager &&
|
|
73
|
+
if (!_manager && [self isBridgeMode]) {
|
|
67
74
|
_manager = [_bridge moduleForClass:_managerClass];
|
|
68
75
|
} else if (!_manager && !_bridgelessViewManager) {
|
|
69
76
|
_bridgelessViewManager = [_managerClass new];
|
|
77
|
+
_bridgelessViewManager.bridge = _bridge;
|
|
70
78
|
[[NSNotificationCenter defaultCenter] postNotificationName:RCTDidInitializeModuleNotification
|
|
71
79
|
object:nil
|
|
72
80
|
userInfo:@{@"module" : _bridgelessViewManager}];
|
|
@@ -265,8 +273,8 @@ static RCTPropBlock createNSInvocationSetter(NSMethodSignature *typeSignature, S
|
|
|
265
273
|
type == NSSelectorFromString(@"RCTDirectEventBlock:") ||
|
|
266
274
|
type == NSSelectorFromString(@"RCTCapturingEventBlock:")) {
|
|
267
275
|
// Special case for event handlers
|
|
268
|
-
setterBlock =
|
|
269
|
-
|
|
276
|
+
setterBlock = createEventSetter(
|
|
277
|
+
name, setter, self.eventInterceptor, [self isBridgeMode] ? _bridge.eventDispatcher : _eventDispatcher);
|
|
270
278
|
} else {
|
|
271
279
|
// Ordinary property handlers
|
|
272
280
|
NSMethodSignature *typeSignature = [[RCTConvert class] methodSignatureForSelector:type];
|
package/React-Core.podspec
CHANGED
|
@@ -72,7 +72,7 @@ Pod::Spec.new do |s|
|
|
|
72
72
|
"HEADER_SEARCH_PATHS" => header_search_paths,
|
|
73
73
|
"DEFINES_MODULE" => "YES",
|
|
74
74
|
"GCC_PREPROCESSOR_DEFINITIONS" => "RCT_METRO_PORT=${RCT_METRO_PORT}",
|
|
75
|
-
"CLANG_CXX_LANGUAGE_STANDARD" =>
|
|
75
|
+
"CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
|
|
76
76
|
"FRAMEWORK_SEARCH_PATHS" => frameworks_search_paths.join(" ")
|
|
77
77
|
}
|
|
78
78
|
s.user_target_xcconfig = { "HEADER_SEARCH_PATHS" => "\"$(PODS_ROOT)/Headers/Private/React-Core\""}
|
|
@@ -3397,6 +3397,7 @@ public final class com/facebook/react/modules/i18nmanager/I18nUtil {
|
|
|
3397
3397
|
}
|
|
3398
3398
|
|
|
3399
3399
|
public final class com/facebook/react/modules/i18nmanager/I18nUtil$Companion {
|
|
3400
|
+
public final fun DEPRECATED$getInstance ()Lcom/facebook/react/modules/i18nmanager/I18nUtil;
|
|
3400
3401
|
public final fun getInstance ()Lcom/facebook/react/modules/i18nmanager/I18nUtil;
|
|
3401
3402
|
}
|
|
3402
3403
|
|
|
@@ -6487,6 +6488,7 @@ public final class com/facebook/react/views/imagehelper/ResourceDrawableIdHelper
|
|
|
6487
6488
|
}
|
|
6488
6489
|
|
|
6489
6490
|
public final class com/facebook/react/views/imagehelper/ResourceDrawableIdHelper$Companion {
|
|
6491
|
+
public final fun DEPRECATED$getInstance ()Lcom/facebook/react/views/imagehelper/ResourceDrawableIdHelper;
|
|
6490
6492
|
public final fun getInstance ()Lcom/facebook/react/views/imagehelper/ResourceDrawableIdHelper;
|
|
6491
6493
|
}
|
|
6492
6494
|
|
|
@@ -110,6 +110,22 @@ val preparePrefab by
|
|
|
110
110
|
Pair("../ReactCommon/react/renderer/graphics/", "react/renderer/graphics/"),
|
|
111
111
|
Pair("../ReactCommon/react/renderer/graphics/platform/android/", ""),
|
|
112
112
|
)),
|
|
113
|
+
PrefabPreprocessingEntry(
|
|
114
|
+
"react_render_consistency",
|
|
115
|
+
Pair(
|
|
116
|
+
"../ReactCommon/react/renderer/consistency/", "react/renderer/consistency/")),
|
|
117
|
+
PrefabPreprocessingEntry(
|
|
118
|
+
"react_featureflags",
|
|
119
|
+
Pair("../ReactCommon/react/featureflags/", "react/featureflags/")),
|
|
120
|
+
PrefabPreprocessingEntry(
|
|
121
|
+
"react_performance_timeline",
|
|
122
|
+
Pair(
|
|
123
|
+
"../ReactCommon/react/performance/timeline/", "react/performance/timeline/")),
|
|
124
|
+
PrefabPreprocessingEntry(
|
|
125
|
+
"react_render_observers_events",
|
|
126
|
+
Pair(
|
|
127
|
+
"../ReactCommon/react/renderer/observers/events/",
|
|
128
|
+
"react/renderer/observers/events/")),
|
|
113
129
|
PrefabPreprocessingEntry(
|
|
114
130
|
"rrc_root",
|
|
115
131
|
Pair(
|
|
@@ -694,6 +710,18 @@ android {
|
|
|
694
710
|
create("react_render_graphics") {
|
|
695
711
|
headers = File(prefabHeadersDir, "react_render_graphics").absolutePath
|
|
696
712
|
}
|
|
713
|
+
create("react_render_consistency") {
|
|
714
|
+
headers = File(prefabHeadersDir, "react_render_consistency").absolutePath
|
|
715
|
+
}
|
|
716
|
+
create("react_featureflags") {
|
|
717
|
+
headers = File(prefabHeadersDir, "react_featureflags").absolutePath
|
|
718
|
+
}
|
|
719
|
+
create("react_performance_timeline") {
|
|
720
|
+
headers = File(prefabHeadersDir, "react_performance_timeline").absolutePath
|
|
721
|
+
}
|
|
722
|
+
create("react_render_observers_events") {
|
|
723
|
+
headers = File(prefabHeadersDir, "react_render_observers_events").absolutePath
|
|
724
|
+
}
|
|
697
725
|
create("rrc_image") { headers = File(prefabHeadersDir, "rrc_image").absolutePath }
|
|
698
726
|
create("rrc_root") { headers = File(prefabHeadersDir, "rrc_root").absolutePath }
|
|
699
727
|
create("rrc_view") { headers = File(prefabHeadersDir, "rrc_view").absolutePath }
|
|
@@ -87,6 +87,11 @@ add_library(react_nativemodule_core ALIAS ReactAndroid::react_nativemodule_core)
|
|
|
87
87
|
add_library(react_render_imagemanager ALIAS ReactAndroid::react_render_imagemanager)
|
|
88
88
|
add_library(rrc_image ALIAS ReactAndroid::rrc_image)
|
|
89
89
|
add_library(rrc_legacyviewmanagerinterop ALIAS ReactAndroid::rrc_legacyviewmanagerinterop)
|
|
90
|
+
add_library(reactnativejni ALIAS ReactAndroid::reactnativejni)
|
|
91
|
+
add_library(react_render_consistency ALIAS ReactAndroid::react_render_consistency)
|
|
92
|
+
add_library(react_performance_timeline ALIAS ReactAndroid::react_performance_timeline)
|
|
93
|
+
add_library(react_render_observers_events ALIAS ReactAndroid::react_render_observers_events)
|
|
94
|
+
add_library(react_featureflags ALIAS ReactAndroid::react_featureflags)
|
|
90
95
|
|
|
91
96
|
find_package(fbjni REQUIRED CONFIG)
|
|
92
97
|
add_library(fbjni ALIAS fbjni::fbjni)
|
|
@@ -106,7 +106,10 @@ public interface CatalystInstance : MemoryPressureListener, JSInstance, JSBundle
|
|
|
106
106
|
* Returns a hybrid object that contains a pointer to a JS CallInvoker, which is used to schedule
|
|
107
107
|
* work on the JS Thread. Required for TurboModuleManager initialization.
|
|
108
108
|
*/
|
|
109
|
-
@get:Deprecated("")
|
|
109
|
+
@get:Deprecated("Use ReactContext.getJSCallInvokerHolder instead")
|
|
110
|
+
@Suppress("INAPPLICABLE_JVM_NAME")
|
|
111
|
+
@get:JvmName("getJSCallInvokerHolder") // This is needed to keep backward compatibility
|
|
112
|
+
public val jsCallInvokerHolder: CallInvokerHolder
|
|
110
113
|
|
|
111
114
|
/**
|
|
112
115
|
* Returns a hybrid object that contains a pointer to a NativeMethodCallInvoker, which is used to
|
|
@@ -12,6 +12,10 @@ package com.facebook.react.bridge
|
|
|
12
12
|
* pass one of multiple types down to the native layer.
|
|
13
13
|
*/
|
|
14
14
|
public interface Dynamic {
|
|
15
|
+
public val type: ReadableType
|
|
16
|
+
|
|
17
|
+
public val isNull: Boolean
|
|
18
|
+
|
|
15
19
|
public fun asArray(): ReadableArray
|
|
16
20
|
|
|
17
21
|
public fun asBoolean(): Boolean
|
|
@@ -24,9 +28,5 @@ public interface Dynamic {
|
|
|
24
28
|
|
|
25
29
|
public fun asString(): String
|
|
26
30
|
|
|
27
|
-
public fun getType(): ReadableType
|
|
28
|
-
|
|
29
|
-
public fun isNull(): Boolean
|
|
30
|
-
|
|
31
31
|
public fun recycle(): Unit
|
|
32
32
|
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and 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.bridge;
|
|
9
|
+
|
|
10
|
+
import com.facebook.proguard.annotations.DoNotStrip;
|
|
11
|
+
import com.facebook.react.common.annotations.DeprecatedInNewArchitecture;
|
|
12
|
+
import com.facebook.react.common.annotations.StableReactNativeAPI;
|
|
13
|
+
import javax.annotation.Nonnull;
|
|
14
|
+
|
|
15
|
+
/*
|
|
16
|
+
* IMPORTANT: Do not migrate this interface to Kotlin as you'll create a breaking change for React Native
|
|
17
|
+
* libraries written in Kotlin.
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* A native module whose API can be provided to JS catalyst instances. {@link NativeModule}s whose
|
|
22
|
+
* implementation is written in Java should extend {@link BaseJavaModule} or {@link
|
|
23
|
+
* ReactContextBaseJavaModule}. {@link NativeModule}s whose implementation is written in C++ must
|
|
24
|
+
* not provide any Java code (so they can be reused on other platforms), and instead should register
|
|
25
|
+
* themselves using {@link CxxModuleWrapper}.
|
|
26
|
+
*/
|
|
27
|
+
@StableReactNativeAPI
|
|
28
|
+
@DoNotStrip
|
|
29
|
+
public interface NativeModule {
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* @return the name of this module. This will be the name used to {@code require()} this module
|
|
33
|
+
* from javascript.
|
|
34
|
+
*/
|
|
35
|
+
// IMPORTANT: Do not migrate this interface to Kotlin as you'll create a breaking change
|
|
36
|
+
// for React Native libraries written in Kotlin
|
|
37
|
+
@Nonnull
|
|
38
|
+
String getName();
|
|
39
|
+
|
|
40
|
+
/** This method is called after {@link ReactApplicationContext} has been created. */
|
|
41
|
+
void initialize();
|
|
42
|
+
|
|
43
|
+
/** Allow NativeModule to clean up. Called before React Native instance is destroyed. */
|
|
44
|
+
void invalidate();
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Return true if you intend to override some other native module that was registered e.g. as part
|
|
48
|
+
* of a different package (such as the core one). Trying to override without returning true from
|
|
49
|
+
* this method is considered an error and will throw an exception during initialization. By
|
|
50
|
+
* default all modules return false.
|
|
51
|
+
*/
|
|
52
|
+
@DeprecatedInNewArchitecture()
|
|
53
|
+
default boolean canOverrideExistingModule() {
|
|
54
|
+
return false;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Allow NativeModule to clean up. Called before {CatalystInstance#onHostDestroy}
|
|
59
|
+
*
|
|
60
|
+
* @deprecated use {@link #invalidate()} instead.
|
|
61
|
+
*/
|
|
62
|
+
@Deprecated(since = "Use invalidate method instead", forRemoval = true)
|
|
63
|
+
default void onCatalystInstanceDestroy() {}
|
|
64
|
+
}
|
|
@@ -16,6 +16,8 @@ import kotlin.collections.Map
|
|
|
16
16
|
* Kotlin.
|
|
17
17
|
*/
|
|
18
18
|
public interface ReadableMap {
|
|
19
|
+
public val entryIterator: Iterator<Map.Entry<String, Any>>
|
|
20
|
+
|
|
19
21
|
public fun getArray(name: String): ReadableArray?
|
|
20
22
|
|
|
21
23
|
public fun getBoolean(name: String): Boolean
|
|
@@ -24,8 +26,6 @@ public interface ReadableMap {
|
|
|
24
26
|
|
|
25
27
|
public fun getDynamic(name: String): Dynamic
|
|
26
28
|
|
|
27
|
-
public fun getEntryIterator(): Iterator<Map.Entry<String, Any>>
|
|
28
|
-
|
|
29
29
|
public fun getInt(name: String): Int
|
|
30
30
|
|
|
31
31
|
public fun getLong(name: String): Long
|
|
@@ -110,36 +110,36 @@ public open class ReadableNativeMap protected constructor(hybridData: HybridData
|
|
|
110
110
|
|
|
111
111
|
override fun getDynamic(name: String): Dynamic = DynamicFromMap.create(this, name)
|
|
112
112
|
|
|
113
|
-
override
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
113
|
+
override val entryIterator: Iterator<Map.Entry<String, Any>>
|
|
114
|
+
get() =
|
|
115
|
+
synchronized(this) {
|
|
116
|
+
val iteratorKeys = keys
|
|
117
|
+
val iteratorValues = importValues()
|
|
118
|
+
jniPassCounter++
|
|
119
|
+
return object : Iterator<Map.Entry<String, Any>> {
|
|
120
|
+
var currentIndex = 0
|
|
121
|
+
|
|
122
|
+
override fun hasNext(): Boolean {
|
|
123
|
+
return currentIndex < iteratorKeys.size
|
|
124
|
+
}
|
|
124
125
|
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
126
|
+
override fun next(): Map.Entry<String, Any> {
|
|
127
|
+
val index = currentIndex++
|
|
128
|
+
return object : MutableMap.MutableEntry<String, Any> {
|
|
129
|
+
override val key: String
|
|
130
|
+
get() = iteratorKeys[index]
|
|
130
131
|
|
|
131
|
-
|
|
132
|
-
|
|
132
|
+
override val value: Any
|
|
133
|
+
get() = iteratorValues[index]
|
|
133
134
|
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
135
|
+
override fun setValue(newValue: Any): Any {
|
|
136
|
+
throw UnsupportedOperationException(
|
|
137
|
+
"Can't set a value while iterating over a ReadableNativeMap")
|
|
138
|
+
}
|
|
139
|
+
}
|
|
137
140
|
}
|
|
138
141
|
}
|
|
139
142
|
}
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
143
|
|
|
144
144
|
override fun keySetIterator(): ReadableMapKeySetIterator {
|
|
145
145
|
val iteratorKeys = keys
|
|
@@ -86,5 +86,16 @@ public class I18nUtil private constructor() {
|
|
|
86
86
|
private const val KEY_FOR_PREFS_FORCERTL = "RCTI18nUtil_forceRTL"
|
|
87
87
|
private const val KEY_FOR_PERFS_MAKE_RTL_FLIP_LEFT_AND_RIGHT_STYLES =
|
|
88
88
|
"RCTI18nUtil_makeRTLFlipLeftAndRightStyles"
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* We're just re-adding this to reduce a breaking change for libraries in React Native 0.75.
|
|
92
|
+
*
|
|
93
|
+
* @deprecated Use instance instead
|
|
94
|
+
*/
|
|
95
|
+
@Deprecated(
|
|
96
|
+
"Use .instance instead, this API is only for backward compat", ReplaceWith("instance"))
|
|
97
|
+
@JvmName(
|
|
98
|
+
"DEPRECATED\$getInstance") // We intentionally don't want to expose this accessor to Java.
|
|
99
|
+
public fun getInstance(): I18nUtil = instance
|
|
89
100
|
}
|
|
90
101
|
}
|
|
@@ -90,7 +90,9 @@ public class BridgelessCatalystInstance(private val reactHost: ReactHostImpl) :
|
|
|
90
90
|
override public val javaScriptContextHolder: JavaScriptContextHolder
|
|
91
91
|
get() = reactHost.getJavaScriptContextHolder()!!
|
|
92
92
|
|
|
93
|
-
|
|
93
|
+
@Suppress("INAPPLICABLE_JVM_NAME")
|
|
94
|
+
@get:JvmName("getJSCallInvokerHolder") // This is needed to keep backward compatibility
|
|
95
|
+
override public val jsCallInvokerHolder: CallInvokerHolder
|
|
94
96
|
get() = reactHost.getJSCallInvokerHolder()!!
|
|
95
97
|
|
|
96
98
|
override public val nativeMethodCallInvokerHolder: NativeMethodCallInvokerHolder
|
|
@@ -24,7 +24,7 @@ internal object FilterHelper {
|
|
|
24
24
|
filters ?: return null
|
|
25
25
|
var chainedEffects: RenderEffect? = null
|
|
26
26
|
for (i in 0 until filters.size()) {
|
|
27
|
-
val filter = filters.getMap(i).
|
|
27
|
+
val filter = filters.getMap(i).entryIterator.next()
|
|
28
28
|
val filterName = filter.key
|
|
29
29
|
val amount = (filter.value as Double).toFloat()
|
|
30
30
|
|
|
@@ -51,7 +51,7 @@ internal object FilterHelper {
|
|
|
51
51
|
// New ColorMatrix objects represent the identity matrix
|
|
52
52
|
val resultColorMatrix = ColorMatrix()
|
|
53
53
|
for (i in 0 until filters.size()) {
|
|
54
|
-
val filter = filters.getMap(i).
|
|
54
|
+
val filter = filters.getMap(i).entryIterator.next()
|
|
55
55
|
val filterName = filter.key
|
|
56
56
|
val amount = (filter.value as Double).toFloat()
|
|
57
57
|
|
|
@@ -78,7 +78,7 @@ internal object FilterHelper {
|
|
|
78
78
|
public fun isOnlyColorMatrixFilters(filters: ReadableArray?): Boolean {
|
|
79
79
|
filters ?: return false
|
|
80
80
|
for (i in 0 until filters.size()) {
|
|
81
|
-
val filter = filters.getMap(i).
|
|
81
|
+
val filter = filters.getMap(i).entryIterator.next()
|
|
82
82
|
val filterName = filter.key
|
|
83
83
|
if (filterName == "blur") {
|
|
84
84
|
return false
|