diff --git a/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactApplicationContext.java b/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactApplicationContext.java index 9fa01ba5f89..86e90392d88 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactApplicationContext.java +++ b/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactApplicationContext.java @@ -20,4 +20,15 @@ public class ReactApplicationContext extends ReactContext { public ReactApplicationContext(Context context) { super(context.getApplicationContext()); } + + /** + * A constructor that takes a unique string identifier for the React instance. For bridgeless mode + * only - do not use. + * + *

TODO T43898341 Make this package-private once we've consolidated the classes that need this + * in this package + */ + public ReactApplicationContext(Context context, String instanceKey) { + super(context.getApplicationContext(), instanceKey); + } } diff --git a/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java b/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java index b3db3af93d2..11428cba257 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java +++ b/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java @@ -53,9 +53,20 @@ public class ReactContext extends ContextWrapper { private @Nullable NativeModuleCallExceptionHandler mNativeModuleCallExceptionHandler; private @Nullable NativeModuleCallExceptionHandler mExceptionHandlerWrapper; private @Nullable WeakReference mCurrentActivity; + private final @Nullable String mInstanceKey; public ReactContext(Context base) { super(base); + mInstanceKey = null; + } + + /** + * A constructor that takes a unique string identifier for the React instance. For bridgeless mode + * only - do not use. + */ + /* package */ ReactContext(Context base, String instanceKey) { + super(base); + mInstanceKey = instanceKey; } /** Set and initialize CatalystInstance for this Context. This should be called exactly once. */ @@ -408,4 +419,14 @@ public class ReactContext extends ContextWrapper { public JavaScriptContextHolder getJavaScriptContextHolder() { return mCatalystInstance.getJavaScriptContextHolder(); } + + /** + * TODO T43898341 Make this package-private once we've consolidated the classes that need this in + * this package + * + * @return The key for the associated React instance + */ + public @Nullable String getInstanceKey() { + return mInstanceKey; + } } diff --git a/ReactAndroid/src/main/java/com/facebook/react/uimanager/ThemedReactContext.java b/ReactAndroid/src/main/java/com/facebook/react/uimanager/ThemedReactContext.java index af7c8748af0..91d6cdc59be 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/uimanager/ThemedReactContext.java +++ b/ReactAndroid/src/main/java/com/facebook/react/uimanager/ThemedReactContext.java @@ -53,4 +53,10 @@ public class ThemedReactContext extends ReactContext { public @Nullable Activity getCurrentActivity() { return mReactApplicationContext.getCurrentActivity(); } + + @Nullable + @Override + public String getInstanceKey() { + return mReactApplicationContext.getInstanceKey(); + } }