summaryrefslogtreecommitdiff
path: root/android
diff options
context:
space:
mode:
authorSiqi Liu <me@siqi.fr>2015-04-13 16:23:32 +0200
committerSiqi Liu <me@siqi.fr>2015-04-13 16:23:32 +0200
commit0632f77ee8059f2d65ad72bf148da88901732dc2 (patch)
tree8717d2ebfc7af6b91499ec2c94792661122317bc /android
parentcc54da22377feef44e1aa48a92d9b4c86eda7577 (diff)
LOK_STATE_CHANGED callback implemented with sfx events interception.
Diffstat (limited to 'android')
-rw-r--r--android/experimental/LOAndroid3/src/java/org/libreoffice/InvalidationHandler.java32
-rw-r--r--android/experimental/LOAndroid3/src/java/org/libreoffice/ToolbarController.java8
2 files changed, 27 insertions, 13 deletions
diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/InvalidationHandler.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/InvalidationHandler.java
index 385fab5123ba..26ab856be1fd 100644
--- a/android/experimental/LOAndroid3/src/java/org/libreoffice/InvalidationHandler.java
+++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/InvalidationHandler.java
@@ -4,6 +4,7 @@ import android.content.Intent;
import android.graphics.PointF;
import android.graphics.RectF;
import android.net.Uri;
+import android.util.Log;
import org.libreoffice.canvas.SelectionHandle;
import org.libreoffice.kit.Document;
@@ -73,19 +74,26 @@ public class InvalidationHandler implements Document.MessageCallback {
LibreOfficeMainActivity.mAppContext.startActivity(urlIntent);
break;
case Document.CALLBACK_STATE_CHANGED:
- Log.d("Document.CALLBACK_STATE_CHANGED: " + payload);
- String[] parts = payload.split(":");
- boolean pressed = Boolean.parseBoolean(parts[1]);
- if (parts[0].equals("Bold")) {
- LOKitShell.getToolbarController().onToggleStateChanged(Document.BOLD, pressed);
- } else if (parts[0].equals("Italic")) {
- LOKitShell.getToolbarController().onToggleStateChanged(Document.ITALIC, pressed);
- } else if (parts[0].equals("Underline")) {
- LOKitShell.getToolbarController().onToggleStateChanged(Document.UNDERLINE, pressed);
- } else if (parts[0].equals("Strikeout")) {
- LOKitShell.getToolbarController().onToggleStateChanged(Document.STRIKEOUT, pressed);
- }
+ stateChanged(payload);
break;
+ default:
+ Log.d(LOGTAG, "LOK_CALLBACK uncatched: " + messageID + " : " + payload);
+ }
+ }
+
+ private void stateChanged(String payload) {
+ String[] parts = payload.split("=");
+ boolean pressed = Boolean.parseBoolean(parts[1]);
+ if (parts[0].equals(".uno:Bold")) {
+ LOKitShell.getToolbarController().onToggleStateChanged(Document.BOLD, pressed);
+ } else if (parts[0].equals(".uno:Italic")) {
+ LOKitShell.getToolbarController().onToggleStateChanged(Document.ITALIC, pressed);
+ } else if (parts[0].equals(".uno:Underline")) {
+ LOKitShell.getToolbarController().onToggleStateChanged(Document.UNDERLINE, pressed);
+ } else if (parts[0].equals(".uno:StrikeOut")) {
+ LOKitShell.getToolbarController().onToggleStateChanged(Document.STRIKEOUT, pressed);
+ } else {
+ Log.d(LOGTAG, "LOK_CALLBACK_STATE_CHANGED type uncatched: " + payload);
}
}
diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/ToolbarController.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/ToolbarController.java
index 34eff3fc3d9c..1201b40bafa4 100644
--- a/android/experimental/LOAndroid3/src/java/org/libreoffice/ToolbarController.java
+++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/ToolbarController.java
@@ -72,7 +72,13 @@ public class ToolbarController {
icon = ImageUtils.bitmapToPressed(icon);
}
- menuItem.setIcon(new BitmapDrawable(mContext.getResources(), icon));
+ final MenuItem fMenuItem = menuItem;
+ final Bitmap fIcon = icon;
+ LOKitShell.getMainHandler().post(new Runnable() {
+ public void run() {
+ fMenuItem.setIcon(new BitmapDrawable(mContext.getResources(), fIcon));
+ }
+ });
}
public void setOptionMenu(Menu menu) {