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

Tomaž Vajngerl tomaz.vajngerl at collabora.co.uk
Tue Mar 10 02:02:23 PDT 2015


 android/Bootstrap/src/org/libreoffice/kit/Document.java                               |    8 +--
 android/experimental/LOAndroid3/src/java/org/libreoffice/InvalidationHandler.java     |    4 +
 android/experimental/LOAndroid3/src/java/org/libreoffice/LOEvent.java                 |    1 
 android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitShell.java              |    4 +
 android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java             |   15 +++++-
 android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitTileProvider.java       |   23 ++++------
 android/experimental/LOAndroid3/src/java/org/libreoffice/LibreOfficeMainActivity.java |    4 -
 android/experimental/LOAndroid3/src/java/org/libreoffice/MockTileProvider.java        |    2 
 android/experimental/LOAndroid3/src/java/org/libreoffice/TileProvider.java            |    2 
 9 files changed, 40 insertions(+), 23 deletions(-)

New commits:
commit de6f87b12bcc6a74bf22c4d153fd6ce22df305da
Author: Tomaž Vajngerl <tomaz.vajngerl at collabora.co.uk>
Date:   Tue Mar 10 17:59:59 2015 +0900

    android: clicking on toolbar icon exits edit mode
    
    Change-Id: Idc8c94629bd7a23be1e3a13e88debc478d6ab880

diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/InvalidationHandler.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/InvalidationHandler.java
index 0f9b997..4c3a2ba 100644
--- a/android/experimental/LOAndroid3/src/java/org/libreoffice/InvalidationHandler.java
+++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/InvalidationHandler.java
@@ -315,6 +315,10 @@ public class InvalidationHandler implements Document.MessageCallback {
         mTextCursorLayer.showGraphicSelection();
     }
 
