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

Tomaž Vajngerl tomaz.vajngerl at collabora.co.uk
Mon Mar 16 22:41:44 PDT 2015


 android/experimental/LOAndroid3/src/java/org/libreoffice/InvalidationHandler.java          |   51 ++++++
 android/experimental/LOAndroid3/src/java/org/libreoffice/LOEvent.java                      |    3 
 android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitInputConnectionHandler.java  |   18 ++
 android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java                  |   49 ++++++
 android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitTileProvider.java            |   74 +++++++++-
 android/experimental/LOAndroid3/src/java/org/libreoffice/LibreOfficeMainActivity.java      |    3 
 android/experimental/LOAndroid3/src/java/org/libreoffice/TextCursorLayer.java              |   30 ++++
 android/experimental/LOAndroid3/src/java/org/libreoffice/TileIdentifier.java               |   12 +
 android/experimental/LOAndroid3/src/java/org/libreoffice/TileProvider.java                 |   15 ++
 android/experimental/LOAndroid3/src/java/org/libreoffice/TileProviderFactory.java          |    3 
 android/experimental/LOAndroid3/src/java/org/libreoffice/ToolbarController.java            |   11 +
 android/experimental/LOAndroid3/src/java/org/mozilla/gecko/TextSelection.java              |   23 ++-
 android/experimental/LOAndroid3/src/java/org/mozilla/gecko/TextSelectionHandle.java        |    3 
 android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/RenderControllerThread.java |    4 
 14 files changed, 294 insertions(+), 5 deletions(-)

New commits:
commit c184c0c3c1e399a309cbb8cfa333e133d48a44c1
Author: Tomaž Vajngerl <tomaz.vajngerl at collabora.co.uk>
Date:   Tue Mar 17 14:38:49 2015 +0900

    android: add comment to many classes and methods
    
    Change-Id: I49d9bd7c702c260ea66ef211edbaf5e106264bb6

diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/InvalidationHandler.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/InvalidationHandler.java
index d94c93a..6bbe110 100644
--- a/android/experimental/LOAndroid3/src/java/org/libreoffice/InvalidationHandler.java
+++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/InvalidationHandler.java
@@ -29,6 +29,10 @@ public class InvalidationHandler implements Document.MessageCallback {
         mState = OverlayState.NONE;
     }
 
+    /**
+     * Sets the tile provider, without this the
+     * @param tileProvider
+     */
     public void setTileProvider(TileProvider tileProvider) {
         mTileProvider = tileProvider;
     }
@@ -244,10 +248,19 @@ 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) {
         changeState(mState, next);
     }
 
+    /**
+     * Executes a transition from old overlay state to a new overlay state.
+     * @param previous - old state
+     * @param next - new state
+     */
     private synchronized void changeState(OverlayState previous, OverlayState next) {
         mState = next;
         handleGeneralChangeState(previous, next);
@@ -270,6 +283,9 @@ public class InvalidationHandler implements Document.MessageCallback {
         }
     }
 
+    /**
+     * Handle a general transition - executed for all transitions.
+     */
     private void handleGeneralChangeState(OverlayState previous, OverlayState next) {
         if (previous == OverlayState.NONE) {
             LOKitShell.getToolbarController().switchToEditMode();
@@ -278,6 +294,9 @@ public class InvalidationHandler implements Document.MessageCallback {
         }
     }
 
+    /**
+     * Handle a transition to OverlayState.NONE state.
+     */
     private void handleNoneState(OverlayState previous) {
         if (previous == OverlayState.NONE) {
             return;
@@ -293,12 +312,18 @@ public class InvalidationHandler implements Document.MessageCallback {
         LibreOfficeMainActivity.mAppContext.hideSoftKeyboard();
     }
 
+    /**
+     * Handle a transition to OverlayState.SELECTION state.
+     */
     private void handleSelectionState(OverlayState previous) {
         mTextSelection.showHandle(TextSelectionHandle.HandleType.START);
         mTextSelection.showHandle(TextSelectionHandle.HandleType.END);
         mTextCursorLayer.showSelections();
     }
 
+    /**
+     * Handle a transition to OverlayState.CURSOR state.
+     */
     private void handleCursorState(OverlayState previous) {
         LibreOfficeMainActivity.mAppContext.showSoftKeyboard();
         if (previous == OverlayState.TRANSITION) {
@@ -307,6 +332,9 @@ public class InvalidationHandler implements Document.MessageCallback {
         }
     }
 
+    /**
+     * Handle a transition to OverlayState.TRANSITION state.
+     */
     private void handleTransitionState(OverlayState previous) {
         if (previous == OverlayState.SELECTION) {
             mTextSelection.hideHandle(TextSelectionHandle.HandleType.START);
@@ -319,20 +347,43 @@ public class InvalidationHandler implements Document.MessageCallback {
         }
     }
 
+    /**
+     * Handle a transition to OverlayState.GRAPHIC_SELECTION state.
+     */
     private void handleGraphicSelectionState(OverlayState previous) {
         mTextCursorLayer.showGraphicSelection();
         LibreOfficeMainActivity.mAppContext.hideSoftKeyboard();
     }
 
+    /**
+     * The current state the overlay is in.
+     */
     public OverlayState getCurrentState() {
         return mState;
     }
 
     public enum OverlayState {
+        /**
+         * State where the overlay is empty
+         */
         NONE,
+        /**
+         * In-between state where we need to transition to a new overlay state.
+         * In this state we properly disable the older state and wait to transition
+         * to a new state triggered by an invalidation.
+         */
         TRANSITION,
+        /**
+         * State where we operate with the cursor.
+         */
         CURSOR,
+        /**
+         * State where we operate the graphic selection.
+         */
         GRAPHIC_SELECTION,
+        /**
+         * State where we operate the text selection.
+         */
         SELECTION
     }
 }
diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOEvent.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOEvent.java
index c163337..12f2731 100644
--- a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOEvent.java
+++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOEvent.java
@@ -18,6 +18,9 @@ import org.mozilla.gecko.gfx.ComposedTileLayer;
 import org.mozilla.gecko.gfx.IntSize;
 import org.mozilla.gecko.gfx.SubTile;
 
+/**
+ * Events and data that is queued and processed by LOKitThread.
+ */
 public class LOEvent implements Comparable<LOEvent> {
     public static final int SIZE_CHANGED = 1;
     public static final int CHANGE_PART = 2;
diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitInputConnectionHandler.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitInputConnectionHandler.java
index be202c6..6e82692 100644
--- a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitInputConnectionHandler.java
+++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitInputConnectionHandler.java
@@ -14,6 +14,9 @@ import android.view.inputmethod.InputConnection;
 
 import org.mozilla.gecko.gfx.InputConnectionHandler;
 
+/**
+ * Implementation of InputConnectionHandler.When a key event happens it is directed to this class which is then directed further to LOKitThread.
+ */
 public class LOKitInputConnectionHandler implements InputConnectionHandler {
     private static String LOGTAG = LOKitInputConnectionHandler.class.getSimpleName();
 
@@ -22,29 +25,44 @@ public class LOKitInputConnectionHandler implements InputConnectionHandler {
         return null;
     }
 
+    /**
+     * When key pre-Ime happens.
+     */
     @Override
     public boolean onKeyPreIme(int keyCode, KeyEvent event) {
         LOKitShell.sendKeyEvent(event);
         return false;
     }
 
+    /**
+     * When key down event happens.
+     */
     @Override
     public boolean onKeyDown(int keyCode, KeyEvent event) {
         LOKitShell.sendKeyEvent(event);
         return false;
     }
 
+    /**
+     * When key long press event happens.
+     */
     @Override
     public boolean onKeyLongPress(int keyCode, KeyEvent event) {
         return false;
     }
 
+    /**
+     * When key multiple event happens. Key multiple event is triggered when non-ascii characters are entered on soft keyboard
+     */
     @Override
     public boolean onKeyMultiple(int keyCode, int repeatCount, KeyEvent event) {
         LOKitShell.sendKeyEvent(event);
         return false;
     }
 
+    /**
+     * When key up event happens.
+     */
     @Override
     public boolean onKeyUp(int keyCode, KeyEvent event) {
         LOKitShell.sendKeyEvent(event);
diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java
index 12e4899..7cc4b6e 100644
--- a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java
+++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java
@@ -16,6 +16,10 @@ 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 (maininly the UI thread) and acts accordingly.
+ */
 public class LOKitThread extends Thread {
     private static final String LOGTAG = LOKitThread.class.getSimpleName();
 
@@ -32,6 +36,9 @@ public class LOKitThread extends Thread {
         TileProviderFactory.initialize();
     }
 
+    /**
+     * Starting point of the thread. Processes events that gather in the queue.
+     */
     @Override
     public void run() {
         while (true) {
@@ -45,7 +52,9 @@ public class LOKitThread extends Thread {
         }
     }
 
-    /* Viewport changed, recheck if tiles need to be added / removed */
+    /**
+     * Viewport changed, Recheck if tiles need to be added / removed.
+     */
     private void tileReevaluationRequest(ComposedTileLayer composedTileLayer) {
         if (mTileProvider == null) {
             return;
@@ -74,7 +83,9 @@ public class LOKitThread extends Thread {
         mLayerClient.forceRender();
     }
 
-    /* Invalidate tiles that intersect the input rect */
+    /**
+     * Invalidate tiles that intersect the input rect.
+     */
     private void tileInvalidation(RectF rect) {
         if (mLayerClient == null || mTileProvider == null) {
             return;
@@ -113,6 +124,9 @@ public class LOKitThread extends Thread {
         mLayerClient.forceRender();
     }
 
+    /**
+     * Reposition the view (zoom and position) when the document is firstly shown. This is document type dependent.
+     */
     private void zoomAndRepositionTheDocument() {
         if (mTileProvider.isSpreadsheet()) {
             // Don't do anything for spreadsheets - show at 100%
@@ -139,6 +153,9 @@ public class LOKitThread extends Thread {
         redraw();
     }
 
+    /**
+     * Change part of the document.
+     */
     private void changePart(int partIndex) {
         LOKitShell.showProgressSpinner();
         mTileProvider.changePart(partIndex);
@@ -148,6 +165,10 @@ public class LOKitThread extends Thread {
         LOKitShell.hideProgressSpinner();
     }
 
+    /**
+     * Handle load document event.
+     * @param filename - filename where the document is located
+     */
     private void loadDocument(String filename) {
         if (mApplication == null) {
             mApplication = LibreOfficeMainActivity.mAppContext;
@@ -168,6 +189,9 @@ public class LOKitThread extends Thread {
         }
     }
 
+    /**
+     * Close the currently loaded document.
+     */
     public void closeDocument() {
         if (mTileProvider != null) {
             mTileProvider.close();
@@ -175,6 +199,9 @@ public class LOKitThread extends Thread {
         }
     }
 
+    /**
+     * Process the input event.
+     */
     private void processEvent(LOEvent event) {
         switch (event.mType) {
             case LOEvent.LOAD:
@@ -222,6 +249,9 @@ public class LOKitThread extends Thread {
         }
     }
 
+    /**
+     * Request a change of the handle position.
+     */
     private void changeHandlePosition(TextSelectionHandle.HandleType handleType, PointF documentCoordinate) {
         if (handleType == TextSelectionHandle.HandleType.MIDDLE) {
             mTileProvider.setTextSelectionReset(documentCoordinate);
@@ -245,10 +275,16 @@ public class LOKitThread extends Thread {
         mTileProvider.sendKeyEvent(keyEvent);
     }
 
+    /**
+     * Process swipe left event.
+     */
     private void onSwipeLeft() {
         mTileProvider.onSwipeLeft();
     }
 
+    /**
+     * Process swipe right event.
+     */
     private void onSwipeRight() {
         mTileProvider.onSwipeRight();
     }
@@ -276,15 +312,24 @@ public class LOKitThread extends Thread {
         }
     }
 
+    /**
+     * Create thumbnail for the requested document task.
+     */
     private void createThumbnail(final ThumbnailCreator.ThumbnailCreationTask task) {
         final Bitmap bitmap = task.getThumbnail(mTileProvider);
         task.applyBitmap(bitmap);
     }
 
+    /**
+     * Queue an event.
+     */
     public void queueEvent(LOEvent event) {
         mEventQueue.add(event);
     }
 
+    /**
+     * Clear all events in the queue (used when document is closed).
+     */
     public void clearQueue() {
         mEventQueue.clear();
     }
diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitTileProvider.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitTileProvider.java
index 1eb5dcf..45603d7 100644
--- a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitTileProvider.java
+++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitTileProvider.java
@@ -48,6 +48,12 @@ public class LOKitTileProvider implements TileProvider {
 
     private long objectCreationTime = System.currentTimeMillis();
 
+    /**
+     * Initialize LOKit and load the document.
+     * @param layerClient - layerclient implementation
+     * @param messageCallback - callback for messages retrieved from LOKit
+     * @param input - input path of the document
+     */
     public LOKitTileProvider(GeckoLayerClient layerClient, Document.MessageCallback messageCallback, String input) {
         mLayerClient = layerClient;
         mMessageCallback = messageCallback;
@@ -89,7 +95,10 @@ public class LOKitTileProvider implements TileProvider {
         }
     }
 
-    public void postLoad() {
+    /**
+     * Triggered after the document is loaded.
+     */
+    private void postLoad() {
         mDocument.setMessageCallback(mMessageCallback);
 
         int parts = mDocument.getParts();
@@ -151,11 +160,18 @@ public class LOKitTileProvider implements TileProvider {
         return (input / dpi) * 1440.0f;
     }
 
+
+    /**
+     * @see TileProvider#getPartsCount()
+     */
     @Override
     public int getPartsCount() {
         return mDocument.getParts();
     }
 
+    /**
+     * @see TileProvider#onSwipeLeft()
+     */
     @Override
     public void onSwipeLeft() {
         if (mDocument.getDocumentType() == Document.DOCTYPE_PRESENTATION &&
@@ -164,6 +180,9 @@ public class LOKitTileProvider implements TileProvider {
         }
     }
 
+    /**
+     * @see TileProvider#onSwipeRight()
+     */
     @Override
     public void onSwipeRight() {
         if (mDocument.getDocumentType() == Document.DOCTYPE_PRESENTATION &&
@@ -213,21 +232,33 @@ public class LOKitTileProvider implements TileProvider {
         return true;
     }
 
+    /**
+     * @see TileProvider#getPageWidth()
+     */
     @Override
     public int getPageWidth() {
         return (int) twipToPixel(mWidthTwip, mDPI);
     }
 
+    /**
+     * @see TileProvider#getPageHeight()
+     */
     @Override
     public int getPageHeight() {
         return (int) twipToPixel(mHeightTwip, mDPI);
     }
 
+    /**
+     * @see TileProvider#isReady()
+     */
     @Override
     public boolean isReady() {
         return mIsReady;
     }
 
+    /**
+     * @see TileProvider#createTile(float, float, org.mozilla.gecko.gfx.IntSize, float)
+     */
     @Override
     public CairoImage createTile(float x, float y, IntSize tileSize, float zoom) {
         ByteBuffer buffer = DirectBufferAllocator.guardedAllocate(tileSize.width * tileSize.height * 4);
@@ -239,6 +270,9 @@ public class LOKitTileProvider implements TileProvider {
         return image;
     }
 
+    /**
+     * @see TileProvider#rerenderTile(org.mozilla.gecko.gfx.CairoImage, float, float, org.mozilla.gecko.gfx.IntSize, float)
+     */
     @Override
     public void rerenderTile(CairoImage image, float x, float y, IntSize tileSize, float zoom) {
         if (mDocument != null && image.getBuffer() != null) {
@@ -260,6 +294,9 @@ public class LOKitTileProvider implements TileProvider {
         }
     }
 
+    /**
+     * @see TileProvider#thumbnail(int)
+     */
     @Override
     public Bitmap thumbnail(int size) {
         int widthPixel = getPageWidth();
@@ -289,6 +326,9 @@ public class LOKitTileProvider implements TileProvider {
         return bitmap;
     }
 
+    /**
+     * @see TileProvider#close()
+     */
     @Override
     public void close() {
         Log.i(LOGTAG, "Document destroyed: " + mInputFile);
@@ -298,11 +338,17 @@ public class LOKitTileProvider implements TileProvider {
         }
     }
 
+    /**
+     * @see TileProvider#isTextDocument()
+     */
     @Override
     public boolean isTextDocument() {
         return mDocument != null && mDocument.getDocumentType() == Document.DOCTYPE_TEXT;
     }
 
+    /**
+     * @see TileProvider#isSpreadsheet()
+     */
     @Override
     public boolean isSpreadsheet() {
         return mDocument != null && mDocument.getDocumentType() == Document.DOCTYPE_SPREADSHEET;
@@ -335,6 +381,9 @@ public class LOKitTileProvider implements TileProvider {
         return 0;
     }
 
+    /**
+     * @see TileProvider#sendKeyEvent(android.view.KeyEvent)
+     */
     @Override
     public void sendKeyEvent(KeyEvent keyEvent) {
         if (keyEvent.getAction() == KeyEvent.ACTION_MULTIPLE) {
@@ -357,11 +406,17 @@ public class LOKitTileProvider implements TileProvider {
         mDocument.postMouseEvent(type, x, y, numberOfClicks);
     }
 
+    /**
+     * @see TileProvider#mouseButtonDown(android.graphics.PointF, int)
+     */
     @Override
     public void mouseButtonDown(PointF documentCoordinate, int numberOfClicks) {
         mouseButton(Document.MOUSE_BUTTON_DOWN, documentCoordinate, numberOfClicks);
     }
 
+    /**
+     * @see TileProvider#mouseButtonUp(android.graphics.PointF, int)
+     */
     @Override
     public void mouseButtonUp(PointF documentCoordinate, int numberOfClicks) {
         mouseButton(Document.MOUSE_BUTTON_UP, documentCoordinate, numberOfClicks);
@@ -378,16 +433,25 @@ public class LOKitTileProvider implements TileProvider {
         mDocument.setTextSelection(type, x, y);
     }
 
+    /**
+     * @see TileProvider#setTextSelectionStart(android.graphics.PointF)
+     */
     @Override
     public void setTextSelectionStart(PointF documentCoordinate) {
         setTextSelection(Document.SET_TEXT_SELECTION_START, documentCoordinate);
     }
 
+    /**
+     * @see TileProvider#setTextSelectionEnd(android.graphics.PointF)
+     */
     @Override
     public void setTextSelectionEnd(PointF documentCoordinate) {
         setTextSelection(Document.SET_TEXT_SELECTION_END, documentCoordinate);
     }
 
+    /**
+     * @see TileProvider#setTextSelectionReset(android.graphics.PointF)
+     */
     @Override
     public void setTextSelectionReset(PointF documentCoordinate) {
         setTextSelection(Document.SET_TEXT_SELECTION_RESET, documentCoordinate);
@@ -399,6 +463,9 @@ public class LOKitTileProvider implements TileProvider {
         super.finalize();
     }
 
+    /**
+     * @see TileProvider#changePart(int)
+     */
     @Override
     public void changePart(int partIndex) {
         if (mDocument == null)
@@ -408,6 +475,9 @@ public class LOKitTileProvider implements TileProvider {
         resetDocumentSize();
     }
 
+    /**
+     * @see TileProvider#getCurrentPartNumber()
+     */
     @Override
     public int getCurrentPartNumber() {
         if (mDocument == null)
@@ -417,4 +487,4 @@ public class LOKitTileProvider implements TileProvider {
     }
 }
 
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
+// vim:set shiftwidth=4 softtabstop=4 expandtab:
diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/LibreOfficeMainActivity.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/LibreOfficeMainActivity.java
index 48f7850..3c57301 100644
--- a/android/experimental/LOAndroid3/src/java/org/libreoffice/LibreOfficeMainActivity.java
+++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/LibreOfficeMainActivity.java
@@ -34,6 +34,9 @@ import java.io.OutputStream;
 import java.util.ArrayList;
 import java.util.List;
 
+/**
+ * Main activity of the LibreOffice App. It is started in the UI thread.
+ */
 public class LibreOfficeMainActivity extends ActionBarActivity {
 
     private static final String LOGTAG = "LibreOfficeMainActivity";
diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/TextCursorLayer.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/TextCursorLayer.java
index 5f303b6..8c044ed 100644
--- a/android/experimental/LOAndroid3/src/java/org/libreoffice/TextCursorLayer.java
+++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/TextCursorLayer.java
@@ -38,6 +38,9 @@ public class TextCursorLayer extends Layer {
         }
     }
 
+    /**
+     * @see Layer#draw(org.mozilla.gecko.gfx.Layer.RenderContext)
+     */
     @Override
     public void draw(final RenderContext context) {
         if (FloatUtils.fuzzyEquals(mViewLeft, context.viewport.left)
@@ -57,6 +60,9 @@ public class TextCursorLayer extends Layer {
         });
     }
 
+    /**
+     * Show the cursor at the defined cursor position on the overlay.
+     */
     public void showCursor() {
         LOKitShell.getMainHandler().post(new Runnable() {
             public void run() {
@@ -72,6 +78,9 @@ public class TextCursorLayer extends Layer {
         });
     }
 
+    /**
+     * Hide the cursor at the defined cursor position on the overlay.
+     */
     public void hideCursor() {
         LOKitShell.getMainHandler().post(new Runnable() {
             public void run() {
@@ -80,6 +89,9 @@ public class TextCursorLayer extends Layer {
         });
     }
 
+    /**
+     * Position the cursor to the input position on the overlay.
+     */
     public void positionCursor(final RectF position) {
         LOKitShell.getMainHandler().post(new Runnable() {
             public void run() {
@@ -88,6 +100,9 @@ public class TextCursorLayer extends Layer {
         });
     }
 
+    /**
+     * Show selections on the overlay.
+     */
     public void showSelections() {
         LOKitShell.getMainHandler().post(new Runnable() {
             public void run() {
@@ -100,6 +115,9 @@ public class TextCursorLayer extends Layer {
         });
     }
 
+    /**
+     * Hide selections on the overlay.
+     */
     public void hideSelections() {
         LOKitShell.getMainHandler().post(new Runnable() {
             public void run() {
@@ -108,6 +126,9 @@ public class TextCursorLayer extends Layer {
         });
     }
 
+    /**
+     * Change the list of selections.
+     */
     public void changeSelections(final List<RectF> selections) {
         LOKitShell.getMainHandler().post(new Runnable() {
             public void run() {
@@ -116,6 +137,9 @@ public class TextCursorLayer extends Layer {
         });
     }
 
+    /**
+     * Show the graphic selection on the overlay.
+     */
     public void showGraphicSelection() {
         LOKitShell.getMainHandler().post(new Runnable() {
             public void run() {
@@ -124,6 +148,9 @@ public class TextCursorLayer extends Layer {
         });
     }
 
+    /**
+     * Hide the graphic selection on the overlay.
+     */
     public void hideGraphicSelection() {
         LOKitShell.getMainHandler().post(new Runnable() {
             public void run() {
@@ -132,6 +159,9 @@ public class TextCursorLayer extends Layer {
         });
     }
 
+    /**
+     * Change the graphic selection rectangle to the input rectangle.
+     */
     public void changeGraphicSelection(final RectF rectangle) {
         LOKitShell.getMainHandler().post(new Runnable() {
             public void run() {
diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/TileIdentifier.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/TileIdentifier.java
index 9cc31de..bdd7cbc 100644
--- a/android/experimental/LOAndroid3/src/java/org/libreoffice/TileIdentifier.java
+++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/TileIdentifier.java
@@ -13,6 +13,9 @@ import android.graphics.RectF;
 
 import org.mozilla.gecko.gfx.IntSize;
 
+/**
+ * Identifies the tile by its position (x and y coordinate on the document), zoom and tile size (currently static)
+ */
 public class TileIdentifier {
     public final int x;
     public final int y;
@@ -26,10 +29,16 @@ public class TileIdentifier {
         this.size = size;
     }
 
+    /**
+     * Returns a rectangle of the tiles position in scaled coordinates.
+     */
     public RectF getRectF() {
         return new RectF(x, y, x + size.width, y + size.height);
     }
 
+    /**
+     * Returns a rectangle of the tiles position in non-scaled coordinates (coordinates as the zoom would be 1).
+     */
     public RectF getCSSRectF() {
         float cssX = x / zoom;
         float cssY = y / zoom;
@@ -38,6 +47,9 @@ public class TileIdentifier {
         return new RectF(cssX, cssY, cssX + cssSizeW, cssY + cssSizeH);
     }
 
+    /**
+     * Returns a integer rectangle of the tiles position in non-scaled and rounded coordinates (coordinates as the zoom would be 1).
+     */
     public Rect getCSSRect() {
         float cssX = x / zoom;
         float cssY = y / zoom;
diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/TileProvider.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/TileProvider.java
index 26eeb88..701806e 100644
--- a/android/experimental/LOAndroid3/src/java/org/libreoffice/TileProvider.java
+++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/TileProvider.java
@@ -17,6 +17,9 @@ import android.view.KeyEvent;
 import org.mozilla.gecko.gfx.CairoImage;
 import org.mozilla.gecko.gfx.IntSize;
 
+/**
+ * Provides the tiles and other document information.
+ */
 public interface TileProvider {
     /**
      * Returns the page width in pixels.
@@ -114,10 +117,22 @@ public interface TileProvider {
      */
     void postUnoCommand(String command);
 
+    /**
+     * Send text selection start coordinate.
+     * @param documentCoordinate
+     */
     void setTextSelectionStart(PointF documentCoordinate);
 
+    /**
+     * Send text selection end coordinate.
+     * @param documentCoordinate
+     */
     void setTextSelectionEnd(PointF documentCoordinate);
 
+    /**
+     * Send text selection reset coordinate.
+     * @param documentCoordinate
+     */
     void setTextSelectionReset(PointF documentCoordinate);
 }
 
diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/TileProviderFactory.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/TileProviderFactory.java
index 7835243..6dff903 100644
--- a/android/experimental/LOAndroid3/src/java/org/libreoffice/TileProviderFactory.java
+++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/TileProviderFactory.java
@@ -12,6 +12,9 @@ package org.libreoffice;
 import org.libreoffice.kit.LibreOfficeKit;
 import org.mozilla.gecko.gfx.GeckoLayerClient;
 
+/**
+ * Create a desired instance of TileProvider.
+ */
 public class TileProviderFactory {
     private static TileProviderID currentTileProvider = TileProviderID.LOKIT;
 
diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/ToolbarController.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/ToolbarController.java
index 688436c..504c2f3 100644
--- a/android/experimental/LOAndroid3/src/java/org/libreoffice/ToolbarController.java
+++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/ToolbarController.java
@@ -11,6 +11,9 @@ package org.libreoffice;
 import android.support.v7.app.ActionBar;
 import android.support.v7.widget.Toolbar;
 
+/**
+ * Controls the changes to the toolbar.
+ */
 public class ToolbarController {
     private final Toolbar mToolbar;
     private final ActionBar mActionBar;
@@ -21,7 +24,11 @@ public class ToolbarController {
         switchToViewMode();
     }
 
+    /**
+     * Change the toolbar to edit mode.
+     */
     void switchToEditMode() {
+        // Insure the change is done on UI thread
         LOKitShell.getMainHandler().post(new Runnable() {
             @Override
             public void run() {
@@ -33,7 +40,11 @@ public class ToolbarController {
         });
     }
 
+    /**
+     * Change the toolbar to view mode.
+     */
     void switchToViewMode() {
+        // Insure the change is done on UI thread
         LOKitShell.getMainHandler().post(new Runnable() {
             @Override
             public void run() {
diff --git a/android/experimental/LOAndroid3/src/java/org/mozilla/gecko/TextSelection.java b/android/experimental/LOAndroid3/src/java/org/mozilla/gecko/TextSelection.java
index 94f9b90..52aa555 100644
--- a/android/experimental/LOAndroid3/src/java/org/mozilla/gecko/TextSelection.java
+++ b/android/experimental/LOAndroid3/src/java/org/mozilla/gecko/TextSelection.java
@@ -18,6 +18,10 @@ import org.mozilla.gecko.util.FloatUtils;
 import static org.mozilla.gecko.TextSelectionHandle.HandleType.MIDDLE;
 import static org.mozilla.gecko.TextSelectionHandle.HandleType.START;
 
+/**
+ * TextSelection operates the text selection (start, middle and end) handles. It is a Layer implementation
+ * that intercepts viewport changes and repositions the text handles accordingly.
+ */
 public class TextSelection extends Layer {
     private static final String LOGTAG = "GeckoTextSelection";
 
@@ -40,9 +44,15 @@ public class TextSelection extends Layer {
         }
     }
 
+    /**
+     * Destroys created resources if any were created.
+     */
     void destroy() {
     }
 
+    /**
+     * Reposition the handles when draw happens.
+     */
     @Override
     public void draw(final RenderContext context) {
         // cache the relevant values from the context and bail out if they are the same. we do this
@@ -66,6 +76,9 @@ public class TextSelection extends Layer {
         });
     }
 
+    /**
+     * Shows the requested handle.
+     */
     public void showHandle(final TextSelectionHandle.HandleType handleType) {
         LOKitShell.getMainHandler().post(new Runnable() {
             public void run() {
@@ -84,6 +97,9 @@ public class TextSelection extends Layer {
         });
     }
 
+    /**
+     * Get instance of the requested handle type..
+     */
     private TextSelectionHandle getHandle(TextSelectionHandle.HandleType handleType) {
         if (handleType == START) {
             return mStartHandle;
@@ -94,6 +110,9 @@ public class TextSelection extends Layer {
         }
     }
 
+    /**
+     * Hides the requested handle.
+     */
     public void hideHandle(final TextSelectionHandle.HandleType handleType) {
         LOKitShell.getMainHandler().post(new Runnable() {
             public void run() {
@@ -103,7 +122,9 @@ public class TextSelection extends Layer {
         });
     }
 
-
+    /**
+     * Position the handle requested handle to the input rectangle (expressed in document coordinates)
+     */
     public void positionHandle(final TextSelectionHandle.HandleType handleType, final RectF position) {
         LOKitShell.getMainHandler().post(new Runnable() {
             public void run() {
diff --git a/android/experimental/LOAndroid3/src/java/org/mozilla/gecko/TextSelectionHandle.java b/android/experimental/LOAndroid3/src/java/org/mozilla/gecko/TextSelectionHandle.java
index 1a7ac97..aa4bec6 100644
--- a/android/experimental/LOAndroid3/src/java/org/mozilla/gecko/TextSelectionHandle.java
+++ b/android/experimental/LOAndroid3/src/java/org/mozilla/gecko/TextSelectionHandle.java
@@ -21,6 +21,9 @@ import org.libreoffice.R;
 import org.mozilla.gecko.gfx.ImmutableViewportMetrics;
 import org.mozilla.gecko.gfx.LayerView;
 
+/**
+ * Custom image view used for showing the text selection handles.
+ */
 public class TextSelectionHandle extends ImageView implements View.OnTouchListener {
     private static final String LOGTAG = TextSelectionHandle.class.getSimpleName();
     private long mLastTime = 0;
diff --git a/android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/RenderControllerThread.java b/android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/RenderControllerThread.java
index dc211c4..06f82f1 100644
--- a/android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/RenderControllerThread.java
+++ b/android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/RenderControllerThread.java
@@ -6,6 +6,10 @@ import java.util.concurrent.LinkedBlockingQueue;
 
 import javax.microedition.khronos.opengles.GL10;
 
+/**
+ * Thread which controls the rendering to OpenGL context. Render commands are queued and
+ * processed and delegated by this thread.
+ */
 public class RenderControllerThread extends Thread implements LayerView.Listener {
     private LinkedBlockingQueue<RenderCommand> queue = new LinkedBlockingQueue<RenderCommand>();
     private GLController controller;


More information about the Libreoffice-commits mailing list