[Libreoffice-commits] core.git: 2 commits - android/Bootstrap android/experimental desktop/source

2014-09-22 Thread Tomaž Vajngerl
 android/Bootstrap/src/org/libreoffice/kit/Document.java
   |4 
 android/Bootstrap/src/org/libreoffice/kit/Office.java  
   |4 
 android/experimental/LOAndroid3/src/java/org/libreoffice/LOEvent.java  
   |   18 ++
 android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitShell.java   
   |1 
 android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java  
   |   64 +-
 
android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitTileProvider.java 
  |   14 ++
 
android/experimental/LOAndroid3/src/java/org/libreoffice/LibreOfficeMainActivity.java
 |   19 +-
 android/experimental/LOAndroid3/src/java/org/libreoffice/MockTileProvider.java 
   |4 
 android/experimental/LOAndroid3/src/java/org/libreoffice/TileProvider.java 
   |2 
 desktop/source/lib/lokandroid.cxx  
   |   50 ++-
 10 files changed, 129 insertions(+), 51 deletions(-)

New commits:
commit 2897374fdad4fdb2daab273c2cf6f85e5ae49ec1
Author: Tomaž Vajngerl tomaz.vajng...@collabora.com
Date:   Mon Sep 22 22:37:11 2014 +0200

android: cleanly load/close a document when activity starts/stops

Change-Id: I2206a2b6818c030ba756f2b4d014a20d46f4106e

