diff options
Diffstat (limited to 'android/Bootstrap/src/org/libreoffice/kit/Office.java')
-rw-r--r-- | android/Bootstrap/src/org/libreoffice/kit/Office.java | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/android/Bootstrap/src/org/libreoffice/kit/Office.java b/android/Bootstrap/src/org/libreoffice/kit/Office.java index 8c616d0e9ce2..25c838ffb2e4 100644 --- a/android/Bootstrap/src/org/libreoffice/kit/Office.java +++ b/android/Bootstrap/src/org/libreoffice/kit/Office.java @@ -13,11 +13,18 @@ import java.nio.ByteBuffer; public class Office { private ByteBuffer handle; + private MessageCallback messageCallback = null; public Office(ByteBuffer handle) { this.handle = handle; + bindMessageCallback(); } + /** + * Bind the signal callback in LOK. + */ + private native void bindMessageCallback(); + public native String getError(); private native ByteBuffer documentLoadNative(String url); @@ -33,4 +40,33 @@ public class Office { public native void destroy(); public native void destroyAndExit(); + public native void setDocumentPassword(String url, String pwd); + public native void setOptionalFeatures(long options); + + public void setMessageCallback(MessageCallback messageCallback) { + this.messageCallback = messageCallback; + } + + /** + * Callback triggered through JNI to indicate that a new signal + * from LibreOfficeKit was retrieved. + */ + private void messageRetrievedLOKit(int signalNumber, String payload) { + if (messageCallback != null) { + messageCallback.messageRetrieved(signalNumber, payload); + } + + } + + /** + * Callback to retrieve messages from LOK + */ + public interface MessageCallback { + /** + * Invoked when a message is retrieved from LOK + * @param signalNumber - signal type / number + * @param payload - retrieved for the signal + */ + void messageRetrieved(int signalNumber, String payload); + } } |