[Libreoffice-commits] core.git: Branch 'feature/tiled-editing' - 6 commits - android/Bootstrap android/experimental

Tomaž Vajngerl tomaz.vajngerl at collabora.co.uk
Wed Feb 18 18:56:36 PST 2015


 android/Bootstrap/src/org/libreoffice/kit/DirectBufferAllocator.java            |    2 
 android/Bootstrap/src/org/libreoffice/kit/Document.java                         |    2 
 android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitShell.java        |    2 
 android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java       |   11 +
 android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitTileProvider.java |   66 +++++-----
 android/experimental/LOAndroid3/src/java/org/libreoffice/MockTileProvider.java  |    4 
 android/experimental/LOAndroid3/src/java/org/libreoffice/TileProvider.java      |   13 +
 7 files changed, 58 insertions(+), 42 deletions(-)

New commits:
commit 693c7b1992c5783a3b9387bbc9919561a97d6c9b
Author: Tomaž Vajngerl <tomaz.vajngerl at collabora.co.uk>
Date:   Thu Feb 19 11:50:07 2015 +0900

    android: can't compare strings with == in Java
    
    Change-Id: I5cf4d5db42f32b7c073e5899a6c90a3354dcb3c5

diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java
index 35b0063..3d71423 100644
--- a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java
+++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java
@@ -212,7 +212,7 @@ public class LOKitThread extends Thread implements TileProvider.TileInvalidation
         if (mTileProvider == null) {
             return;
         }
