Skip to content

Commit c4cda51

Browse files
RSNarafacebook-github-bot
authored andcommitted
Make default classes load their own so's
Summary: Make the DefaultTurboModuleManagerDelegate and the DefaultComponentRegistry load their own so's when they're created. **Motivation:** We are going to use these two classes in Meta apps. And Meta apps will not invoke DefaultNewArchitectureEntryPoint.load. Changelog: [Internal] Reviewed By: mdvacca Differential Revision: D51036133
1 parent 316af4c commit c4cda51

File tree

4 files changed

+38
-7
lines changed

4 files changed

+38
-7
lines changed

packages/react-native/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultComponentsRegistry.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,10 @@ private constructor(componentFactory: ComponentFactory) {
2727

2828
@DoNotStrip private external fun initHybrid(componentFactory: ComponentFactory): HybridData
2929

30+
init {
31+
DefaultSoLoader.maybeLoadSoLibrary()
32+
}
33+
3034
companion object {
3135
@JvmStatic
3236
@DoNotStrip

packages/react-native/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultNewArchitectureEntryPoint.kt

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
package com.facebook.react.defaults
99

1010
import com.facebook.react.config.ReactFeatureFlags
11-
import com.facebook.soloader.SoLoader
1211

1312
/**
1413
* A utility class that serves as an entry point for users setup the New Architecture.
@@ -27,8 +26,7 @@ object DefaultNewArchitectureEntryPoint {
2726
fun load(
2827
turboModulesEnabled: Boolean = true,
2928
fabricEnabled: Boolean = true,
30-
bridgelessEnabled: Boolean = false,
31-
dynamicLibraryName: String = "appmodules",
29+
bridgelessEnabled: Boolean = false
3230
) {
3331
ReactFeatureFlags.useTurboModules = turboModulesEnabled
3432
ReactFeatureFlags.enableFabricRenderer = fabricEnabled
@@ -42,8 +40,7 @@ object DefaultNewArchitectureEntryPoint {
4240
this.privateConcurrentReactEnabled = fabricEnabled
4341
this.privateBridgelessEnabled = bridgelessEnabled
4442

45-
SoLoader.loadLibrary("react_newarchdefaults")
46-
SoLoader.loadLibrary(dynamicLibraryName)
43+
DefaultSoLoader.maybeLoadSoLibrary()
4744
}
4845

4946
@Deprecated(
@@ -56,9 +53,8 @@ object DefaultNewArchitectureEntryPoint {
5653
fabricEnabled: Boolean = true,
5754
bridgelessEnabled: Boolean = false,
5855
@Suppress("UNUSED_PARAMETER") concurrentReactEnabled: Boolean = true,
59-
dynamicLibraryName: String = "appmodules",
6056
) {
61-
load(turboModulesEnabled, fabricEnabled, bridgelessEnabled, dynamicLibraryName)
57+
load(turboModulesEnabled, fabricEnabled, bridgelessEnabled)
6258
}
6359

6460
private var privateFabricEnabled: Boolean = false
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
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.defaults
9+
10+
import com.facebook.soloader.SoLoader
11+
import com.facebook.soloader.SoLoaderDSONotFoundError
12+
13+
internal class DefaultSoLoader {
14+
companion object {
15+
@Synchronized
16+
@JvmStatic
17+
fun maybeLoadSoLibrary() {
18+
SoLoader.loadLibrary("react_newarchdefaults")
19+
try {
20+
SoLoader.loadLibrary("appmodules")
21+
} catch (e: SoLoaderDSONotFoundError) {
22+
// ignore: DefaultTurboModuleManagerDelegate is still used in apps that don't have
23+
// appmodules.so
24+
}
25+
}
26+
}
27+
}

packages/react-native/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultTurboModuleManagerDelegate.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,4 +30,8 @@ private constructor(context: ReactApplicationContext, packages: List<ReactPackag
3030
override fun build(context: ReactApplicationContext, packages: List<ReactPackage>) =
3131
DefaultTurboModuleManagerDelegate(context, packages)
3232
}
33+
34+
override fun maybeLoadOtherSoLibraries() {
35+
DefaultSoLoader.maybeLoadSoLibrary()
36+
}
3337
}

0 commit comments

Comments
 (0)