Skip to content

Commit a58bdcc

Browse files
authored
fix(android): use reactApplicationContext directly in trackDeepLinks (#1146)
trackDeepLinks() accessed SovranModule through the old ReactNativeHost chain (ReactApplication -> reactNativeHost -> reactInstanceManager -> currentReactContext -> getNativeModule), which throws a RuntimeException on React Native's New Architecture (Bridgeless mode): "You should not use ReactNativeHost directly in the New Architecture" The fix uses reactApplicationContext.getNativeModule() directly, which is the same pattern already used by setAnonymousId() in this class. Also removes unused ReactApplication and ReactActivity imports.
1 parent 8850949 commit a58bdcc

1 file changed

Lines changed: 1 addition & 7 deletions

File tree

packages/core/android/src/main/java/com/segmentanalyticsreactnative/AnalyticsReactNativeModule.kt

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,6 @@ import android.net.Uri
1313
import android.os.Build
1414
import android.util.Log
1515
import androidx.core.content.pm.PackageInfoCompat
16-
import com.facebook.react.ReactActivity
17-
import com.facebook.react.ReactApplication
1816
import com.facebook.react.bridge.*
1917
import com.facebook.react.module.annotations.ReactModule
2018
import com.sovranreactnative.SovranModule
@@ -217,11 +215,7 @@ class AnalyticsReactNativeModule : ReactContextBaseJavaModule, ActivityEventList
217215
}
218216

219217
Log.d(name, "Sending Deeplink data to store: uri=${uri}, referrer=${referrer}")
220-
val sovran = (reactApplicationContext.currentActivity?.application as ReactApplication)
221-
?.reactNativeHost
222-
?.reactInstanceManager
223-
?.currentReactContext
224-
?.getNativeModule(SovranModule::class.java)
218+
val sovran = reactApplicationContext.getNativeModule(SovranModule::class.java)
225219
sovran?.dispatch("add-deepLink-data", properties)
226220

227221

0 commit comments

Comments
 (0)