use RCTDeviceEventEmitter to send events to javascript; implements #195
Former-commit-id: 82bc347735
This commit is contained in:
parent
9253b788ea
commit
d4961e1416
|
@ -139,7 +139,7 @@ dependencies {
|
||||||
compile project(':react-native-image-crop-picker')
|
compile project(':react-native-image-crop-picker')
|
||||||
compile project(':react-native-webview-bridge')
|
compile project(':react-native-webview-bridge')
|
||||||
//compile(name:'statusgo-android-16', ext:'aar')
|
//compile(name:'statusgo-android-16', ext:'aar')
|
||||||
compile(group: 'status-im', name: 'status-go', version: '0.1.0-574f67', ext: 'aar')
|
compile(group: 'status-im', name: 'status-go', version: '0.1.0-574f68-service', ext: 'aar')
|
||||||
|
|
||||||
compile fileTree(dir: "node_modules/realm/android/libs", include: ["*.jar"])
|
compile fileTree(dir: "node_modules/realm/android/libs", include: ["*.jar"])
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,6 +5,7 @@ import android.os.Bundle;
|
||||||
import android.os.Message;
|
import android.os.Message;
|
||||||
import android.os.RemoteException;
|
import android.os.RemoteException;
|
||||||
import com.facebook.react.bridge.*;
|
import com.facebook.react.bridge.*;
|
||||||
|
import com.facebook.react.modules.core.DeviceEventManagerModule;
|
||||||
import com.statusim.geth.service.ConnectorHandler;
|
import com.statusim.geth.service.ConnectorHandler;
|
||||||
import com.statusim.geth.service.GethConnector;
|
import com.statusim.geth.service.GethConnector;
|
||||||
import com.statusim.geth.service.GethMessages;
|
import com.statusim.geth.service.GethMessages;
|
||||||
|
@ -113,6 +114,11 @@ class GethModule extends ReactContextBaseJavaModule implements LifecycleEventLis
|
||||||
callback.invoke(result);
|
callback.invoke(result);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case GethMessages.MSG_GETH_EVENT:
|
||||||
|
String event = data.getString("event");
|
||||||
|
WritableMap params = Arguments.createMap();
|
||||||
|
params.putString("jsonEvent", event);
|
||||||
|
getReactApplicationContext().getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class).emit("gethEvent", params);
|
||||||
default:
|
default:
|
||||||
isClaimed = false;
|
isClaimed = false;
|
||||||
}
|
}
|
||||||
|
@ -233,21 +239,4 @@ class GethModule extends ReactContextBaseJavaModule implements LifecycleEventLis
|
||||||
|
|
||||||
geth.completeTransaction(callbackIdentifier, hash, password);
|
geth.completeTransaction(callbackIdentifier, hash, password);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Callback signalEventCallback;
|
|
||||||
|
|
||||||
//todo: move this method to GethService
|
|
||||||
public static void signalEvent(String jsonEvent) {
|
|
||||||
Log.d(TAG, "Signal event: " + jsonEvent);
|
|
||||||
if(signalEventCallback != null) {
|
|
||||||
signalEventCallback.invoke(jsonEvent);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@ReactMethod
|
|
||||||
public void registerSignalEventCallback(Callback callback) {
|
|
||||||
Log.d(TAG, "registerSignalEventCallback");
|
|
||||||
signalEventCallback = callback;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -63,4 +63,8 @@ public class GethMessages {
|
||||||
*/
|
*/
|
||||||
public static final int MSG_TRANSACTION_COMPLETED = 11;
|
public static final int MSG_TRANSACTION_COMPLETED = 11;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Geth event
|
||||||
|
*/
|
||||||
|
public static final int MSG_GETH_EVENT = 12;
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,6 +21,8 @@ public class GethService extends Service {
|
||||||
|
|
||||||
private static String dataFolder;
|
private static String dataFolder;
|
||||||
|
|
||||||
|
private static Messenger applicationMessenger = null;
|
||||||
|
|
||||||
private static class IncomingHandler extends Handler {
|
private static class IncomingHandler extends Handler {
|
||||||
|
|
||||||
private final WeakReference<GethService> service;
|
private final WeakReference<GethService> service;
|
||||||
|
@ -49,7 +51,10 @@ public class GethService extends Service {
|
||||||
Log.d(TAG, "Signal event: " + jsonEvent);
|
Log.d(TAG, "Signal event: " + jsonEvent);
|
||||||
Bundle replyData = new Bundle();
|
Bundle replyData = new Bundle();
|
||||||
replyData.putString("event", jsonEvent);
|
replyData.putString("event", jsonEvent);
|
||||||
//createAndSendReply(message, GethMessages.MSG_SIGNAL_EVENT, replyData);
|
|
||||||
|
Message replyMessage = Message.obtain(null, GethMessages.MSG_GETH_EVENT, 0, 0, null);
|
||||||
|
replyMessage.setData(replyData);
|
||||||
|
sendReply(applicationMessenger, replyMessage);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
|
@ -221,6 +226,7 @@ public class GethService extends Service {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void login(Message message) {
|
private void login(Message message) {
|
||||||
|
applicationMessenger = message.replyTo;
|
||||||
Bundle data = message.getData();
|
Bundle data = message.getData();
|
||||||
String address = data.getString("address");
|
String address = data.getString("address");
|
||||||
String password = data.getString("password");
|
String password = data.getString("password");
|
||||||
|
@ -230,6 +236,9 @@ public class GethService extends Service {
|
||||||
Bundle replyData = new Bundle();
|
Bundle replyData = new Bundle();
|
||||||
replyData.putString("result", result);
|
replyData.putString("result", result);
|
||||||
createAndSendReply(message, GethMessages.MSG_LOGGED_IN, replyData);
|
createAndSendReply(message, GethMessages.MSG_LOGGED_IN, replyData);
|
||||||
|
|
||||||
|
// Test signalEvent
|
||||||
|
//signalEvent("{ \"type\": \"test\", \"event\": \"test event\" }");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void completeTransaction(Message message){
|
private void completeTransaction(Message message){
|
||||||
|
@ -271,9 +280,7 @@ public class GethService extends Service {
|
||||||
private static void sendReply(Messenger messenger, Message message) {
|
private static void sendReply(Messenger messenger, Message message) {
|
||||||
try {
|
try {
|
||||||
messenger.send(message);
|
messenger.send(message);
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
|
||||||
Log.e(TAG, "Exception sending message id: " + message.what, e);
|
Log.e(TAG, "Exception sending message id: " + message.what, e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,14 +6,8 @@
|
||||||
(when (exists? (.-NativeModules r/react-native))
|
(when (exists? (.-NativeModules r/react-native))
|
||||||
(.-Geth (.-NativeModules r/react-native))))
|
(.-Geth (.-NativeModules r/react-native))))
|
||||||
|
|
||||||
(defn register-signal-callback []
|
(.addListener r/device-event-emitter "gethEvent"
|
||||||
(when geth
|
#(dispatch [:signal-event (.-jsonEvent %)]))
|
||||||
(.registerSignalEventCallback
|
|
||||||
geth
|
|
||||||
#(do (dispatch [:signal-event %])
|
|
||||||
(register-signal-callback)))))
|
|
||||||
|
|
||||||
(register-signal-callback)
|
|
||||||
|
|
||||||
(defn start-node [on-result on-already-running]
|
(defn start-node [on-result on-already-running]
|
||||||
(when geth
|
(when geth
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
|
|
||||||
(def react-native (u/require "react-native"))
|
(def react-native (u/require "react-native"))
|
||||||
(def native-modules (.-NativeModules react-native))
|
(def native-modules (.-NativeModules react-native))
|
||||||
|
(def device-event-emitter (.-DeviceEventEmitter react-native))
|
||||||
(def geth (.-Geth native-modules))
|
(def geth (.-Geth native-modules))
|
||||||
(def react-native-dialogs (u/require "react-native-dialogs"))
|
(def react-native-dialogs (u/require "react-native-dialogs"))
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue