summaryrefslogtreecommitdiff
path: root/android
diff options
context:
space:
mode:
Diffstat (limited to 'android')
-rw-r--r--android/Bootstrap/src/org/libreoffice/kit/Document.java55
-rw-r--r--android/Bootstrap/src/org/libreoffice/kit/Office.java3
-rw-r--r--android/source/src/java/org/libreoffice/InvalidationHandler.java4
-rw-r--r--android/source/src/java/org/libreoffice/LOEvent.java13
-rw-r--r--android/source/src/java/org/libreoffice/LOKitThread.java4
-rw-r--r--android/source/src/java/org/libreoffice/LOKitTileProvider.java16
-rw-r--r--android/source/src/java/org/libreoffice/TileProvider.java2
7 files changed, 70 insertions, 27 deletions
diff --git a/android/Bootstrap/src/org/libreoffice/kit/Document.java b/android/Bootstrap/src/org/libreoffice/kit/Document.java
index a07785216e8b..4cc4ba345c04 100644
--- a/android/Bootstrap/src/org/libreoffice/kit/Document.java
+++ b/android/Bootstrap/src/org/libreoffice/kit/Document.java
@@ -12,12 +12,12 @@ package org.libreoffice.kit;
import java.nio.ByteBuffer;
public class Document {
- public static final int PART_MODE_DEFAULT = 0;
- public static final int PART_MODE_SLIDE = 1;
- public static final int PART_MODE_NOTES = 2;
- public static final int PART_MODE_SLIDENOTES = 3;
- public static final int PART_MODE_EMBEDDEDOBJ = 4;
+ public static final int PART_MODE_SLIDE = 0;
+ public static final int PART_MODE_NOTES = 1;
+ /**
+ * Document types
+ */
public static final int DOCTYPE_TEXT = 0;
public static final int DOCTYPE_SPREADSHEET = 1;
public static final int DOCTYPE_PRESENTATION = 2;
@@ -27,10 +27,15 @@ public class Document {
/**
* Mouse event types
*/
- public static final int MOUSE_BUTTON_DOWN = 0;
- public static final int MOUSE_BUTTON_UP = 1;
- public static final int MOUSE_MOVE = 2;
+ public static final int MOUSE_EVENT_BUTTON_DOWN = 0;
+ public static final int MOUSE_EVENT_BUTTON_UP = 1;
+ public static final int MOUSE_EVENT_MOVE = 2;
+ /**
+ * Key event types
+ */
+ public static final int KEY_EVENT_PRESS = 0;
+ public static final int KEY_EVENT_RELEASE = 1;
/**
* State change types
@@ -40,6 +45,11 @@ public class Document {
public static final int UNDERLINE = 2;
public static final int STRIKEOUT = 3;
+ public static final int ALIGN_LEFT= 4;
+ public static final int ALIGN_CENTER = 5;
+ public static final int ALIGN_RIGHT= 6;
+ public static final int ALIGN_JUSTIFY= 7;
+
/**
* Callback message types
*/
@@ -52,6 +62,13 @@ public class Document {
public static final int CALLBACK_GRAPHIC_SELECTION = 6;
public static final int CALLBACK_HYPERLINK_CLICKED = 7;
public static final int CALLBACK_STATE_CHANGED = 8;
+ public static final int CALLBACK_STATUS_INTICATOR_START = 9;
+ public static final int CALLBACK_STATUS_INTICATOR_SET_VALUE = 10;
+ public static final int CALLBACK_STATUS_INTICATOR_FINISH = 11;
+ public static final int CALLBACK_SEARCH_NOT_FOUND = 12;
+ public static final int CALLBACK_DOCUMENT_SIZE_CHANGED = 13;
+ public static final int CALLBACK_SET_PART = 14;
+ public static final int CALLBACK_SEARCH_RESULT_SELECTION = 15;
/**
* Set text selection types
@@ -66,6 +83,19 @@ public class Document {
public static final int SET_GRAPHIC_SELECTION_START = 0;
public static final int SET_GRAPHIC_SELECTION_END = 1;
+ /**
+ * Mouse button type
+ */
+ public static final int MOUSE_BUTTON_LEFT = 1;
+ public static final int MOUSE_BUTTON_MIDDLE = 2;
+ public static final int MOUSE_BUTTON_RIGHT = 4;
+
+ public static final int KEYBOARD_MODIFIER_NONE = 0x0000;
+ public static final int KEYBOARD_MODIFIER_SHIFT = 0x1000;
+ public static final int KEYBOARD_MODIFIER_MOD1 = 0x2000;
+ public static final int KEYBOARD_MODIFIER_MOD2 = 0x4000;
+ public static final int KEYBOARD_MODIFIER_MOD3 = 0x8000;
+
private final ByteBuffer handle;
private MessageCallback messageCallback = null;
@@ -105,6 +135,8 @@ public class Document {
public native void setPartMode(int partMode);
+ public native String getPartPageRectangles();
+
public native long getDocumentHeight();
public native long getDocumentWidth();
@@ -140,13 +172,14 @@ public class Document {
* @param y - y coordinate
* @param count - number of events
*/
- public native void postMouseEvent(int type, int x, int y, int count);
+ public native void postMouseEvent(int type, int x, int y, int count, int button, int modifier);
/**
* Post a .uno: command to LOK
* @param command - the command, like ".uno:Bold"
+ * @param arguments
*/
- public native void postUnoCommand(String command);
+ public native void postUnoCommand(String command, String arguments);
/**
* Change text selection.
@@ -169,6 +202,8 @@ public class Document {
*/
public native void resetSelection();
+ public native String getCommandValues(String command);
+
/**
* Callback to retrieve messages from LOK
*/
diff --git a/android/Bootstrap/src/org/libreoffice/kit/Office.java b/android/Bootstrap/src/org/libreoffice/kit/Office.java
index 86eda5cf6873..8c616d0e9ce2 100644
--- a/android/Bootstrap/src/org/libreoffice/kit/Office.java
+++ b/android/Bootstrap/src/org/libreoffice/kit/Office.java
@@ -12,9 +12,6 @@ package org.libreoffice.kit;
import java.nio.ByteBuffer;
public class Office {
- public static final int KEY_PRESS = 0;
- public static final int KEY_RELEASE = 1;
-
private ByteBuffer handle;
public Office(ByteBuffer handle) {
diff --git a/android/source/src/java/org/libreoffice/InvalidationHandler.java b/android/source/src/java/org/libreoffice/InvalidationHandler.java
index 32fe8530671f..8aec88ca3c42 100644
--- a/android/source/src/java/org/libreoffice/InvalidationHandler.java
+++ b/android/source/src/java/org/libreoffice/InvalidationHandler.java
@@ -208,7 +208,7 @@ public class InvalidationHandler implements Document.MessageCallback {
float newTop = moveToRect.top;
if (cursorRectangle.right < moveToRect.left || cursorRectangle.left < moveToRect.left) {
- newLeft = cursorRectangle.left - (moveToRect.width() * 0.1f);
+ newLeft = cursorRectangle.left - (moveToRect.width() * 0.1f);
} else if (cursorRectangle.right > moveToRect.right || cursorRectangle.left > moveToRect.right) {
newLeft = cursorRectangle.right - (moveToRect.width() * 0.9f);
}
@@ -306,6 +306,7 @@ public class InvalidationHandler implements Document.MessageCallback {
/**
* Trigger a transition to a new overlay state.
+ *
* @param next - new state to transition to
*/
public synchronized void changeStateTo(OverlayState next) {
@@ -314,6 +315,7 @@ public class InvalidationHandler implements Document.MessageCallback {
/**
* Executes a transition from old overlay state to a new overlay state.
+ *
* @param previous - old state
* @param next - new state
*/
diff --git a/android/source/src/java/org/libreoffice/LOEvent.java b/android/source/src/java/org/libreoffice/LOEvent.java
index 7067714fd1f6..215512136167 100644
--- a/android/source/src/java/org/libreoffice/LOEvent.java
+++ b/android/source/src/java/org/libreoffice/LOEvent.java
@@ -47,6 +47,7 @@ public class LOEvent implements Comparable<LOEvent> {
public KeyEvent mKeyEvent;
public RectF mInvalidationRect;
public SelectionHandle.HandleType mHandleType;
+ public String mValue;
public LOEvent(int type) {
mType = type;
@@ -58,10 +59,18 @@ public class LOEvent implements Comparable<LOEvent> {
mComposedTileLayer = composedTileLayer;
}
- public LOEvent(int type, String filename) {
+ public LOEvent(int type, String someString) {
mType = type;
mTypeString = "String";
- mString = filename;
+ mString = someString;
+ mValue = null;
+ }
+
+ public LOEvent(int type, String key, String value) {
+ mType = type;
+ mTypeString = "key / value";
+ mString = key;
+ mValue = value;
}
public LOEvent(int type, int partIndex) {
diff --git a/android/source/src/java/org/libreoffice/LOKitThread.java b/android/source/src/java/org/libreoffice/LOKitThread.java
index d87a152a74bf..a8f4d303293c 100644
--- a/android/source/src/java/org/libreoffice/LOKitThread.java
+++ b/android/source/src/java/org/libreoffice/LOKitThread.java
@@ -16,7 +16,7 @@ import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.LinkedBlockingQueue;
-/*
+/**
* Thread that communicates with LibreOffice through LibreOfficeKit JNI interface. The thread
* consumes events from other threads (mainly the UI thread) and acts accordingly.
*/
@@ -243,7 +243,7 @@ public class LOKitThread extends Thread {
mInvalidationHandler.changeStateTo(InvalidationHandler.OverlayState.NONE);
break;
case LOEvent.UNO_COMMAND:
- mTileProvider.postUnoCommand(event.mString);
+ mTileProvider.postUnoCommand(event.mString, event.mValue);
break;
}
}
diff --git a/android/source/src/java/org/libreoffice/LOKitTileProvider.java b/android/source/src/java/org/libreoffice/LOKitTileProvider.java
index 6b7759d4a90e..f859b7a1bc62 100644
--- a/android/source/src/java/org/libreoffice/LOKitTileProvider.java
+++ b/android/source/src/java/org/libreoffice/LOKitTileProvider.java
@@ -388,12 +388,12 @@ public class LOKitTileProvider implements TileProvider {
String keyString = keyEvent.getCharacters();
for (int i = 0; i < keyString.length(); i++) {
int codePoint = keyString.codePointAt(i);
- mDocument.postKeyEvent(Office.KEY_PRESS, codePoint, getKeyCode(keyEvent));
+ mDocument.postKeyEvent(Document.KEY_EVENT_PRESS, codePoint, getKeyCode(keyEvent));
}
} else if (keyEvent.getAction() == KeyEvent.ACTION_DOWN) {
- mDocument.postKeyEvent(Office.KEY_PRESS, getCharCode(keyEvent), getKeyCode(keyEvent));
+ mDocument.postKeyEvent(Document.KEY_EVENT_PRESS, getCharCode(keyEvent), getKeyCode(keyEvent));
} else if (keyEvent.getAction() == KeyEvent.ACTION_UP) {
- mDocument.postKeyEvent(Office.KEY_RELEASE, getCharCode(keyEvent), getKeyCode(keyEvent));
+ mDocument.postKeyEvent(Document.KEY_EVENT_RELEASE, getCharCode(keyEvent), getKeyCode(keyEvent));
}
}
@@ -401,7 +401,7 @@ public class LOKitTileProvider implements TileProvider {
int x = (int) pixelToTwip(inDocument.x, mDPI);
int y = (int) pixelToTwip(inDocument.y, mDPI);
- mDocument.postMouseEvent(type, x, y, numberOfClicks);
+ mDocument.postMouseEvent(type, x, y, numberOfClicks, Document.MOUSE_BUTTON_LEFT, Document.KEYBOARD_MODIFIER_NONE);
}
/**
@@ -409,7 +409,7 @@ public class LOKitTileProvider implements TileProvider {
*/
@Override
public void mouseButtonDown(PointF documentCoordinate, int numberOfClicks) {
- mouseButton(Document.MOUSE_BUTTON_DOWN, documentCoordinate, numberOfClicks);
+ mouseButton(Document.MOUSE_EVENT_BUTTON_DOWN, documentCoordinate, numberOfClicks);
}
/**
@@ -417,12 +417,12 @@ public class LOKitTileProvider implements TileProvider {
*/
@Override
public void mouseButtonUp(PointF documentCoordinate, int numberOfClicks) {
- mouseButton(Document.MOUSE_BUTTON_UP, documentCoordinate, numberOfClicks);
+ mouseButton(Document.MOUSE_EVENT_BUTTON_UP, documentCoordinate, numberOfClicks);
}
@Override
- public void postUnoCommand(String command) {
- mDocument.postUnoCommand(command);
+ public void postUnoCommand(String command, String arguments) {
+ mDocument.postUnoCommand(command, arguments);
}
private void setTextSelection(int type, PointF documentCoordinate) {
diff --git a/android/source/src/java/org/libreoffice/TileProvider.java b/android/source/src/java/org/libreoffice/TileProvider.java
index cf9173a8d1bd..3104172ef5cf 100644
--- a/android/source/src/java/org/libreoffice/TileProvider.java
+++ b/android/source/src/java/org/libreoffice/TileProvider.java
@@ -114,7 +114,7 @@ public interface TileProvider {
*
* @param command - the .uno: command, like ".uno:Bold"
*/
- void postUnoCommand(String command);
+ void postUnoCommand(String command, String arguments);
/**
* Send text selection start coordinate.