diff --git 
a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOEvent.java 
b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOEvent.java
index 746ceb5..4aa32cb 100644
--- a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOEvent.java
+++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOEvent.java
@@ -12,17 +12,24 @@ public class LOEvent {
 public static final int VIEWPORT = 3;
 public static final int DRAW = 4;
 public static final int CHANGE_PART = 5;
+public static final int LOAD = 6;
+
 public int mType;
-ViewportMetrics viewportMetrics;
 private ViewportMetrics mViewportMetrics;
 private String mTypeString;
 private int mPartIndex;
+private String mFilename;
 
 public LOEvent(int type, int widthPixels, int heightPixels, int tileWidth, 
int tileHeight) {
 mType = type;
 mTypeString = Size Changed:  + widthPixels +   + heightPixels;
 }
 
+public LOEvent(int type, String filename) {
+mType = type;
+mFilename = filename;
+}
+
 public LOEvent(int type, IntSize tileSize) {
 mType = type;
 mTypeString = Tile size;
@@ -65,6 +72,10 @@ public class LOEvent {
 return new LOEvent(CHANGE_PART, part);
 }
 
+public static LOEvent load(String inputFile) {
+return new LOEvent(LOAD, inputFile);
+}
+
 public String getTypeString() {
 return mTypeString;
 }
@@ -76,4 +87,9 @@ public class LOEvent {
 public int getPartIndex() {
 return mPartIndex;
 }
+
+public String getFilename() {
+return mFilename;
+}
+
 }
diff --git 
a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitShell.java 
b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitShell.java
index 0d44d66..fbf8675 100644
--- a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitShell.java
+++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitShell.java
@@ -38,4 +38,5 @@ public class LOKitShell {
 public static Handler getMainHandler() {
 return LibreOfficeMainActivity.mAppContext.mMainHandler;
 }
+
 }
diff --git 
a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java 
b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java
index bc08b98..25a1705 100644
--- a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java
+++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java
@@ -22,21 +22,19 @@ public class LOKitThread extends Thread {
 private LibreOfficeMainActivity mApplication;
 private TileProvider mTileProvider;
 private ViewportMetrics mViewportMetrics;
-private String mInputFile;
 private Rect mOldRect;
 private boolean mCheckboardImageSet = false;
 
-LOKitThread(String inputFile) {
-mInputFile = inputFile;
+public LOKitThread() {
 }
 
-RectF normlizeRect(ImmutableViewportMetrics metrics) {
+private RectF normlizeRect(ImmutableViewportMetrics metrics) {
 RectF rect = metrics.getViewport();
 float zoomFactor = metrics.zoomFactor;
 return new RectF(rect.left / zoomFactor, rect.top / zoomFactor, 
rect.right / zoomFactor, rect.bottom / zoomFactor);
 }
 
-Rect roundToTileSize(RectF input, int tileSize) {
+private Rect roundToTileSize(RectF input, int tileSize) {
 int minX = (Math.round(input.left)/ tileSize) * tileSize;
 int minY = (Math.round(input.top) / tileSize) * tileSize;
 int maxX = ((Math.round(input.right)  / tileSize) + 1) * tileSize;
@@ -44,7 +42,7 @@ public class LOKitThread 

[Libreoffice-commits] core.git: 2 commits - android/Bootstrap android/experimental desktop/source

2014-07-02 Thread Tomaž Vajngerl
 android/Bootstrap/src/org/libreoffice/kit/Document.java
  |2 
 android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java  
  |  134 +++--
 
android/experimental/LOAndroid3/src/java/org/libreoffice/LibreOfficeMainActivity.java
|   33 -
 
android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/BufferedCairoImage.java
   |4 
 
android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/GeckoGLLayerClient.java
   |  265 --
 
android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/GeckoLayerClient.java
 |  174 ++
 
android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/GeckoSoftwareLayerClient.java
 |  151 +
 android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/Layer.java  
  |4 
 
android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/LayerRenderer.java
|1 
 
android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/MultiTileLayer.java
   |   86 ---
 android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/SubTile.java
  |   15 
 desktop/source/lib/lokandroid.cxx  
  |   10 
 12 files changed, 244 insertions(+), 635 deletions(-)

New commits:
commit b8ce647194c3c0f715296bee540ff18cfefa3497
Author: Tomaž Vajngerl tomaz.vajng...@collabora.com
Date:   Wed Jul 2 11:11:56 2014 +0200

LOAndroid3: add tiled rendering from document - one tile first

Change-Id: Ib9c27cc8fcc9aee8670c217a4a5ab84bd3035577

diff --git 
a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java 
b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java
index ea3472b..abcbe65 100644
--- a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java
+++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java
@@ -6,6 +6,7 @@ import android.graphics.Color;
 import android.graphics.Paint;
 import android.graphics.Rect;
 import android.util.JsonWriter;
+import android.util.Log;
 
 import org.mozilla.gecko.gfx.ViewportMetrics;
 
@@ -15,72 +16,110 @@ import java.nio.ByteBuffer;
 import java.util.Random;
 import java.util.concurrent.ConcurrentLinkedQueue;
 
+import org.libreoffice.kit.LibreOfficeKit;
+import org.libreoffice.kit.Office;
+import org.libreoffice.kit.Document;
+
 public class LOKitThread extends Thread {
 private static final String LOGTAG = GeckoThread;
+private static final int TILE_SIZE = 256;
+
+public Office mOffice;
+public Document mDocument;
 
 public ConcurrentLinkedQueueLOEvent gEvents = new 
ConcurrentLinkedQueueLOEvent();
 private ViewportMetrics mViewportMetrics;
-private Random rand = new Random();
 
 LOKitThread() {
 }
 
-private boolean draw() throws InterruptedException {
+private void openDocument() {
+// enable debugging messages as the first thing
+
LibreOfficeKit.putenv(SAL_LOG=+WARN+INFO-INFO.legacy.osl-INFO.i18nlangtag);
+LibreOfficeKit.init(LibreOfficeMainActivity.mAppContext);
+
+mOffice = new Office(LibreOfficeKit.getLibreOfficeKitHandle());
+String input = /assets/test1.odt;
+mDocument = mOffice.documentLoad(input);
+}
+
+private synchronized boolean draw() throws InterruptedException {
 final LibreOfficeMainActivity application = 
LibreOfficeMainActivity.mAppContext;
 
-Bitmap bitmap = 
application.getLayerClient().getLayerController().getDrawable(docu);
-//bitmap = convert(bitmap, Bitmap.Config.ARGB_);
+openDocument();
+
+long height = mDocument.getDocumentHeight();
+long width  = mDocument.getDocumentWidth();
+
+Log.e(LOGTAG, Document Size:  + width +   + height);
+
+int pageWidth = 1024;
+int pageHeight = 1024;
+
+String metadata = createJson(0, 0, 256, 256, pageWidth, pageHeight, 0, 
0, 1.0);
+
+Rect bufferRect = application.getLayerClient().beginDrawing(256, 256, 
TILE_SIZE, TILE_SIZE, metadata);
+
+/*if (bufferRect == null) {
+Log.e(LOGTAG, beginDrawing - false);
+return false;
+}*/
+
+Log.e(LOGTAG, Filling tiles..);
+
+ByteBuffer buffer = ByteBuffer.allocateDirect(TILE_SIZE * TILE_SIZE * 
4);
+
+Log.e(LOGTAG, PaintTile..);
+
+mDocument.paintTile(buffer, 256, 256, 1024, 1024, 4096, 4096);
+
+Log.e(LOGTAG, EndPaintTile..);
 
-StringWriter stringWriter = new StringWriter();
+Bitmap bitmap = Bitmap.createBitmap(TILE_SIZE, TILE_SIZE, 
Bitmap.Config.ARGB_);
+bitmap.copyPixelsFromBuffer(buffer);
 
+application.getLayerClient().addTile(bitmap, 0, 0);
+
+Log.e(LOGTAG, EndDrawing..);
+application.getLayerClient().endDrawing(0, 0, 256, 256);
+
+return true;
+}
+
+private String createJson(ViewportMetrics