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.
Files changed (43) hide show
  1. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +3 -0
  2. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +9 -0
  3. package/Libraries/Components/View/ReactNativeStyleAttributes.js +2 -2
  4. package/Libraries/Core/ReactNativeVersion.js +1 -1
  5. package/Libraries/NativeComponent/BaseViewConfig.android.js +2 -2
  6. package/Libraries/NativeComponent/BaseViewConfig.ios.js +11 -2
  7. package/Libraries/ReactNative/getNativeComponentAttributes.js +4 -0
  8. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +98 -5
  9. package/Libraries/StyleSheet/StyleSheetTypes.js +5 -5
  10. package/Libraries/StyleSheet/processBoxShadow.js +5 -7
  11. package/Libraries/StyleSheet/processFilter.js +4 -4
  12. package/React/Base/RCTVersion.m +1 -1
  13. package/React/Views/RCTViewManager.m +10 -9
  14. package/ReactAndroid/api/ReactAndroid.api +27 -0
  15. package/ReactAndroid/build.gradle.kts +17 -8
  16. package/ReactAndroid/gradle.properties +1 -1
  17. package/ReactAndroid/hermes-engine/build.gradle.kts +0 -2
  18. package/ReactAndroid/publish.gradle +1 -1
  19. package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskContext.java +13 -14
  20. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +1 -1
  21. package/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessDevSupportManager.java +14 -9
  22. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.java +26 -21
  23. package/{sdks/ossonly-soloader/src/main/java/com/facebook/soloader/MergedSoMapping.kt → ReactAndroid/src/main/java/com/facebook/react/soloader/OpenSourceMergedSoMapping.kt} +6 -4
  24. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewProps.kt +2 -2
  25. package/ReactAndroid/src/main/jni/first-party/jni-lib-merge/jni_lib_merge.c +2 -1
  26. package/ReactCommon/cxxreact/ReactNativeVersion.h +1 -1
  27. package/ReactCommon/react/renderer/components/view/BaseViewProps.cpp +4 -4
  28. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHermesInstance.h +3 -0
  29. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHermesInstance.mm +7 -0
  30. package/gradle/libs.versions.toml +2 -0
  31. package/package.json +10 -11
  32. package/scripts/cocoapods/privacy_manifest_utils.rb +23 -8
  33. package/sdks/hermes-engine/utils/build-apple-framework.sh +0 -12
  34. package/sdks/hermesc/osx-bin/hermes +0 -0
  35. package/sdks/hermesc/osx-bin/hermesc +0 -0
  36. package/sdks/hermesc/win64-bin/hermesc.exe +0 -0
  37. package/src/private/components/SafeAreaView_INTERNAL_DO_NOT_USE.js +11 -9
  38. package/types/experimental.d.ts +12 -98
  39. package/sdks/ossonly-soloader/src/main/java/com/facebook/soloader/DoNotOptimize.kt +0 -10
  40. package/sdks/ossonly-soloader/src/main/java/com/facebook/soloader/SoLoader.kt +0 -53
  41. package/sdks/ossonly-soloader/src/main/java/com/facebook/soloader/nativeloader/NativeLoader.kt +0 -28
  42. package/sdks/ossonly-soloader/src/main/java/com/facebook/soloader/nativeloader/NativeLoaderDelegate.kt +0 -23
  43. 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
- method,
254
- reactInstance -> {
255
- log(method, "Execute");
256
- reactInstance.stopSurface(surface);
257
- },
258
- mBGExecutor);
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<Void> loadBundle(final JSBundleLoader bundleLoader) {
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<Void> registerSegment(
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<Void> callFunctionOnModule(
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<Void> callWithExistingReactInstance(
953
+ private Task<Boolean> callWithExistingReactInstance(
951
954
  final String callingMethod,
952
- final ReactInstanceCalback callback,
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
- .continueWith(
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 || task.isFaulted()) {
971
+ if (reactInstance == null) {
969
972
  raiseSoftException(method, "Execute: reactInstance is null. Dropping work.");
970
- } else {
971
- callback.then(reactInstance);
973
+ return FALSE;
972
974
  }
973
- return null;
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 callback,
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
- .continueWith(
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 || task.isFaulted()) {
1000
+ if (reactInstance == null) {
997
1001
  raiseSoftException(method, "Execute: reactInstance is null. Dropping work.");
998
- } else {
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 MergedSoMapping {
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 = "experimental_boxShadow"
140
- public const val FILTER: String = "experimental_filter"
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 = "com/facebook/soloader/MergedSoMapping";
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
@@ -18,7 +18,7 @@ constexpr struct {
18
18
  int32_t Major = 0;
19
19
  int32_t Minor = 76;
20
20
  int32_t Patch = 0;
21
- std::string_view Prerelease = "0rc0";
21
+ std::string_view Prerelease = "0rc1";
22
22
  } ReactNativeVersion;
23
23
 
24
24
  } // namespace facebook::react
@@ -229,7 +229,7 @@ BaseViewProps::BaseViewProps(
229
229
  : convertRawProp(
230
230
  context,
231
231
  rawProps,
232
- "experimental_boxShadow",
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
- "experimental_filter",
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, "experimental_filter");
424
- RAW_SET_PROP_SWITCH_CASE(boxShadow, "experimental_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-0rc0",
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.0",
115
- "@react-native/codegen": "0.76.0-rc.0",
116
- "@react-native/community-cli-plugin": "0.76.0-rc.0",
117
- "@react-native/gradle-plugin": "0.76.0-rc.0",
118
- "@react-native/js-polyfills": "0.76.0-rc.0",
119
- "@react-native/normalize-colors": "0.76.0-rc.0",
120
- "@react-native-tvos/virtualized-lists": "0.76.0-0rc0",
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.80.10",
135
- "metro-source-map": "^0.80.10",
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
- reference_exists = target.resources_build_phase.files_references.any? { |file_ref| file_ref&.path&.end_with? "PrivacyInfo.xcprivacy" }
71
- unless reference_exists
72
- # 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
73
- file_root = user_project.root_object.main_group.children.find { |group|
74
- group.class == Xcodeproj::Project::Object::PBXGroup && (group.name == target.name || group.path == target.name)
75
- } || user_project
76
- file_ref = file_root.new_file(file_path)
77
- build_file = target.resources_build_phase.add_file_reference(file_ref, true)
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
- let exported: React.AbstractComponent<ViewProps, React.ElementRef<typeof View>>;
20
-
21
- if (Platform.OS === 'android' || Platform.OS === 'ios') {
22
- exported = RCTSafeAreaViewNativeComponent;
23
- } else {
24
- exported = View;
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;
@@ -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 {DimensionValue} from '../Libraries/StyleSheet/StyleSheetTypes';
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
- }
@@ -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
- }
@@ -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 {}