diff --git a/android/src/main/java/co/apptailor/Worker/JSWorker.java b/android/src/main/java/co/apptailor/Worker/JSWorker.java index 2bb7546..5c7074f 100644 --- a/android/src/main/java/co/apptailor/Worker/JSWorker.java +++ b/android/src/main/java/co/apptailor/Worker/JSWorker.java @@ -39,25 +39,29 @@ public void runFromContext(ReactApplicationContext context, ReactContextBuilder } public void postMessage(String message) { - reactContext.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class) + if (reactContext != null) { + reactContext.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class) .emit("WorkerMessage", message); + } } public void onHostResume() { - reactContext.onHostResume(null); + if (reactContext != null) { + reactContext.onHostResume(null); + } } public void onHostPause() { - reactContext.onHostPause(); + if (reactContext != null) { + reactContext.onHostPause(); + } } public void terminate() { - if (reactContext == null) { - return; + if (reactContext != null) { + reactContext.onHostPause(); + reactContext.destroy(); + reactContext = null; } - - reactContext.onHostPause(); - reactContext.destroy(); - reactContext = null; } } diff --git a/android/src/main/java/co/apptailor/Worker/WorkerModule.java b/android/src/main/java/co/apptailor/Worker/WorkerModule.java index fa1bb40..15589f0 100644 --- a/android/src/main/java/co/apptailor/Worker/WorkerModule.java +++ b/android/src/main/java/co/apptailor/Worker/WorkerModule.java @@ -7,7 +7,7 @@ import com.facebook.react.ReactApplication; import com.facebook.react.ReactInstanceManager; import com.facebook.react.ReactPackage; -import com.facebook.react.bridge.JSBundleLoader; +import com.facebook.react.cxxbridge.JSBundleLoader; import com.facebook.react.bridge.LifecycleEventListener; import com.facebook.react.bridge.Promise; import com.facebook.react.bridge.ReactApplicationContext; @@ -149,7 +149,7 @@ public void onHostDestroy() { @Override public void run() { for (int workerId : workers.keySet()) { - workers.get(workerId).terminate(); + stopWorker(workerId); } } }); @@ -177,7 +177,7 @@ private JSBundleLoader createDevBundleLoader(String jsFileName, String jsFileSlu private JSBundleLoader createReleaseBundleLoader(String jsFileName, String jsFileSlug) { Log.d(TAG, "createReleaseBundleLoader - reading file from assets"); - return JSBundleLoader.createFileLoader(getReactApplicationContext(), "assets://workers/" + jsFileSlug + ".bundle"); + return JSBundleLoader.createAssetLoader(getReactApplicationContext(), "assets://workers/" + jsFileSlug + ".bundle"); } private ReactInstanceManager getReactInstanceManager() { diff --git a/android/src/main/java/co/apptailor/Worker/core/ReactContextBuilder.java b/android/src/main/java/co/apptailor/Worker/core/ReactContextBuilder.java index a06b6ca..e8f3bfa 100644 --- a/android/src/main/java/co/apptailor/Worker/core/ReactContextBuilder.java +++ b/android/src/main/java/co/apptailor/Worker/core/ReactContextBuilder.java @@ -4,15 +4,15 @@ import com.facebook.react.ReactPackage; import com.facebook.react.bridge.CatalystInstance; -import com.facebook.react.bridge.CatalystInstanceImpl; -import com.facebook.react.bridge.JSBundleLoader; -import com.facebook.react.bridge.JSCJavaScriptExecutor; -import com.facebook.react.bridge.JavaScriptExecutor; +import com.facebook.react.cxxbridge.CatalystInstanceImpl; +import com.facebook.react.cxxbridge.JSBundleLoader; +import com.facebook.react.cxxbridge.JSCJavaScriptExecutor; +import com.facebook.react.cxxbridge.JavaScriptExecutor; import com.facebook.react.bridge.JavaScriptModule; import com.facebook.react.bridge.JavaScriptModuleRegistry; import com.facebook.react.bridge.NativeModule; import com.facebook.react.bridge.NativeModuleCallExceptionHandler; -import com.facebook.react.bridge.NativeModuleRegistry; +import com.facebook.react.cxxbridge.NativeModuleRegistry; import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.WritableNativeMap; import com.facebook.react.bridge.queue.ReactQueueConfigurationSpec; @@ -50,7 +50,7 @@ public ReactContextBuilder setReactPackages(ArrayList reactPackage } public ReactApplicationContext build() throws Exception { - JavaScriptExecutor jsExecutor = new JSCJavaScriptExecutor.Factory().create(new WritableNativeMap()); + JavaScriptExecutor jsExecutor = new JSCJavaScriptExecutor.Factory(new WritableNativeMap()).create(); // fresh new react context final ReactApplicationContext reactContext = new ReactApplicationContext(parentContext); diff --git a/android/src/main/java/co/apptailor/Worker/core/UIManagerStubModule.java b/android/src/main/java/co/apptailor/Worker/core/UIManagerStubModule.java index cb12d8d..de52032 100644 --- a/android/src/main/java/co/apptailor/Worker/core/UIManagerStubModule.java +++ b/android/src/main/java/co/apptailor/Worker/core/UIManagerStubModule.java @@ -2,6 +2,7 @@ import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.ReactContextBaseJavaModule; +import com.facebook.react.bridge.ReactMethod; public class UIManagerStubModule extends ReactContextBaseJavaModule { @@ -9,6 +10,7 @@ public UIManagerStubModule(ReactApplicationContext reactContext) { super(reactContext); } + @ReactMethod @Override public String getName() { return "UIManager"; diff --git a/package.json b/package.json index e6455a5..96d25d7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-native-workers", - "version": "0.3.1", + "version": "0.4.0", "description": "react native web workers", "main": "index.js", "scripts": {