From de4f4f1de5005b6e9a3a8a9d7376e7f3602d85af Mon Sep 17 00:00:00 2001 From: Hussein Kasem Date: Fri, 2 Sep 2016 17:28:19 +0200 Subject: [PATCH] Java code to be called from C sample --- android/src/org/pEp/jniadapter/Sync.java | 21 ++++++++++++++++ src/org/pEp/jniadapter/AbstractEngine.java | 28 ++++++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 android/src/org/pEp/jniadapter/Sync.java diff --git a/android/src/org/pEp/jniadapter/Sync.java b/android/src/org/pEp/jniadapter/Sync.java new file mode 100644 index 0000000..dc879e3 --- /dev/null +++ b/android/src/org/pEp/jniadapter/Sync.java @@ -0,0 +1,21 @@ +package org.pEp.jniadapter; + +import org.pEp.jniadapter.Identity; +import org.pEp.jniadapter.Message; +import org.pEp.jniadapter.pEpException; + +/** + * Created by huss on 02/09/16. + */ + +public interface Sync { + + interface MessageToSendCallback { + void messageToSend(Message message); + } + + interface showHandshakeCallback { + void showHandshake(Identity myself, Identity partner); + } + +} diff --git a/src/org/pEp/jniadapter/AbstractEngine.java b/src/org/pEp/jniadapter/AbstractEngine.java index 71c4db9..6de65eb 100644 --- a/src/org/pEp/jniadapter/AbstractEngine.java +++ b/src/org/pEp/jniadapter/AbstractEngine.java @@ -10,6 +10,9 @@ abstract class AbstractEngine implements AutoCloseable { System.loadLibrary("pEpJNI"); } + + private Sync.MessageToSendCallback messageToSendCallback; + private Sync.showHandshakeCallback showHandshakeCallback; private native void init() throws pEpException; private native void release(); @@ -143,5 +146,30 @@ abstract class AbstractEngine implements AutoCloseable { return result; } + + public void setMessageToSendCallback(Sync.MessageToSendCallback messageToSendCallback) { + this.messageToSendCallback = messageToSendCallback; + } + + public void setShowHandshakeCallback(Sync.showHandshakeCallback showHandshakeCallback) { + this.showHandshakeCallback = showHandshakeCallback; + } + + //Call From C is not a good name only for sample purposes + public void callFrom_C_ShowHandshake(Identity myself, Identity partner) { + if (showHandshakeCallback != null) { + showHandshakeCallback.showHandshake(myself, partner); + } else { + throw new RuntimeException("Callback not set"); + } + } + + public void callFrom_C_MessageToSend (Message message) { + if (messageToSendCallback != null) { + messageToSendCallback.messageToSend(message); + } else { + throw new RuntimeException("Callback not set"); + } + } }