react-native-tvos 0.76.0-0rc0 → 0.76.0-0rc1
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/Components/ScrollView/ScrollViewNativeComponent.js +3 -0
- package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +9 -0
- package/Libraries/Components/View/ReactNativeStyleAttributes.js +2 -2
- package/Libraries/Core/ReactNativeVersion.js +1 -1
- package/Libraries/NativeComponent/BaseViewConfig.android.js +2 -2
- package/Libraries/NativeComponent/BaseViewConfig.ios.js +11 -2
- package/Libraries/ReactNative/getNativeComponentAttributes.js +4 -0
- package/Libraries/StyleSheet/StyleSheetTypes.d.ts +98 -5
- package/Libraries/StyleSheet/StyleSheetTypes.js +5 -5
- package/Libraries/StyleSheet/processBoxShadow.js +5 -7
- package/Libraries/StyleSheet/processFilter.js +4 -4
- package/React/Base/RCTVersion.m +1 -1
- package/React/Views/RCTViewManager.m +10 -9
- package/ReactAndroid/api/ReactAndroid.api +27 -0
- package/ReactAndroid/build.gradle.kts +17 -8
- package/ReactAndroid/gradle.properties +1 -1
- package/ReactAndroid/hermes-engine/build.gradle.kts +0 -2
- package/ReactAndroid/publish.gradle +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskContext.java +13 -14
- package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessDevSupportManager.java +14 -9
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.java +26 -21
- package/{sdks/ossonly-soloader/src/main/java/com/facebook/soloader/MergedSoMapping.kt → ReactAndroid/src/main/java/com/facebook/react/soloader/OpenSourceMergedSoMapping.kt} +6 -4
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewProps.kt +2 -2
- package/ReactAndroid/src/main/jni/first-party/jni-lib-merge/jni_lib_merge.c +2 -1
- package/ReactCommon/cxxreact/ReactNativeVersion.h +1 -1
- package/ReactCommon/react/renderer/components/view/BaseViewProps.cpp +4 -4
- package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHermesInstance.h +3 -0
- package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHermesInstance.mm +7 -0
- package/gradle/libs.versions.toml +2 -0
- package/package.json +10 -11
- package/scripts/cocoapods/privacy_manifest_utils.rb +23 -8
- package/sdks/hermes-engine/utils/build-apple-framework.sh +0 -12
- 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/components/SafeAreaView_INTERNAL_DO_NOT_USE.js +11 -9
- package/types/experimental.d.ts +12 -98
- package/sdks/ossonly-soloader/src/main/java/com/facebook/soloader/DoNotOptimize.kt +0 -10
- package/sdks/ossonly-soloader/src/main/java/com/facebook/soloader/SoLoader.kt +0 -53
- package/sdks/ossonly-soloader/src/main/java/com/facebook/soloader/nativeloader/NativeLoader.kt +0 -28
- package/sdks/ossonly-soloader/src/main/java/com/facebook/soloader/nativeloader/NativeLoaderDelegate.kt +0 -23
- package/sdks/ossonly-soloader/src/main/java/com/facebook/soloader/nativeloader/SystemDelegate.kt +0 -10
|
@@ -9,6 +9,8 @@ package com.facebook.react.runtime;
|
|
|
9
9
|
|
|
10
10
|
import static com.facebook.infer.annotation.Assertions.assertNotNull;
|
|
11
11
|
import static com.facebook.infer.annotation.ThreadConfined.UI;
|
|
12
|
+
import static java.lang.Boolean.FALSE;
|
|
13
|
+
import static java.lang.Boolean.TRUE;
|
|
12
14
|
|
|
13
15
|
import android.app.Activity;
|
|
14
16
|
import android.content.Context;
|
|
@@ -250,12 +252,13 @@ public class ReactHostImpl implements ReactHost {
|
|
|
250
252
|
|
|
251
253
|
detachSurface(surface);
|
|
252
254
|
return callWithExistingReactInstance(
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
255
|
+
method,
|
|
256
|
+
reactInstance -> {
|
|
257
|
+
log(method, "Execute");
|
|
258
|
+
reactInstance.stopSurface(surface);
|
|
259
|
+
},
|
|
260
|
+
mBGExecutor)
|
|
261
|
+
.makeVoid();
|
|
259
262
|
}
|
|
260
263
|
|
|
261
264
|
/**
|
|
@@ -776,7 +779,7 @@ public class ReactHostImpl implements ReactHost {
|
|
|
776
779
|
};
|
|
777
780
|
}
|
|
778
781
|
|
|
779
|
-
/* package */ Task<
|
|
782
|
+
/* package */ Task<Boolean> loadBundle(final JSBundleLoader bundleLoader) {
|
|
780
783
|
final String method = "loadBundle()";
|
|
781
784
|
log(method, "Schedule");
|
|
782
785
|
|
|
@@ -789,7 +792,7 @@ public class ReactHostImpl implements ReactHost {
|
|
|
789
792
|
null);
|
|
790
793
|
}
|
|
791
794
|
|
|
792
|
-
/* package */ Task<
|
|
795
|
+
/* package */ Task<Boolean> registerSegment(
|
|
793
796
|
final int segmentId, final String path, final Callback callback) {
|
|
794
797
|
final String method =
|
|
795
798
|
"registerSegment(segmentId = \"" + segmentId + "\", path = \"" + path + "\")";
|
|
@@ -825,7 +828,7 @@ public class ReactHostImpl implements ReactHost {
|
|
|
825
828
|
* @param args Arguments to be passed to the function
|
|
826
829
|
* @return A Task that will complete when the function call has been enqueued on the JS thread.
|
|
827
830
|
*/
|
|
828
|
-
/* package */ Task<
|
|
831
|
+
/* package */ Task<Boolean> callFunctionOnModule(
|
|
829
832
|
final String moduleName, final String methodName, final NativeArray args) {
|
|
830
833
|
final String method = "callFunctionOnModule(\"" + moduleName + "\", \"" + methodName + "\")";
|
|
831
834
|
return callWithExistingReactInstance(
|
|
@@ -947,9 +950,9 @@ public class ReactHostImpl implements ReactHost {
|
|
|
947
950
|
}
|
|
948
951
|
|
|
949
952
|
/** Schedule work on a ReactInstance that is already created. */
|
|
950
|
-
private Task<
|
|
953
|
+
private Task<Boolean> callWithExistingReactInstance(
|
|
951
954
|
final String callingMethod,
|
|
952
|
-
final ReactInstanceCalback
|
|
955
|
+
final ReactInstanceCalback continuation,
|
|
953
956
|
@Nullable Executor executor) {
|
|
954
957
|
final String method = "callWithExistingReactInstance(" + callingMethod + ")";
|
|
955
958
|
|
|
@@ -959,18 +962,19 @@ public class ReactHostImpl implements ReactHost {
|
|
|
959
962
|
|
|
960
963
|
return mCreateReactInstanceTaskRef
|
|
961
964
|
.get()
|
|
962
|
-
.
|
|
965
|
+
.onSuccess(
|
|
963
966
|
task -> {
|
|
964
967
|
final ReactInstance reactInstance =
|
|
965
968
|
ReactNativeFeatureFlags.completeReactInstanceCreationOnBgThreadOnAndroid()
|
|
966
969
|
? task.getResult()
|
|
967
970
|
: mReactInstance;
|
|
968
|
-
if (reactInstance == null
|
|
971
|
+
if (reactInstance == null) {
|
|
969
972
|
raiseSoftException(method, "Execute: reactInstance is null. Dropping work.");
|
|
970
|
-
|
|
971
|
-
callback.then(reactInstance);
|
|
973
|
+
return FALSE;
|
|
972
974
|
}
|
|
973
|
-
|
|
975
|
+
|
|
976
|
+
continuation.then(reactInstance);
|
|
977
|
+
return TRUE;
|
|
974
978
|
},
|
|
975
979
|
executor);
|
|
976
980
|
}
|
|
@@ -978,7 +982,7 @@ public class ReactHostImpl implements ReactHost {
|
|
|
978
982
|
/** Create a ReactInstance if it doesn't exist already, and schedule work on it. */
|
|
979
983
|
private Task<Void> callAfterGetOrCreateReactInstance(
|
|
980
984
|
final String callingMethod,
|
|
981
|
-
final ReactInstanceCalback
|
|
985
|
+
final ReactInstanceCalback runnable,
|
|
982
986
|
@Nullable Executor executor) {
|
|
983
987
|
final String method = "callAfterGetOrCreateReactInstance(" + callingMethod + ")";
|
|
984
988
|
|
|
@@ -987,17 +991,18 @@ public class ReactHostImpl implements ReactHost {
|
|
|
987
991
|
}
|
|
988
992
|
|
|
989
993
|
return getOrCreateReactInstance()
|
|
990
|
-
.
|
|
994
|
+
.onSuccess(
|
|
991
995
|
task -> {
|
|
992
996
|
final ReactInstance reactInstance =
|
|
993
997
|
ReactNativeFeatureFlags.completeReactInstanceCreationOnBgThreadOnAndroid()
|
|
994
998
|
? task.getResult()
|
|
995
999
|
: mReactInstance;
|
|
996
|
-
if (reactInstance == null
|
|
1000
|
+
if (reactInstance == null) {
|
|
997
1001
|
raiseSoftException(method, "Execute: reactInstance is null. Dropping work.");
|
|
998
|
-
|
|
999
|
-
callback.then(reactInstance);
|
|
1002
|
+
return null;
|
|
1000
1003
|
}
|
|
1004
|
+
|
|
1005
|
+
runnable.then(reactInstance);
|
|
1001
1006
|
return null;
|
|
1002
1007
|
},
|
|
1003
1008
|
executor)
|
|
@@ -5,7 +5,9 @@
|
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
package com.facebook.soloader
|
|
8
|
+
package com.facebook.react.soloader
|
|
9
|
+
|
|
10
|
+
import com.facebook.soloader.ExternalSoMapping
|
|
9
11
|
|
|
10
12
|
/**
|
|
11
13
|
* This class is a manually created MergedSoMapping.
|
|
@@ -16,9 +18,9 @@ package com.facebook.soloader
|
|
|
16
18
|
* entry in the [invokeJniOnload] method, the [mapLibName] method as well as a new external function
|
|
17
19
|
* that will take care of calling the JNI_OnLoad method.
|
|
18
20
|
*/
|
|
19
|
-
public object
|
|
21
|
+
public object OpenSourceMergedSoMapping : ExternalSoMapping {
|
|
20
22
|
|
|
21
|
-
public fun mapLibName(input: String): String =
|
|
23
|
+
override public fun mapLibName(input: String): String =
|
|
22
24
|
when (input) {
|
|
23
25
|
"fabricjni",
|
|
24
26
|
"jsinspector",
|
|
@@ -47,7 +49,7 @@ public object MergedSoMapping {
|
|
|
47
49
|
else -> input
|
|
48
50
|
}
|
|
49
51
|
|
|
50
|
-
public fun invokeJniOnload(libraryName: String): Unit {
|
|
52
|
+
override public fun invokeJniOnload(libraryName: String): Unit {
|
|
51
53
|
when (libraryName) {
|
|
52
54
|
"fabricjni" -> libfabricjni_so()
|
|
53
55
|
"hermes_executor" -> libhermes_executor_so()
|
|
@@ -136,8 +136,8 @@ public object ViewProps {
|
|
|
136
136
|
public const val BORDER_START_COLOR: String = "borderStartColor"
|
|
137
137
|
public const val BORDER_END_COLOR: String = "borderEndColor"
|
|
138
138
|
public const val ON_LAYOUT: String = "onLayout"
|
|
139
|
-
public const val BOX_SHADOW: String = "
|
|
140
|
-
public const val FILTER: String = "
|
|
139
|
+
public const val BOX_SHADOW: String = "boxShadow"
|
|
140
|
+
public const val FILTER: String = "filter"
|
|
141
141
|
public const val MIX_BLEND_MODE: String = "experimental_mixBlendMode"
|
|
142
142
|
public const val TRANSFORM: String = "transform"
|
|
143
143
|
public const val TRANSFORM_ORIGIN: String = "transformOrigin"
|
|
@@ -24,7 +24,8 @@
|
|
|
24
24
|
|
|
25
25
|
// Class with mapping that will be generated by buck or manually edited by
|
|
26
26
|
// users.
|
|
27
|
-
static const char* invoke_class_name =
|
|
27
|
+
static const char* invoke_class_name =
|
|
28
|
+
"com/facebook/react/soloader/OpenSourceMergedSoMapping";
|
|
28
29
|
|
|
29
30
|
// Stub pre-merged library to ensure that our custom section gets created
|
|
30
31
|
// when we merge a group of native libraries with no JNI_OnLoad. We don't
|
|
@@ -229,7 +229,7 @@ BaseViewProps::BaseViewProps(
|
|
|
229
229
|
: convertRawProp(
|
|
230
230
|
context,
|
|
231
231
|
rawProps,
|
|
232
|
-
"
|
|
232
|
+
"boxShadow",
|
|
233
233
|
sourceProps.boxShadow,
|
|
234
234
|
{})),
|
|
235
235
|
filter(
|
|
@@ -237,7 +237,7 @@ BaseViewProps::BaseViewProps(
|
|
|
237
237
|
: convertRawProp(
|
|
238
238
|
context,
|
|
239
239
|
rawProps,
|
|
240
|
-
"
|
|
240
|
+
"filter",
|
|
241
241
|
sourceProps.filter,
|
|
242
242
|
{})),
|
|
243
243
|
backgroundImage(
|
|
@@ -420,8 +420,8 @@ void BaseViewProps::setProp(
|
|
|
420
420
|
RAW_SET_PROP_SWITCH_CASE_BASIC(removeClippedSubviews);
|
|
421
421
|
RAW_SET_PROP_SWITCH_CASE_BASIC(experimental_layoutConformance);
|
|
422
422
|
RAW_SET_PROP_SWITCH_CASE_BASIC(cursor);
|
|
423
|
-
RAW_SET_PROP_SWITCH_CASE(filter, "
|
|
424
|
-
RAW_SET_PROP_SWITCH_CASE(boxShadow, "
|
|
423
|
+
RAW_SET_PROP_SWITCH_CASE(filter, "filter");
|
|
424
|
+
RAW_SET_PROP_SWITCH_CASE(boxShadow, "boxShadow");
|
|
425
425
|
#if TARGET_OS_TV
|
|
426
426
|
RAW_SET_PROP_SWITCH_CASE_BASIC(isTVSelectable);
|
|
427
427
|
RAW_SET_PROP_SWITCH_CASE_BASIC(hasTVPreferredFocus);
|
|
@@ -22,6 +22,9 @@ using CrashManagerProvider =
|
|
|
22
22
|
class RCTHermesInstance : public JSRuntimeFactory {
|
|
23
23
|
public:
|
|
24
24
|
RCTHermesInstance();
|
|
25
|
+
RCTHermesInstance(
|
|
26
|
+
std::shared_ptr<const ReactNativeConfig> reactNativeConfig,
|
|
27
|
+
CrashManagerProvider crashManagerProvider);
|
|
25
28
|
RCTHermesInstance(
|
|
26
29
|
std::shared_ptr<const ReactNativeConfig> reactNativeConfig,
|
|
27
30
|
CrashManagerProvider crashManagerProvider,
|
|
@@ -11,6 +11,13 @@ namespace facebook::react {
|
|
|
11
11
|
|
|
12
12
|
RCTHermesInstance::RCTHermesInstance() : RCTHermesInstance(nullptr, nullptr, false) {}
|
|
13
13
|
|
|
14
|
+
RCTHermesInstance::RCTHermesInstance(
|
|
15
|
+
std::shared_ptr<const ReactNativeConfig> reactNativeConfig,
|
|
16
|
+
CrashManagerProvider crashManagerProvider)
|
|
17
|
+
: RCTHermesInstance(reactNativeConfig, std::move(crashManagerProvider), false)
|
|
18
|
+
{
|
|
19
|
+
}
|
|
20
|
+
|
|
14
21
|
RCTHermesInstance::RCTHermesInstance(
|
|
15
22
|
std::shared_ptr<const ReactNativeConfig> reactNativeConfig,
|
|
16
23
|
CrashManagerProvider crashManagerProvider,
|
|
@@ -29,6 +29,7 @@ nexus-publish = "1.3.0"
|
|
|
29
29
|
okhttp = "4.9.2"
|
|
30
30
|
okio = "2.9.0"
|
|
31
31
|
robolectric = "4.9.2"
|
|
32
|
+
soloader = "0.12.1"
|
|
32
33
|
xstream = "1.4.20"
|
|
33
34
|
yoga-proguard-annotations = "1.19.0"
|
|
34
35
|
# Native Dependencies
|
|
@@ -55,6 +56,7 @@ fresco-middleware = { module = "com.facebook.fresco:middleware", version.ref = "
|
|
|
55
56
|
fresco-imagepipeline-okhttp3 = { module = "com.facebook.fresco:imagepipeline-okhttp3", version.ref = "fresco" }
|
|
56
57
|
fresco-ui-common = { module = "com.facebook.fresco:ui-common", version.ref = "fresco" }
|
|
57
58
|
infer-annotation = { module = "com.facebook.infer.annotation:infer-annotation", version.ref = "infer-annotation" }
|
|
59
|
+
soloader = { module = "com.facebook.soloader:soloader", version.ref = "soloader" }
|
|
58
60
|
yoga-proguard-annotations = { module = "com.facebook.yoga:proguard-annotations", version.ref = "yoga-proguard-annotations" }
|
|
59
61
|
|
|
60
62
|
jsr305 = { module = "com.google.code.findbugs:jsr305", version.ref = "jsr305" }
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-tvos",
|
|
3
|
-
"version": "0.76.0-
|
|
3
|
+
"version": "0.76.0-0rc1",
|
|
4
4
|
"description": "A framework for building native apps using React",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -83,7 +83,6 @@
|
|
|
83
83
|
"scripts/react-native-xcode.sh",
|
|
84
84
|
"sdks/.hermesversion",
|
|
85
85
|
"sdks/hermes-engine",
|
|
86
|
-
"sdks/ossonly-soloader",
|
|
87
86
|
"sdks/hermesc",
|
|
88
87
|
"settings.gradle.kts",
|
|
89
88
|
"src",
|
|
@@ -111,13 +110,13 @@
|
|
|
111
110
|
},
|
|
112
111
|
"dependencies": {
|
|
113
112
|
"@jest/create-cache-key-function": "^29.6.3",
|
|
114
|
-
"@react-native/assets-registry": "0.76.0-rc.
|
|
115
|
-
"@react-native/codegen": "0.76.0-rc.
|
|
116
|
-
"@react-native/community-cli-plugin": "0.76.0-rc.
|
|
117
|
-
"@react-native/gradle-plugin": "0.76.0-rc.
|
|
118
|
-
"@react-native/js-polyfills": "0.76.0-rc.
|
|
119
|
-
"@react-native/normalize-colors": "0.76.0-rc.
|
|
120
|
-
"@react-native-tvos/virtualized-lists": "0.76.0-
|
|
113
|
+
"@react-native/assets-registry": "0.76.0-rc.1",
|
|
114
|
+
"@react-native/codegen": "0.76.0-rc.1",
|
|
115
|
+
"@react-native/community-cli-plugin": "0.76.0-rc.1",
|
|
116
|
+
"@react-native/gradle-plugin": "0.76.0-rc.1",
|
|
117
|
+
"@react-native/js-polyfills": "0.76.0-rc.1",
|
|
118
|
+
"@react-native/normalize-colors": "0.76.0-rc.1",
|
|
119
|
+
"@react-native-tvos/virtualized-lists": "0.76.0-0rc1",
|
|
121
120
|
"abort-controller": "^3.0.0",
|
|
122
121
|
"anser": "^1.4.9",
|
|
123
122
|
"ansi-regex": "^5.0.0",
|
|
@@ -131,8 +130,8 @@
|
|
|
131
130
|
"jest-environment-node": "^29.6.3",
|
|
132
131
|
"jsc-android": "^250231.0.0",
|
|
133
132
|
"memoize-one": "^5.0.0",
|
|
134
|
-
"metro-runtime": "^0.
|
|
135
|
-
"metro-source-map": "^0.
|
|
133
|
+
"metro-runtime": "^0.81.0-alpha.0",
|
|
134
|
+
"metro-source-map": "^0.81.0-alpha.0",
|
|
136
135
|
"mkdirp": "^0.5.1",
|
|
137
136
|
"nullthrows": "^1.1.1",
|
|
138
137
|
"pretty-format": "^29.7.0",
|
|
@@ -67,14 +67,29 @@ module PrivacyManifestUtils
|
|
|
67
67
|
end
|
|
68
68
|
|
|
69
69
|
def self.ensure_reference(file_path, user_project, target)
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
70
|
+
privacy_info_filename = File.basename(file_path)
|
|
71
|
+
|
|
72
|
+
# Check if the file is already in the PBXBuildFile section
|
|
73
|
+
build_phase_reference_exists = target.resources_build_phase.files_references.any? { |file_ref| file_ref&.path&.end_with?(privacy_info_filename) }
|
|
74
|
+
|
|
75
|
+
unless build_phase_reference_exists
|
|
76
|
+
# Check if the file is already in the PBXFileReference section
|
|
77
|
+
existing_file_reference = user_project.files.find { |file| file.path&.end_with?(privacy_info_filename) }
|
|
78
|
+
|
|
79
|
+
if existing_file_reference
|
|
80
|
+
# If the file reference exists, add it to the build phase
|
|
81
|
+
target.resources_build_phase.add_file_reference(existing_file_reference, true)
|
|
82
|
+
else
|
|
83
|
+
# If the file reference doesn't exist, add it to the project and the build phase
|
|
84
|
+
# We try to find the main group, but if it doesn't exist, we default to adding the file to the project root - both work
|
|
85
|
+
file_root = user_project.root_object.main_group.children.find { |group|
|
|
86
|
+
group.class == Xcodeproj::Project::Object::PBXGroup && (group.name == target.name || group.path == target.name)
|
|
87
|
+
} || user_project
|
|
88
|
+
puts "file_root: #{file_root}"
|
|
89
|
+
|
|
90
|
+
file_ref = file_root.new_file(file_path)
|
|
91
|
+
target.resources_build_phase.add_file_reference(file_ref, true)
|
|
92
|
+
end
|
|
78
93
|
end
|
|
79
94
|
end
|
|
80
95
|
|
|
@@ -224,19 +224,7 @@ function create_universal_framework {
|
|
|
224
224
|
for i in "${!platforms[@]}"; do
|
|
225
225
|
local platform="${platforms[$i]}"
|
|
226
226
|
local hermes_framework_path="${platform}/hermes.framework"
|
|
227
|
-
local dSYM_path="$hermes_framework_path"
|
|
228
|
-
local dSYM_base_path="$HERMES_PATH/destroot/Library/Frameworks"
|
|
229
|
-
|
|
230
|
-
# If the dSYM rename has failed, the dSYM are generated as 0.dSYM
|
|
231
|
-
# (Apple default name) rather then hermes.framework.dSYM.
|
|
232
|
-
if [[ -e "$dSYM_base_path/${platform}/0.dSYM" ]]; then
|
|
233
|
-
dSYM_path="${platform}/0"
|
|
234
|
-
fi
|
|
235
|
-
|
|
236
227
|
args+="-framework $hermes_framework_path "
|
|
237
|
-
|
|
238
|
-
# Path to dSYM must be absolute
|
|
239
|
-
args+="-debug-symbols $dSYM_base_path/$dSYM_path.dSYM "
|
|
240
228
|
done
|
|
241
229
|
|
|
242
230
|
mkdir -p universal
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -13,15 +13,17 @@ import type {ViewProps} from '../../../Libraries/Components/View/ViewPropTypes';
|
|
|
13
13
|
import Platform from '../../../Libraries/Utilities/Platform';
|
|
14
14
|
import View from '../../../Libraries/Components/View/View';
|
|
15
15
|
import * as React from 'react';
|
|
16
|
-
export * from '../../../src/private/specs/components/RCTSafeAreaViewNativeComponent';
|
|
17
|
-
import RCTSafeAreaViewNativeComponent from '../../../src/private/specs/components/RCTSafeAreaViewNativeComponent';
|
|
18
16
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
17
|
+
const exported: React.AbstractComponent<
|
|
18
|
+
ViewProps,
|
|
19
|
+
React.ElementRef<typeof View>,
|
|
20
|
+
> = Platform.select({
|
|
21
|
+
ios: require('../../../src/private/specs/components/RCTSafeAreaViewNativeComponent')
|
|
22
|
+
.default,
|
|
23
|
+
android:
|
|
24
|
+
require('../../../src/private/specs/components/RCTSafeAreaViewNativeComponent')
|
|
25
|
+
.default,
|
|
26
|
+
default: View,
|
|
27
|
+
});
|
|
26
28
|
|
|
27
29
|
export default exported;
|
package/types/experimental.d.ts
CHANGED
|
@@ -32,108 +32,14 @@
|
|
|
32
32
|
* Either the import or the reference only needs to appear once, anywhere in the project.
|
|
33
33
|
*/
|
|
34
34
|
|
|
35
|
-
import {
|
|
35
|
+
import {
|
|
36
|
+
GradientValue,
|
|
37
|
+
BlendMode,
|
|
38
|
+
} from 'react-native/Libraries/StyleSheet/StyleSheetTypes';
|
|
36
39
|
|
|
37
40
|
export {};
|
|
38
41
|
|
|
39
42
|
declare module '.' {
|
|
40
|
-
export interface FlexStyle {
|
|
41
|
-
/**
|
|
42
|
-
* Equivalent to `top`, `bottom`, `right` and `left`
|
|
43
|
-
*/
|
|
44
|
-
inset?: DimensionValue | undefined;
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
* Equivalent to `top`, `bottom`
|
|
48
|
-
*/
|
|
49
|
-
insetBlock?: DimensionValue | undefined;
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
* Equivalent to `bottom`
|
|
53
|
-
*/
|
|
54
|
-
insetBlockEnd?: DimensionValue | undefined;
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* Equivalent to `top`
|
|
58
|
-
*/
|
|
59
|
-
insetBlockStart?: DimensionValue | undefined;
|
|
60
|
-
|
|
61
|
-
/**
|
|
62
|
-
* Equivalent to `right` and `left`
|
|
63
|
-
*/
|
|
64
|
-
insetInline?: DimensionValue | undefined;
|
|
65
|
-
|
|
66
|
-
/**
|
|
67
|
-
* Equivalent to `right` or `left`
|
|
68
|
-
*/
|
|
69
|
-
insetInlineEnd?: DimensionValue | undefined;
|
|
70
|
-
|
|
71
|
-
/**
|
|
72
|
-
* Equivalent to `right` or `left`
|
|
73
|
-
*/
|
|
74
|
-
insetInlineStart?: DimensionValue | undefined;
|
|
75
|
-
|
|
76
|
-
/**
|
|
77
|
-
* Equivalent to `marginVertical`
|
|
78
|
-
*/
|
|
79
|
-
marginBlock?: DimensionValue | undefined;
|
|
80
|
-
|
|
81
|
-
/**
|
|
82
|
-
* Equivalent to `marginBottom`
|
|
83
|
-
*/
|
|
84
|
-
marginBlockEnd?: DimensionValue | undefined;
|
|
85
|
-
|
|
86
|
-
/**
|
|
87
|
-
* Equivalent to `marginTop`
|
|
88
|
-
*/
|
|
89
|
-
marginBlockStart?: DimensionValue | undefined;
|
|
90
|
-
|
|
91
|
-
/**
|
|
92
|
-
* Equivalent to `marginHorizontal`
|
|
93
|
-
*/
|
|
94
|
-
marginInline?: DimensionValue | undefined;
|
|
95
|
-
|
|
96
|
-
/**
|
|
97
|
-
* Equivalent to `marginEnd`
|
|
98
|
-
*/
|
|
99
|
-
marginInlineEnd?: DimensionValue | undefined;
|
|
100
|
-
|
|
101
|
-
/**
|
|
102
|
-
* Equivalent to `marginStart`
|
|
103
|
-
*/
|
|
104
|
-
marginInlineStart?: DimensionValue | undefined;
|
|
105
|
-
|
|
106
|
-
/**
|
|
107
|
-
* Equivalent to `paddingVertical`
|
|
108
|
-
*/
|
|
109
|
-
paddingBlock?: DimensionValue | undefined;
|
|
110
|
-
|
|
111
|
-
/**
|
|
112
|
-
* Equivalent to `paddingBottom`
|
|
113
|
-
*/
|
|
114
|
-
paddingBlockEnd?: DimensionValue | undefined;
|
|
115
|
-
|
|
116
|
-
/**
|
|
117
|
-
* Equivalent to `paddingTop`
|
|
118
|
-
*/
|
|
119
|
-
paddingBlockStart?: DimensionValue | undefined;
|
|
120
|
-
|
|
121
|
-
/**
|
|
122
|
-
* Equivalent to `paddingHorizontal`
|
|
123
|
-
*/
|
|
124
|
-
paddingInline?: DimensionValue | undefined;
|
|
125
|
-
|
|
126
|
-
/**
|
|
127
|
-
* Equivalent to `paddingEnd`
|
|
128
|
-
*/
|
|
129
|
-
paddingInlineEnd?: DimensionValue | undefined;
|
|
130
|
-
|
|
131
|
-
/**
|
|
132
|
-
* Equivalent to `paddingStart`
|
|
133
|
-
*/
|
|
134
|
-
paddingInlineStart?: DimensionValue | undefined;
|
|
135
|
-
}
|
|
136
|
-
|
|
137
43
|
export interface ViewProps {
|
|
138
44
|
/**
|
|
139
45
|
* Contols whether this view, and its transitive children, are laid in a way
|
|
@@ -142,4 +48,12 @@ declare module '.' {
|
|
|
142
48
|
*/
|
|
143
49
|
experimental_layoutConformance?: 'strict' | 'classic' | undefined;
|
|
144
50
|
}
|
|
51
|
+
|
|
52
|
+
export interface ViewStyle {
|
|
53
|
+
experimental_mixBlendMode?: BlendMode | undefined;
|
|
54
|
+
experimental_backgroundImage?:
|
|
55
|
+
| ReadonlyArray<GradientValue>
|
|
56
|
+
| string
|
|
57
|
+
| undefined;
|
|
58
|
+
}
|
|
145
59
|
}
|
|
@@ -1,10 +0,0 @@
|
|
|
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.soloader
|
|
9
|
-
|
|
10
|
-
public annotation class DoNotOptimize {}
|
|
@@ -1,53 +0,0 @@
|
|
|
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
|
-
@file:Suppress("UNUSED_EXPRESSION", "ControlFlowWithEmptyBody", "UNUSED_PARAMETER")
|
|
9
|
-
|
|
10
|
-
package com.facebook.soloader
|
|
11
|
-
|
|
12
|
-
import android.content.Context
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* This class is a stub of SoLoader used ONLY by React Native OSS.
|
|
16
|
-
*
|
|
17
|
-
* This allows us to do not mutate the SoLoader.init and SoLoader.loadLibrary methods, which are
|
|
18
|
-
* used by the React Native, while also allowing us to implement custom JNI_OnLoad calling which
|
|
19
|
-
* enables merging of SOs.
|
|
20
|
-
*/
|
|
21
|
-
public object SoLoader {
|
|
22
|
-
|
|
23
|
-
private val loadedLibraries = mutableSetOf<String>()
|
|
24
|
-
|
|
25
|
-
private fun mapLibName(input: String) = MergedSoMapping.mapLibName(input)
|
|
26
|
-
|
|
27
|
-
private fun invokeJniOnload(libraryName: String) = MergedSoMapping.invokeJniOnload(libraryName)
|
|
28
|
-
|
|
29
|
-
@Deprecated("This method is a no-op and you should not be calling it")
|
|
30
|
-
@JvmStatic
|
|
31
|
-
public fun init(context: Context, exoPackage: Boolean) {
|
|
32
|
-
// Do nothing
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
@JvmStatic
|
|
36
|
-
public fun loadLibrary(libraryName: String): Boolean {
|
|
37
|
-
if (libraryName in loadedLibraries) {
|
|
38
|
-
return false
|
|
39
|
-
}
|
|
40
|
-
val mapLibraryName = mapLibName(libraryName)
|
|
41
|
-
System.loadLibrary(mapLibraryName)
|
|
42
|
-
loadedLibraries.add(libraryName)
|
|
43
|
-
if (libraryName != mapLibraryName) {
|
|
44
|
-
invokeJniOnload(libraryName)
|
|
45
|
-
}
|
|
46
|
-
return true
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
@JvmStatic
|
|
50
|
-
public fun setInTestMode() {
|
|
51
|
-
// Do nothing
|
|
52
|
-
}
|
|
53
|
-
}
|
package/sdks/ossonly-soloader/src/main/java/com/facebook/soloader/nativeloader/NativeLoader.kt
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
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.soloader.nativeloader
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* This class is a stub of NativeLoader used ONLY by React Native OSS.
|
|
12
|
-
*
|
|
13
|
-
* Fresco in OSS depends on NativeLoader, but we don't want to include the real
|
|
14
|
-
* NativeLoader/SoLoader in React Native OSS. This stub is used to make Fresco work properly for us.
|
|
15
|
-
*/
|
|
16
|
-
public object NativeLoader {
|
|
17
|
-
|
|
18
|
-
@JvmStatic
|
|
19
|
-
public fun loadLibrary(libraryName: String): Boolean {
|
|
20
|
-
System.loadLibrary(libraryName)
|
|
21
|
-
return true
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
@JvmStatic public fun isInitialized(): Boolean = true
|
|
25
|
-
|
|
26
|
-
@Suppress("UNUSED_PARAMETER")
|
|
27
|
-
public fun initIfUninitialized(systemDelegate: SystemDelegate): Unit = Unit
|
|
28
|
-
}
|
|
@@ -1,23 +0,0 @@
|
|
|
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.soloader.nativeloader
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* This class is a stub of NativeLoaderDelegate used ONLY by React Native OSS.
|
|
12
|
-
*
|
|
13
|
-
* Fresco in OSS depends on NativeLoader, but we don't want to include the real
|
|
14
|
-
* NativeLoader/SoLoader in React Native OSS. This stub is used to make Fresco work properly for us.
|
|
15
|
-
*/
|
|
16
|
-
public interface NativeLoaderDelegate {
|
|
17
|
-
|
|
18
|
-
public fun loadLibrary(shortName: String?, flags: Int): Boolean
|
|
19
|
-
|
|
20
|
-
public fun getLibraryPath(libName: String?): String
|
|
21
|
-
|
|
22
|
-
public fun getSoSourcesVersion(): Int
|
|
23
|
-
}
|
package/sdks/ossonly-soloader/src/main/java/com/facebook/soloader/nativeloader/SystemDelegate.kt
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
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.soloader.nativeloader
|
|
9
|
-
|
|
10
|
-
public class SystemDelegate {}
|