From d5b27fc0a80d6cfc1fec5621a3667b63de205226 Mon Sep 17 00:00:00 2001 From: Emily Janzer Date: Thu, 9 May 2019 17:43:55 -0700 Subject: [PATCH] Allow creating ThemedReactContext without a CatalystInstance Summary: In the future we're planning to decouple ThemedReactContext from the bridge (CatalystInstance). For now, we just need to be able to create a ThemedReactContext with a ReactContext that has no Catalyst instance. Reviewed By: mdvacca Differential Revision: D15246442 fbshipit-source-id: 99ebda6521f4df72969011ea0e6ea41b046875c8 --- .../src/main/java/com/facebook/react/bridge/ReactContext.java | 4 ++++ .../java/com/facebook/react/uimanager/ThemedReactContext.java | 4 +++- 2 files changed, 7 insertions(+), 1 deletion(-) 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 3caf5efad..532c22632 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java +++ b/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java @@ -147,6 +147,10 @@ public class ReactContext extends ContextWrapper { return mCatalystInstance != null && !mCatalystInstance.isDestroyed(); } + public boolean hasCatalystInstance() { + return mCatalystInstance != null; + } + public LifecycleState getLifecycleState() { return mLifecycleState; } 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 e061c1134..fdeb2c812 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/uimanager/ThemedReactContext.java +++ b/ReactAndroid/src/main/java/com/facebook/react/uimanager/ThemedReactContext.java @@ -30,7 +30,9 @@ public class ThemedReactContext extends ReactContext { public ThemedReactContext(ReactApplicationContext reactApplicationContext, Context base) { super(base); - initializeWithInstance(reactApplicationContext.getCatalystInstance()); + if (reactApplicationContext.hasCatalystInstance()) { + initializeWithInstance(reactApplicationContext.getCatalystInstance()); + } mReactApplicationContext = reactApplicationContext; }