diff --git a/android/build.gradle b/android/build.gradle index a25f718..3e2ae93 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -11,18 +11,23 @@ buildscript { apply plugin: 'com.android.library' android { - compileSdkVersion 23 - buildToolsVersion "23.0.1" + compileSdkVersion 24 + buildToolsVersion "23.0.2" defaultConfig { minSdkVersion 16 - targetSdkVersion 23 + targetSdkVersion 24 versionCode 1 versionName "1.0" } lintOptions { abortOnError false } + + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } } repositories { @@ -31,5 +36,4 @@ repositories { dependencies { compile 'com.facebook.react:react-native:+' - compile(group: 'status-im', name: 'status-go', version: '+', ext: 'aar') } diff --git a/android/src/main/java/com/github/alinz/reactnativewebviewbridge/StatusBridge.java b/android/src/main/java/com/github/alinz/reactnativewebviewbridge/StatusBridge.java index 4eb163f..7b34165 100644 --- a/android/src/main/java/com/github/alinz/reactnativewebviewbridge/StatusBridge.java +++ b/android/src/main/java/com/github/alinz/reactnativewebviewbridge/StatusBridge.java @@ -5,15 +5,18 @@ import android.webkit.WebView; import android.app.Activity; import com.facebook.react.uimanager.ThemedReactContext; -import com.github.status_im.status_go.cmd.Statusgo; + +import java.util.function.Function; class StatusBridge { private WebView webView; private ThemedReactContext context; + private Function callRPC; - public StatusBridge(ThemedReactContext context, WebView webView) { + public StatusBridge(ThemedReactContext context, WebView webView, Function callRPC) { this.context = context; this.webView = webView; + this.callRPC = callRPC; } @JavascriptInterface @@ -21,7 +24,7 @@ class StatusBridge { Thread thread = new Thread() { @Override public void run() { - String rpcResponse = Statusgo.CallRPC(json).trim(); + String rpcResponse = callRPC.apply(json).trim(); final String script = "httpCallback('" + callbackId + "','" + rpcResponse + "');"; final Activity activity = context.getCurrentActivity(); @@ -38,7 +41,7 @@ class StatusBridge { @JavascriptInterface public String sendRequestSync(final String host, final String json) { - return Statusgo.CallRPC(json); + return this.callRPC.apply(json); } static private void evaluateJavascript(WebView root, String javascript) { diff --git a/android/src/main/java/com/github/alinz/reactnativewebviewbridge/WebViewBridgeManager.java b/android/src/main/java/com/github/alinz/reactnativewebviewbridge/WebViewBridgeManager.java index 9eb4d30..67817e5 100644 --- a/android/src/main/java/com/github/alinz/reactnativewebviewbridge/WebViewBridgeManager.java +++ b/android/src/main/java/com/github/alinz/reactnativewebviewbridge/WebViewBridgeManager.java @@ -36,6 +36,7 @@ import java.io.IOException; import java.io.InputStream; import java.nio.charset.Charset; import java.util.Map; +import java.util.function.Function; import static okhttp3.internal.Util.UTF_8; @@ -53,10 +54,12 @@ public class WebViewBridgeManager extends ReactWebViewManager { private static ReactApplicationContext reactNativeContext; private OkHttpClient client; private static boolean debug; + Function callRPC; - public WebViewBridgeManager(ReactApplicationContext context, boolean debug) { + public WebViewBridgeManager(ReactApplicationContext context, boolean debug, Function callRPC) { this.reactNativeContext = context; this.debug = debug; + this.callRPC = callRPC; Builder b = new Builder(); client = b .followRedirects(false) @@ -140,7 +143,7 @@ public class WebViewBridgeManager extends ReactWebViewManager { webView.setWebChromeClient(client); webView.setWebViewClient(new ReactWebViewClient()); webView.addJavascriptInterface(new JavascriptBridge(webView), "WebViewBridge"); - StatusBridge bridge = new StatusBridge(reactContext, webView); + StatusBridge bridge = new StatusBridge(reactContext, webView, this.callRPC); webView.addJavascriptInterface(bridge, "StatusBridge"); webView.setStatusBridge(bridge); diff --git a/android/src/main/java/com/github/alinz/reactnativewebviewbridge/WebViewBridgePackage.java b/android/src/main/java/com/github/alinz/reactnativewebviewbridge/WebViewBridgePackage.java index 425b537..cb61c80 100644 --- a/android/src/main/java/com/github/alinz/reactnativewebviewbridge/WebViewBridgePackage.java +++ b/android/src/main/java/com/github/alinz/reactnativewebviewbridge/WebViewBridgePackage.java @@ -9,13 +9,16 @@ import com.facebook.react.uimanager.ViewManager; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.function.Function; public class WebViewBridgePackage implements ReactPackage { private boolean debug; + Function callRPC; - public WebViewBridgePackage(boolean debug) { + public WebViewBridgePackage(boolean debug, Function callRPC) { this.debug = debug; + this.callRPC = callRPC; } @Override @@ -26,7 +29,7 @@ public class WebViewBridgePackage implements ReactPackage { @Override public List createViewManagers(ReactApplicationContext reactApplicationContext) { return Arrays.asList( - new WebViewBridgeManager(reactApplicationContext, this.debug) + new WebViewBridgeManager(reactApplicationContext, this.debug, this.callRPC) ); }