+    public OverlayState getCurrentState() {
+        return mState;
+    }
+
     public enum OverlayState {
         NONE,
         TRANSITION,
diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOEvent.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOEvent.java
index 18b821e..c162c22 100644
--- a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOEvent.java
+++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOEvent.java
@@ -23,6 +23,7 @@ public class LOEvent implements Comparable<LOEvent> {
     public static final int CHANGE_HANDLE_POSITION = 10;
     public static final int SWIPE_RIGHT = 11;
     public static final int SWIPE_LEFT = 12;
+    public static final int NAVIGATION_CLICK = 13;
 
     public final int mType;
     public int mPriority = 0;
diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitShell.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitShell.java
index 84123a5..6c2e921 100644
--- a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitShell.java
+++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitShell.java
@@ -142,4 +142,8 @@ public class LOKitShell {
     public static void sendChangeHandlePositionEvent(TextSelectionHandle.HandleType handleType, PointF documentCoordinate) {
         LOKitShell.sendEvent(new LOEvent(LOEvent.CHANGE_HANDLE_POSITION, handleType, documentCoordinate));
     }
+
+    public static void sendNavigationClickEvent() {
+        LOKitShell.sendEvent(new LOEvent(LOEvent.NAVIGATION_CLICK));
+    }
 }
diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java
index 3d36d93..a5fe244 100644
--- a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java
+++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java
@@ -213,6 +213,18 @@ public class LOKitThread extends Thread {
             case LOEvent.SWIPE_RIGHT:
                 onSwipeRight();
                 break;
+            case LOEvent.NAVIGATION_CLICK:
+                if (mInvalidationHandler.getCurrentState() == InvalidationHandler.OverlayState.NONE) {
+                    LOKitShell.getMainHandler().post(new Runnable() {
+                        @Override
+                        public void run() {
+                            LibreOfficeMainActivity.mAppContext.onBackPressed();
+                        }
+                    });
+                } else {
+                    mInvalidationHandler.changeStateTo(InvalidationHandler.OverlayState.NONE);
+                }
+                break;
         }
     }
 
diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/LibreOfficeMainActivity.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/LibreOfficeMainActivity.java
index cd69c1d..bf1a1b7 100644
--- a/android/experimental/LOAndroid3/src/java/org/libreoffice/LibreOfficeMainActivity.java
+++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/LibreOfficeMainActivity.java
@@ -126,8 +126,8 @@ public class LibreOfficeMainActivity extends ActionBarActivity {
 
         toolbar.setNavigationOnClickListener(new View.OnClickListener() {
             @Override
-            public void onClick(View v) {
-                onBackPressed();
+            public void onClick(View view) {
+                LOKitShell.sendNavigationClickEvent();
             }
         });
 
commit d1b0a0f69700090c907ee4a8a7d59a44e1e7f284
Author: Tomaž Vajngerl <tomaz.vajngerl at collabora.co.uk>
Date:   Tue Mar 10 17:44:10 2015 +0900

    android: use LOK_SETTEXTSELECTION_RESET as it is meant to be used
    
    Change-Id: I09f175a09c8b4c9468e2221274b17216b23b76ff

diff --git a/android/Bootstrap/src/org/libreoffice/kit/Document.java b/android/Bootstrap/src/org/libreoffice/kit/Document.java
index 07d4329..9ebfdfc 100644
--- a/android/Bootstrap/src/org/libreoffice/kit/Document.java
+++ b/android/Bootstrap/src/org/libreoffice/kit/Document.java
@@ -44,11 +44,11 @@ public class Document {
     public static final int CALLBACK_HYPERLINK_CLICKED = 7;
 
     /**
-     * Text selection types
+     * Set text selection types
      */
-    public static final int TEXT_SELECTION_START = 0;
-    public static final int TEXT_SELECTION_END = 1;
-    public static final int TEXT_SELECTION_RESET = 2;
+    public static final int SET_TEXT_SELECTION_START = 0;
+    public static final int SET_TEXT_SELECTION_END = 1;
+    public static final int SET_TEXT_SELECTION_RESET = 2;
 
     private final ByteBuffer handle;
     private MessageCallback messageCallback = null;
diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java
index d3918b2..3d36d93 100644
--- a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java
+++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java
@@ -218,8 +218,7 @@ public class LOKitThread extends Thread {
 
     private void changeHandlePosition(TextSelectionHandle.HandleType handleType, PointF documentCoordinate) {
         if (handleType == TextSelectionHandle.HandleType.MIDDLE) {
-            mTileProvider.mouseButtonDown(documentCoordinate, 1);
-            mTileProvider.mouseButtonUp(documentCoordinate, 1);
+            mTileProvider.setTextSelectionReset(documentCoordinate);
         } else if (handleType == TextSelectionHandle.HandleType.START) {
             mTileProvider.setTextSelectionStart(documentCoordinate);
         } else if (handleType == TextSelectionHandle.HandleType.END) {
diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitTileProvider.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitTileProvider.java
index 3a24120..eb8522c 100644
--- a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitTileProvider.java
+++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitTileProvider.java
@@ -2,7 +2,6 @@ package org.libreoffice;
 
 import android.graphics.Bitmap;
 import android.graphics.PointF;
-import android.graphics.RectF;
 import android.util.Log;
 import android.view.KeyEvent;
 
@@ -10,15 +9,11 @@ import org.libreoffice.kit.DirectBufferAllocator;
 import org.libreoffice.kit.Document;
 import org.libreoffice.kit.LibreOfficeKit;
 import org.libreoffice.kit.Office;
-import org.libreoffice.R;
 
-import org.mozilla.gecko.TextSelection;
-import org.mozilla.gecko.TextSelectionHandle;
 import org.mozilla.gecko.gfx.BufferedCairoImage;
 import org.mozilla.gecko.gfx.CairoImage;
 import org.mozilla.gecko.gfx.GeckoLayerClient;
 import org.mozilla.gecko.gfx.IntSize;
-import org.mozilla.gecko.gfx.LayerView;
 
 
 import java.nio.ByteBuffer;
@@ -364,23 +359,25 @@ public class LOKitTileProvider implements TileProvider {
         mouseButton(Document.MOUSE_BUTTON_UP, documentCoordinate, numberOfClicks);
     }
 
-    @Override
-    public void setTextSelectionStart(PointF documentCoordinate) {
+    private void setTextSelection(int type, PointF documentCoordinate) {
         int x = (int) pixelToTwip(documentCoordinate.x, mDPI);
         int y = (int) pixelToTwip(documentCoordinate.y, mDPI);
-        mDocument.setTextSelection(Document.TEXT_SELECTION_START, x, y);
+        mDocument.setTextSelection(type, x, y);
+    }
+
+    @Override
+    public void setTextSelectionStart(PointF documentCoordinate) {
+        setTextSelection(Document.SET_TEXT_SELECTION_START, documentCoordinate);
     }
 
     @Override
     public void setTextSelectionEnd(PointF documentCoordinate) {
-        int x = (int) pixelToTwip(documentCoordinate.x, mDPI);
-        int y = (int) pixelToTwip(documentCoordinate.y, mDPI);
-        mDocument.setTextSelection(Document.TEXT_SELECTION_END, x, y);
+        setTextSelection(Document.SET_TEXT_SELECTION_END, documentCoordinate);
     }
 
     @Override
-    public void setTextSelectionReset() {
-        mDocument.setTextSelection(Document.TEXT_SELECTION_RESET, 0, 0);
+    public void setTextSelectionReset(PointF documentCoordinate) {
+        setTextSelection(Document.SET_TEXT_SELECTION_RESET, documentCoordinate);
     }
 
     @Override
diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/MockTileProvider.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/MockTileProvider.java
index 8c34038..9ec55ad 100644
--- a/android/experimental/LOAndroid3/src/java/org/libreoffice/MockTileProvider.java
+++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/MockTileProvider.java
@@ -115,7 +115,7 @@ public class MockTileProvider implements TileProvider {
     }
 
     @Override
-    public void setTextSelectionReset() {
+    public void setTextSelectionReset(PointF documentCoordinate) {
 
     }
 
diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/TileProvider.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/TileProvider.java
index 29e64a8..128344f 100644
--- a/android/experimental/LOAndroid3/src/java/org/libreoffice/TileProvider.java
+++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/TileProvider.java
@@ -103,5 +103,5 @@ public interface TileProvider {
 
     void setTextSelectionEnd(PointF documentCoordinate);
 
-    void setTextSelectionReset();
+    void setTextSelectionReset(PointF documentCoordinate);
 }


More information about the Libreoffice-commits mailing list