diff options
author | Siqi Liu <me@siqi.fr> | 2015-04-13 16:23:32 +0200 |
---|---|---|
committer | Siqi Liu <me@siqi.fr> | 2015-04-13 16:23:32 +0200 |
commit | 0632f77ee8059f2d65ad72bf148da88901732dc2 (patch) | |
tree | 8717d2ebfc7af6b91499ec2c94792661122317bc /android | |
parent | cc54da22377feef44e1aa48a92d9b4c86eda7577 (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.java | 32 | ||||
-rw-r--r-- | android/experimental/LOAndroid3/src/java/org/libreoffice/ToolbarController.java | 8 |
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) { |