-        if (keyEventType == "KeyPress") {
+        if (keyEventType.equals("KeyPress")) {
             mTileProvider.keyPress(keyEvent);
         } else if (keyEventType.equals("KeyRelease")) {
             mTileProvider.keyRelease(keyEvent);
commit 59a8317d3c383fb614e0360892cc94e0eae613f1
Author: Tomaž Vajngerl <tomaz.vajngerl at collabora.co.uk>
Date:   Thu Feb 19 11:43:08 2015 +0900

    anndroid: bind "LongPress" to mouse double click
    
    Change-Id: Iba56deccf3c342ac82ca6cf78e09caf323f4a14d

diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java
index e06107d..35b0063 100644
--- a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java
+++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java
@@ -229,8 +229,13 @@ public class LOKitThread extends Thread implements TileProvider.TileInvalidation
         if (mTileProvider == null) {
             return;
         }
-        LibreOfficeMainActivity.mAppContext.showSoftKeyboard();
-        mTileProvider.mouseButtonDown(mDocumentTouchCoordinate);
+        if (touchType.equals("LongPress")) {
+            LibreOfficeMainActivity.mAppContext.hideSoftKeyboard();
+            mTileProvider.mouseButtonDown(mDocumentTouchCoordinate, 2);
+        } else { // "SingleTap"
+            LibreOfficeMainActivity.mAppContext.showSoftKeyboard();
+            mTileProvider.mouseButtonDown(mDocumentTouchCoordinate, 1);
+        }
     }
 
     private void createThumbnail(final ThumbnailCreator.ThumbnailCreationTask task) {
diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitTileProvider.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitTileProvider.java
index 2eee22a..4e5a842 100644
--- a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitTileProvider.java
+++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitTileProvider.java
@@ -323,21 +323,21 @@ public class LOKitTileProvider implements TileProvider, Document.MessageCallback
         mOffice.postKeyEvent(Office.KEY_RELEASE, getCharCode(keyEvent), getKeyCode(keyEvent));
     }
 
-    private void mouseButton(int type, PointF inDocument) {
+    private void mouseButton(int type, PointF inDocument, int numberOfClicks) {
         int x = (int) pixelToTwip(inDocument.x, mDPI);
         int y = (int) pixelToTwip(inDocument.y, mDPI);
 
-        mDocument.postMouseEvent(type, x, y, 1);
+        mDocument.postMouseEvent(type, x, y, numberOfClicks);
     }
 
     @Override
-    public void mouseButtonDown(PointF inDocument) {
-        mouseButton(Document.MOUSE_BUTTON_DOWN, inDocument);
+    public void mouseButtonDown(PointF documentCoordinate, int numberOfClicks) {
+        mouseButton(Document.MOUSE_BUTTON_DOWN, documentCoordinate, numberOfClicks);
     }
 
     @Override
-    public void mouseButtonUp(PointF inDocument) {
-        mouseButton(Document.MOUSE_BUTTON_UP, inDocument);
+    public void mouseButtonUp(PointF documentCoordinate, int numberOfClicks) {
+        mouseButton(Document.MOUSE_BUTTON_UP, documentCoordinate, numberOfClicks);
     }
 
     @Override
diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/MockTileProvider.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/MockTileProvider.java
index 34347bb..ed1e069 100644
--- a/android/experimental/LOAndroid3/src/java/org/libreoffice/MockTileProvider.java
+++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/MockTileProvider.java
@@ -103,12 +103,12 @@ public class MockTileProvider implements TileProvider {
     }
 
     @Override
-    public void mouseButtonDown(PointF inDocument) {
+    public void mouseButtonDown(PointF documentCoordinate, int numberOfClicks) {
 
     }
 
     @Override
-    public void mouseButtonUp(PointF inDocument) {
+    public void mouseButtonUp(PointF documentCoordinate, int numberOfClicks) {
 
     }
 
diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/TileProvider.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/TileProvider.java
index c983c62..0050d1e 100644
--- a/android/experimental/LOAndroid3/src/java/org/libreoffice/TileProvider.java
+++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/TileProvider.java
@@ -31,12 +31,14 @@ public interface TileProvider {
 
     /**
      * Change the document part to the one specified by the partIndex input parameter.
+     *
      * @param partIndex - part index to change to
      */
     void changePart(int partIndex);
 
     /**
      * Get the current document part number.
+     *
      * @return
      */
     int getCurrentPartNumber();
@@ -68,27 +70,33 @@ public interface TileProvider {
 
     /**
      * Trigger a key press.
+     *
      * @param keyEvent - contains information about key event
      */
     void keyPress(KeyEvent keyEvent);
 
     /**
      * Trigger a key release.
+     *
      * @param keyEvent - contains information about key event
      */
     void keyRelease(KeyEvent keyEvent);
 
     /**
      * Trigger a mouse button down event.
+     *
      * @param documentCoordinate - coordinate relative to the document where the mouse button should be triggered
+     * @param numberOfClicks     - number of clicks (1 - single click, 2 - double click)
      */
-    void mouseButtonDown(PointF documentCoordinate);
+    void mouseButtonDown(PointF documentCoordinate, int numberOfClicks);
 
     /**
      * Trigger a mouse button up event.
+     *
      * @param documentCoordinate - coordinate relative to the document where the mouse button should be triggered
+     * @param numberOfClicks     - number of clicks (1 - single click, 2 - double click)
      */
-    void mouseButtonUp(PointF documentCoordinate);
+    void mouseButtonUp(PointF documentCoordinate, int numberOfClicks);
 
     /**
      * Callback to retrieve invalidation calls
@@ -96,6 +104,7 @@ public interface TileProvider {
     public interface TileInvalidationCallback {
         /**
          * Invoked when a region is invalidated.
+         *
          * @param rect area in pixels which was invalidated and needs to be redrawn
          */
         void invalidate(RectF rect);
commit c27a70c5ffbd159fa2a322d68d81ec4f06504c1b
Author: Tomaž Vajngerl <tomaz.vajngerl at collabora.co.uk>
Date:   Thu Feb 19 11:37:16 2015 +0900

    andorid: format the code on LOKitTileProvider
    
    Change-Id: I289cca3835350a00dbefa4cd8b35ae065477a683

diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitTileProvider.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitTileProvider.java
index fec99cd..2eee22a 100644
--- a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitTileProvider.java
+++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitTileProvider.java
@@ -75,8 +75,7 @@ public class LOKitTileProvider implements TileProvider, Document.MessageCallback
         if (checkDocument()) {
             postLoad();
             mIsReady = true;
-        }
-        else {
+        } else {
             mIsReady = false;
         }
     }
@@ -305,8 +304,7 @@ public class LOKitTileProvider implements TileProvider, Document.MessageCallback
      * control keys).
      */
     private int getKeyCode(KeyEvent keyEvent) {
-        switch (keyEvent.getKeyCode())
-        {
+        switch (keyEvent.getKeyCode()) {
             case KeyEvent.KEYCODE_DEL:
                 return com.sun.star.awt.Key.BACKSPACE;
             case KeyEvent.KEYCODE_ENTER:
commit 2a9ebe52ecdec627fe6c95574285d3255ea944ee
Author: Tomaž Vajngerl <tomaz.vajngerl at collabora.co.uk>
Date:   Thu Feb 19 11:35:21 2015 +0900

    android: make invalidations more readable - extract to own methods
    
    Change-Id: I676475c028d446ff5f31a11990a09da54245f9ef

diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitTileProvider.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitTileProvider.java
index 8e7c4f6..fec99cd 100644
--- a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitTileProvider.java
+++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitTileProvider.java
@@ -398,28 +398,36 @@ public class LOKitTileProvider implements TileProvider, Document.MessageCallback
         }
 
         switch (signalNumber) {
-            case Document.CALLBACK_INVALIDATE_TILES: {
-                RectF rect = convertCallbackMessageStringToRectF(payload);
-                if (rect != null) {
-                    tileInvalidationCallback.invalidate(rect);
-                }
+            case Document.CALLBACK_INVALIDATE_TILES:
+                invalidateTiles(payload);
                 break;
-            }
-            case Document.CALLBACK_INVALIDATE_VISIBLE_CURSOR: {
-                Log.i(LOGTAG, "Invalidate visible cursor: " + payload);
-                RectF rect = convertCallbackMessageStringToRectF(payload);
-                if (rect != null) {
-                    RectF underSelection = new RectF(rect.centerX(), rect.bottom, rect.centerX(), rect.bottom);
-                    TextSelection textSelection = LibreOfficeMainActivity.mAppContext.getTextSelection();
-                    textSelection.positionHandle(TextSelectionHandle.HandleType.MIDDLE, underSelection);
-                    textSelection.showHandle(TextSelectionHandle.HandleType.MIDDLE);
-
-                    TextCursorLayer textCursorLayer = LibreOfficeMainActivity.mAppContext.getTextCursorLayer();
-                    textCursorLayer.positionCursor(rect);
-                    textCursorLayer.showCursor();
-                }
+            case Document.CALLBACK_INVALIDATE_VISIBLE_CURSOR:
+                invalidateCursor(payload);
                 break;
-            }
+        }
+    }
+
+    private void invalidateCursor(String payload) {
+        RectF rect = convertCallbackMessageStringToRectF(payload);
+        if (rect != null) {
+            RectF underSelection = new RectF(rect.centerX(), rect.bottom, rect.centerX(), rect.bottom);
+            TextSelection textSelection = LibreOfficeMainActivity.mAppContext.getTextSelection();
+            textSelection.positionHandle(TextSelectionHandle.HandleType.MIDDLE, underSelection);
+            textSelection.showHandle(TextSelectionHandle.HandleType.MIDDLE);
+
+            TextCursorLayer textCursorLayer = LibreOfficeMainActivity.mAppContext.getTextCursorLayer();
+            textCursorLayer.positionCursor(rect);
+            textCursorLayer.showCursor();
+        }
+    }
+
+    private void invalidateTiles(String payload) {
+        if (tileInvalidationCallback == null) {
+            return;
+        }
+        RectF rect = convertCallbackMessageStringToRectF(payload);
+        if (rect != null) {
+            tileInvalidationCallback.invalidate(rect);
         }
     }
 }
commit d70fe46c740fd9b018525effefb47442f5887373
Author: Tomaž Vajngerl <tomaz.vajngerl at collabora.co.uk>
Date:   Thu Feb 19 11:32:31 2015 +0900

    android: don't hardcode touch type
    
    Change-Id: Ie64df7832daa002daa912c26b3c6f9f2497e0348

diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitShell.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitShell.java
index a829579..ab25078 100644
--- a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitShell.java
+++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitShell.java
@@ -86,7 +86,7 @@ public class LOKitShell {
      * Send touch event to LOKitThread.
      */
     public static void sentTouchEvent(String touchType, MotionEvent motionEvent, PointF pointF) {
-        LOKitShell.sendEvent(new LOEvent(LOEvent.TOUCH, "SingleTap", motionEvent, pointF));
+        LOKitShell.sendEvent(new LOEvent(LOEvent.TOUCH, touchType, motionEvent, pointF));
     }
 
     /**
commit 0a1da56d0b22574efd4791c912dc65e1bea7bcce
Author: Tomaž Vajngerl <tomaz.vajngerl at collabora.co.uk>
Date:   Thu Feb 19 11:27:57 2015 +0900

    android: organise imports
    
    Change-Id: Ie8178e34698ba686e899ddd8e4f8775081fc9d83

diff --git a/android/Bootstrap/src/org/libreoffice/kit/DirectBufferAllocator.java b/android/Bootstrap/src/org/libreoffice/kit/DirectBufferAllocator.java
index 670e397..de90303 100644
--- a/android/Bootstrap/src/org/libreoffice/kit/DirectBufferAllocator.java
+++ b/android/Bootstrap/src/org/libreoffice/kit/DirectBufferAllocator.java
@@ -11,8 +11,6 @@ package org.libreoffice.kit;
 // https://code.google.com/p/android/issues/detail?id=16941
 //
 
-import android.util.Log;
-
 import java.nio.ByteBuffer;
 
 public final class DirectBufferAllocator {
diff --git a/android/Bootstrap/src/org/libreoffice/kit/Document.java b/android/Bootstrap/src/org/libreoffice/kit/Document.java
index ca2f38c..f410693 100644
--- a/android/Bootstrap/src/org/libreoffice/kit/Document.java
+++ b/android/Bootstrap/src/org/libreoffice/kit/Document.java
@@ -9,8 +9,6 @@
 
 package org.libreoffice.kit;
 
-import android.util.Log;
-
 import java.nio.ByteBuffer;
 
 public class Document {


More information about the Libreoffice-commits mailing list