From a231ddf2cf0712de584277bc4785260294deaa2b Mon Sep 17 00:00:00 2001 From: Moumene Date: Wed, 28 Jun 2017 17:09:04 +0100 Subject: [PATCH 1/5] Update android for react-native 0.45.1 @danderson00 PR #26 --- .../co/apptailor/Worker/WorkerModule.java | 7 +++-- .../Worker/core/BaseReactPackage.java | 2 +- .../Worker/core/ReactContextBuilder.java | 30 ++++++++++++------- 3 files changed, 24 insertions(+), 15 deletions(-) diff --git a/android/src/main/java/co/apptailor/Worker/WorkerModule.java b/android/src/main/java/co/apptailor/Worker/WorkerModule.java index fa1bb40..e5ad26e 100644 --- a/android/src/main/java/co/apptailor/Worker/WorkerModule.java +++ b/android/src/main/java/co/apptailor/Worker/WorkerModule.java @@ -7,13 +7,13 @@ 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; import com.facebook.react.bridge.ReactContextBaseJavaModule; import com.facebook.react.bridge.ReactMethod; -import com.facebook.react.devsupport.DevSupportManager; +import com.facebook.react.devsupport.interfaces.DevSupportManager; import java.io.File; import java.io.IOException; @@ -66,6 +66,7 @@ public void startWorker(final String jsFileName, final Promise promise) { ReactContextBuilder workerContextBuilder = new ReactContextBuilder(getReactApplicationContext()) .setJSBundleLoader(bundleLoader) .setDevSupportManager(getDevSupportManager()) + .setReactInstanceManager(getReactInstanceManager()) .setReactPackages(workerPackages); JSWorker worker = new JSWorker(jsFileSlug); @@ -177,7 +178,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.createFileLoader("assets://workers/" + jsFileSlug + ".bundle"); } private ReactInstanceManager getReactInstanceManager() { diff --git a/android/src/main/java/co/apptailor/Worker/core/BaseReactPackage.java b/android/src/main/java/co/apptailor/Worker/core/BaseReactPackage.java index 812561b..e754fc9 100644 --- a/android/src/main/java/co/apptailor/Worker/core/BaseReactPackage.java +++ b/android/src/main/java/co/apptailor/Worker/core/BaseReactPackage.java @@ -43,7 +43,7 @@ public List createNativeModules(ReactApplicationContext catalystAp new ExceptionsManagerModule(reactInstanceManager.getDevSupportManager()), new Timing(catalystApplicationContext, reactInstanceManager.getDevSupportManager()), new UIManagerStubModule(catalystApplicationContext), - new SourceCodeModule(reactInstanceManager.getSourceUrl()), + new SourceCodeModule(catalystApplicationContext), new JSCHeapCapture(catalystApplicationContext), // Main list 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..6d48fc6 100644 --- a/android/src/main/java/co/apptailor/Worker/core/ReactContextBuilder.java +++ b/android/src/main/java/co/apptailor/Worker/core/ReactContextBuilder.java @@ -2,21 +2,23 @@ import android.content.Context; +import com.facebook.react.NativeModuleRegistryBuilder; 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.ReactInstanceManager; import com.facebook.react.bridge.WritableNativeMap; import com.facebook.react.bridge.queue.ReactQueueConfigurationSpec; -import com.facebook.react.devsupport.DevSupportManager; +import com.facebook.react.devsupport.interfaces.DevSupportManager; import com.facebook.soloader.SoLoader; import java.util.ArrayList; @@ -27,6 +29,7 @@ public class ReactContextBuilder { private Context parentContext; private JSBundleLoader jsBundleLoader; private DevSupportManager devSupportManager; + private ReactInstanceManager instanceManager; private ArrayList reactPackages; public ReactContextBuilder(Context context) { @@ -44,13 +47,18 @@ public ReactContextBuilder setDevSupportManager(DevSupportManager devSupportMana return this; } + public ReactContextBuilder setReactInstanceManager(ReactInstanceManager manager) { + this.instanceManager = manager; + return this; + } + public ReactContextBuilder setReactPackages(ArrayList reactPackages) { this.reactPackages = reactPackages; return this; } 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); @@ -59,7 +67,7 @@ public ReactApplicationContext build() throws Exception { } // load native modules - NativeModuleRegistry.Builder nativeRegistryBuilder = new NativeModuleRegistry.Builder(); + NativeModuleRegistryBuilder nativeRegistryBuilder = new NativeModuleRegistryBuilder(reactContext, this.instanceManager, false); addNativeModules(reactContext, nativeRegistryBuilder); // load js modules @@ -134,12 +142,12 @@ private void addJSModules(JavaScriptModuleRegistry.Builder jsModulesBuilder) { } } - private void addNativeModules(ReactApplicationContext reactContext, NativeModuleRegistry.Builder nativeRegistryBuilder) { + private void addNativeModules(ReactApplicationContext reactContext, NativeModuleRegistryBuilder nativeRegistryBuilder) { for (int i = 0; i < reactPackages.size(); i++) { ReactPackage reactPackage = reactPackages.get(i); for (NativeModule nativeModule : reactPackage.createNativeModules(reactContext)) { - nativeRegistryBuilder.add(nativeModule); + nativeRegistryBuilder.addNativeModule(nativeModule); } } } -} +} \ No newline at end of file From 85cf4c3a5b90961b5759c95c1ba534ffb24496bf Mon Sep 17 00:00:00 2001 From: Moumene Date: Wed, 28 Jun 2017 17:09:47 +0100 Subject: [PATCH 2/5] Continue working when the app is in background --- android/src/main/java/co/apptailor/Worker/WorkerModule.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/android/src/main/java/co/apptailor/Worker/WorkerModule.java b/android/src/main/java/co/apptailor/Worker/WorkerModule.java index e5ad26e..79f4f33 100644 --- a/android/src/main/java/co/apptailor/Worker/WorkerModule.java +++ b/android/src/main/java/co/apptailor/Worker/WorkerModule.java @@ -135,9 +135,9 @@ public void onHostPause() { new Handler(Looper.getMainLooper()).post(new Runnable() { @Override public void run() { - for (int workerId : workers.keySet()) { - workers.get(workerId).onHostPause(); - } + // for (int workerId : workers.keySet()) { + // workers.get(workerId).onHostPause(); + // } } }); } From fd9d0449d26ccf4d5de5fd579bab52745bea53f2 Mon Sep 17 00:00:00 2001 From: Moumene Date: Wed, 28 Jun 2017 17:16:27 +0100 Subject: [PATCH 3/5] Compile for react-native 0.45.1 in `ios` --- ios/Workers/WorkerManager.m | 2 +- ios/Workers/WorkerSelfManager.m | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ios/Workers/WorkerManager.m b/ios/Workers/WorkerManager.m index e661044..7320c70 100644 --- a/ios/Workers/WorkerManager.m +++ b/ios/Workers/WorkerManager.m @@ -1,7 +1,7 @@ #import "WorkerManager.h" #import "WorkerSelfManager.h" #include -#import "RCTBridge.h" +#import "React/RCTBridge.h" #import "RCTBridge+Private.h" #import "RCTEventDispatcher.h" #import "RCTBundleURLProvider.h" diff --git a/ios/Workers/WorkerSelfManager.m b/ios/Workers/WorkerSelfManager.m index 8168dc4..3fa96b3 100644 --- a/ios/Workers/WorkerSelfManager.m +++ b/ios/Workers/WorkerSelfManager.m @@ -1,6 +1,6 @@ #import "WorkerSelfManager.h" #include -#import "RCTBridge.h" +#import "React/RCTBridge.h" #import "RCTBridge+Private.h" #import "RCTEventDispatcher.h" From b6d2d720becd73d063af92cc25d59ea71eeb71ae Mon Sep 17 00:00:00 2001 From: Moumene Date: Wed, 28 Jun 2017 18:03:39 +0100 Subject: [PATCH 4/5] Update version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index e6455a5..4d73adb 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-native-workers", - "version": "0.3.1", + "version": "0.3.2", "description": "react native web workers", "main": "index.js", "scripts": { From 84598fce43d7bd1ec898a3e90bc4b9d03b28d16f Mon Sep 17 00:00:00 2001 From: Moumene Date: Thu, 29 Jun 2017 10:22:52 +0100 Subject: [PATCH 5/5] Allow `build` folder to be added to `npm` --- .gitignore | 4 ++-- .npmignore | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 1cc6060..9a9b99c 100644 --- a/.gitignore +++ b/.gitignore @@ -4,7 +4,7 @@ # Xcode # -build/ +# build/ *.pbxuser !default.pbxuser *.mode1v3 @@ -31,7 +31,7 @@ local.properties local.properties .idea/workspace.xml .idea/libraries -build +# build captures # Built application files diff --git a/.npmignore b/.npmignore index 6b5ea59..c53e952 100644 --- a/.npmignore +++ b/.npmignore @@ -8,7 +8,7 @@ example # Xcode # -build/ +# build/ *.pbxuser !default.pbxuser *.mode1v3 @@ -35,7 +35,7 @@ local.properties local.properties .idea/workspace.xml .idea/libraries -build +# build captures # node.js