[Libreoffice-commits] core.git: Branch 'feature/droid_calcimpress2' - 7 commits - android/experimental

Tomaž Vajngerl tomaz.vajngerl at collabora.com
Tue Sep 30 12:09:27 PDT 2014


 android/experimental/LOAndroid3/res/layout/activity_main.xml                          |   24 +--
 android/experimental/LOAndroid3/src/java/org/libreoffice/LOEvent.java                 |   30 ----
 android/experimental/LOAndroid3/src/java/org/libreoffice/LOEventFactory.java          |   37 ++++++
 android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitShell.java              |    3 
 android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java             |    9 -
 android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitTileProvider.java       |   61 +++++-----
 android/experimental/LOAndroid3/src/java/org/libreoffice/LibreOfficeMainActivity.java |    4 
 android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/GeckoLayerClient.java  |    5 
 android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/ViewTransform.java     |   19 ---
 9 files changed, 101 insertions(+), 91 deletions(-)

New commits:
commit 3b288e1ddd5f84ac3ce34c6c63b848a68615c3f7
Author: Tomaž Vajngerl <tomaz.vajngerl at collabora.com>
Date:   Tue Sep 30 21:09:40 2014 +0200

    android: clear all tiles in "refresh"
    
    Change-Id: I6a7e9070160e8d4bbd6ad5cd1bfa2dc18e66a45d

diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java
index c11164b..54478bf 100644
--- a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java
+++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java
@@ -46,6 +46,8 @@ public class LOKitThread extends Thread {
             mApplication.getLayerController().getView().changeCheckerboardBitmap(bitmap, mTileProvider.getPageWidth(), mTileProvider.getPageHeight());
         }
 
+        mLayerClient.clearAllTiles();
+
         RectF rect = new RectF(0, 0, mTileProvider.getPageWidth(), mTileProvider.getPageHeight());
         mController.setPageRect(rect, rect);
         mController.setForceRedraw();
@@ -53,7 +55,6 @@ public class LOKitThread extends Thread {
 
     private void changePart(int partIndex) {
         mTileProvider.changePart(partIndex);
-        mLayerClient.clearAllTiles();
         refresh();
     }
 
commit 09bb2d854995d36721948ff763223bec9c13aec5
Author: Tomaž Vajngerl <tomaz.vajngerl at collabora.com>
Date:   Tue Sep 30 21:07:30 2014 +0200

    android: no need for "throws InterruptedException"
    
    Change-Id: I93be9af0849a2515c27bc22892a201ec207d6775

diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java
index 4493e94..c11164b 100644
--- a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java
+++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java
@@ -25,7 +25,7 @@ public class LOKitThread extends Thread {
         TileProviderFactory.initialize();
     }
 
-    private boolean draw() throws InterruptedException {
+    private boolean draw() {
         RectF rect = new RectF(0, 0, mTileProvider.getPageWidth(), mTileProvider.getPageHeight());
         DisplayMetrics displayMetrics = LibreOfficeMainActivity.mAppContext.getResources().getDisplayMetrics();
         mViewportMetrics = new ImmutableViewportMetrics(displayMetrics);
@@ -51,7 +51,7 @@ public class LOKitThread extends Thread {
         mController.setForceRedraw();
     }
 
-    private void changePart(int partIndex) throws InterruptedException {
+    private void changePart(int partIndex) {
         mTileProvider.changePart(partIndex);
         mLayerClient.clearAllTiles();
         refresh();
@@ -95,7 +95,7 @@ public class LOKitThread extends Thread {
         }
     }
 
-    private void processEvent(LOEvent event) throws InterruptedException {
+    private void processEvent(LOEvent event) {
         switch (event.mType) {
             case LOEvent.LOAD:
                 load(event.getFilename());
commit 364d52ec760f3c6bdff38b31eddb67132e7d6d72
Author: Tomaž Vajngerl <tomaz.vajngerl at collabora.com>
Date:   Tue Sep 30 20:58:43 2014 +0200

    android: redraw LOEvent
    
    Change-Id: I6171f7a36c07f53eeec0cc83caa168ec97459d53

diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOEvent.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOEvent.java
index 4b22d1f..3f39257 100644
--- a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOEvent.java
+++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOEvent.java
@@ -13,6 +13,7 @@ public class LOEvent {
     public static final int DRAW = 4;
     public static final int CHANGE_PART = 5;
     public static final int LOAD = 6;
+    public static final int REDRAW = 7;
 
     public int mType;
     private ImmutableViewportMetrics mViewportMetrics;
@@ -20,6 +21,10 @@ public class LOEvent {
     private int mPartIndex;
     private String mFilename;
 
+    public LOEvent(int type) {
+        mType = type;
+    }
+
     public LOEvent(int type, int widthPixels, int heightPixels) {
         mType = type;
         mTypeString = "Size Changed: " + widthPixels + " " + heightPixels;
diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOEventFactory.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOEventFactory.java
index d0b024a..90a3582 100644
--- a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOEventFactory.java
+++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOEventFactory.java
@@ -30,4 +30,8 @@ public class LOEventFactory {
     public static LOEvent load(String inputFile) {
         return new LOEvent(LOEvent.LOAD, inputFile);
     }
+
+    public static LOEvent redraw() {
+        return new LOEvent(LOEvent.REDRAW);
+    }
 }
diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitShell.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitShell.java
index b6f0b99..859a3d8 100644
--- a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitShell.java
+++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitShell.java
@@ -29,4 +29,7 @@ public class LOKitShell {
         return LibreOfficeMainActivity.mAppContext.mMainHandler;
     }
 
+    public static void queueRedraw() {
+        LOKitShell.sendEvent(LOEventFactory.redraw());
+    }
 }
commit 1275cc2fcbe9788849815bf0cbe2a39af3241335
Author: Tomaž Vajngerl <tomaz.vajngerl at collabora.com>
Date:   Tue Sep 30 20:56:02 2014 +0200

    android: create events with LOEventFactory (moved out of LOEvent)
    
    Change-Id: Ia2e6bd040160e9d09377fe1f27d94d22c46fb778

diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOEvent.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOEvent.java
index 80210a7..4b22d1f 100644
--- a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOEvent.java
+++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOEvent.java
@@ -52,30 +52,6 @@ public class LOEvent {
         mTypeString = "Change part";
     }
 
-    public static LOEvent draw(Rect rect) {
-        return new LOEvent(DRAW, rect);
-    }
-
-    public static LOEvent sizeChanged(int widthPixels, int heightPixels) {
-        return new LOEvent(SIZE_CHANGED, widthPixels, heightPixels);
-    }
-
-    public static LOEvent tileSize(IntSize tileSize) {
-        return new LOEvent(TILE_SIZE, tileSize);
-    }
-
-    public static LOEvent viewport(ImmutableViewportMetrics viewportMetrics) {
-        return new LOEvent(VIEWPORT, viewportMetrics);
-    }
-
-    public static LOEvent changePart(int part) {
-        return new LOEvent(CHANGE_PART, part);
-    }
-
-    public static LOEvent load(String inputFile) {
-        return new LOEvent(LOAD, inputFile);
-    }
-
     public String getTypeString() {
         return mTypeString;
     }
@@ -91,5 +67,4 @@ public class LOEvent {
     public String getFilename() {
         return mFilename;
     }
-
 }
diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOEventFactory.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOEventFactory.java
new file mode 100644
index 0000000..d0b024a
--- /dev/null
+++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOEventFactory.java
@@ -0,0 +1,33 @@
+package org.libreoffice;
+
+import android.graphics.Rect;
+
+import org.mozilla.gecko.gfx.ImmutableViewportMetrics;
+import org.mozilla.gecko.gfx.IntSize;
+
+
+public class LOEventFactory {
+    public static LOEvent draw(Rect rect) {
+        return new LOEvent(LOEvent.DRAW, rect);
+    }
+
+    public static LOEvent sizeChanged(int widthPixels, int heightPixels) {
+        return new LOEvent(LOEvent.SIZE_CHANGED, widthPixels, heightPixels);
+    }
+
+    public static LOEvent tileSize(IntSize tileSize) {
+        return new LOEvent(LOEvent.TILE_SIZE, tileSize);
+    }
+
+    public static LOEvent viewport(ImmutableViewportMetrics viewportMetrics) {
+        return new LOEvent(LOEvent.VIEWPORT, viewportMetrics);
+    }
+
+    public static LOEvent changePart(int part) {
+        return new LOEvent(LOEvent.CHANGE_PART, part);
+    }
+
+    public static LOEvent load(String inputFile) {
+        return new LOEvent(LOEvent.LOAD, inputFile);
+    }
+}
diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/LibreOfficeMainActivity.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/LibreOfficeMainActivity.java
index 3c53454..886fbd9 100644
--- a/android/experimental/LOAndroid3/src/java/org/libreoffice/LibreOfficeMainActivity.java
+++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/LibreOfficeMainActivity.java
@@ -127,7 +127,7 @@ public class LibreOfficeMainActivity extends Activity {
         mLayerController.setLayerClient(mLayerClient);
         mGeckoLayout.addView(mLayerController.getView(), 0);
 
-        LOKitShell.sendEvent(LOEvent.load(mInputFile));
+        LOKitShell.sendEvent(LOEventFactory.load(mInputFile));
     }
 
     @Override
@@ -207,7 +207,7 @@ public class LibreOfficeMainActivity extends Activity {
         @Override
         public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
             DocumentPartView partView = mDocumentPartViewListAdpater.getItem(position);
-            LOKitShell.sendEvent(LOEvent.changePart(partView.getPartIndex()));
+            LOKitShell.sendEvent(LOEventFactory.changePart(partView.getPartIndex()));
             mDrawerLayout.closeDrawer(mDrawerList);
         }
     }
diff --git a/android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/GeckoLayerClient.java b/android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/GeckoLayerClient.java
index 28c2bbb..f2b2793 100644
--- a/android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/GeckoLayerClient.java
+++ b/android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/GeckoLayerClient.java
@@ -46,6 +46,7 @@ import android.util.Log;
 import android.view.View;
 
 import org.libreoffice.LOEvent;
+import org.libreoffice.LOEventFactory;
 import org.libreoffice.LOKitShell;
 import org.libreoffice.LibreOfficeMainActivity;
 import org.libreoffice.TileProvider;
@@ -180,7 +181,7 @@ public class GeckoLayerClient implements LayerView.Listener {
             Log.d(LOGTAG, "Window-size changed to " + mWindowSize);
         }
 
-        LOEvent event = LOEvent.sizeChanged(metrics.widthPixels, metrics.heightPixels);
+        LOEvent event = LOEventFactory.sizeChanged(metrics.widthPixels, metrics.heightPixels);
         LOKitShell.sendEvent(event);
     }
 
@@ -206,7 +207,7 @@ public class GeckoLayerClient implements LayerView.Listener {
             mDrawTimingQueue.add(displayPort);
         }
 
-        LOKitShell.sendEvent(LOEvent.viewport(clampedMetrics));
+        LOKitShell.sendEvent(LOEventFactory.viewport(clampedMetrics));
         if (mViewportSizeChanged) {
             mViewportSizeChanged = false;
             LOKitShell.viewSizeChanged();
commit f6b23fcc00ac0991ead85eb18b0eaea04adbd0f8
Author: Tomaž Vajngerl <tomaz.vajngerl at collabora.com>
Date:   Tue Sep 30 20:22:31 2014 +0200

    android: remove unused ViewTransform
    
    Change-Id: I80cc876b542d2b215f8615972717bce998d532e9

diff --git a/android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/ViewTransform.java b/android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/ViewTransform.java
deleted file mode 100644
index edb45f5..0000000
--- a/android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/ViewTransform.java
+++ /dev/null
@@ -1,19 +0,0 @@
-/* -*- Mode: Java; c-basic-offset: 4; tab-width: 20; indent-tabs-mode: nil; -*-
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-package org.mozilla.gecko.gfx;
-
-public class ViewTransform {
-    public float x;
-    public float y;
-    public float scale;
-
-    public ViewTransform(float inX, float inY, float inScale) {
-        x = inX;
-        y = inY;
-        scale = inScale;
-    }
-}
-
commit 3bd984288fda0eee302f3ae3719449a7647e455d
Author: Tomaž Vajngerl <tomaz.vajngerl at collabora.com>
Date:   Tue Sep 30 20:21:02 2014 +0200

    android: don't show any parts in sidebar if only one part exists
    
    Change-Id: Id40fa499bca8e4ef4f8b26877905fd74a66667af

diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitTileProvider.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitTileProvider.java
index 579ce30..8050863 100644
--- a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitTileProvider.java
+++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitTileProvider.java
@@ -43,37 +43,26 @@ public class LOKitTileProvider implements TileProvider {
         if (checkDocument()) {
             int parts = mDocument.getParts();
             Log.i(LOGTAG, "Document parts: " + parts);
-            if (parts >= 1) {
-                mDocument.setPart(0);
-            }
-            for (int i = 0; i < parts; i++) {
-                String partName = mDocument.getPartName(i);
-                if (partName.isEmpty()) {
-                    switch (mDocument.getDocumentType()) {
-                        case Document.DOCTYPE_DRAWING:
-                        case Document.DOCTYPE_TEXT:
-                            partName = "Page " + (i + 1);
-                            break;
-                        case Document.DOCTYPE_SPREADSHEET:
-                            partName = "Sheet " + (i + 1);
-                            break;
-                        case Document.DOCTYPE_PRESENTATION:
-                            partName = "Slide " + (i + 1);
-                            break;
-                        case Document.DOCTYPE_OTHER:
-                        default:
-                            partName = "Part " + (i + 1);
-                            break;
+
+            LibreOfficeMainActivity.mAppContext.getDocumentPartView().clear();
+
+            if (parts > 1) {
+                for (int i = 0; i < parts; i++) {
+                    String partName = mDocument.getPartName(i);
+                    if (partName.isEmpty()) {
+                        partName = getGenericPartName(i);
                     }
-                }
-                Log.i(LOGTAG, "Document part " + i + " name:'" + partName + "'");
+                    Log.i(LOGTAG, "Document part " + i + " name:'" + partName + "'");
 
-                mDocument.setPart(i);
-                final DocumentPartView partView = new DocumentPartView(i, partName, thumbnail(128));
-                LibreOfficeMainActivity.mAppContext.getDocumentPartView().add(partView);
+                    mDocument.setPart(i);
+                    final DocumentPartView partView = new DocumentPartView(i, partName, thumbnail(128));
+                    LibreOfficeMainActivity.mAppContext.getDocumentPartView().add(partView);
+                }
             }
 
-            LibreOfficeMainActivity.mAppContext.mMainHandler.post(new Runnable() {
+            mDocument.setPart(0);
+
+            LOKitShell.getMainHandler().post(new Runnable() {
                 @Override
                 public void run() {
                     LibreOfficeMainActivity.mAppContext.getDocumentPartViewListAdpater().notifyDataSetChanged();
@@ -82,6 +71,24 @@ public class LOKitTileProvider implements TileProvider {
         }
     }
 
+    private String getGenericPartName(int i) {
+        if (mDocument == null) {
+            return "";
+        }
+        switch (mDocument.getDocumentType()) {
+            case Document.DOCTYPE_DRAWING:
+            case Document.DOCTYPE_TEXT:
+                return "Page " + (i + 1);
+            case Document.DOCTYPE_SPREADSHEET:
+                return "Sheet " + (i + 1);
+            case Document.DOCTYPE_PRESENTATION:
+                return "Slide " + (i + 1);
+            case Document.DOCTYPE_OTHER:
+            default:
+                return "Part " + (i + 1);
+        }
+    }
+
     private float twipToPixel(float input, float dpi) {
         return input / 1440.0f * dpi;
     }
commit 17ba6c25ec8914a44e7a6beaf8cc5dad90132a6b
Author: Tomaž Vajngerl <tomaz.vajngerl at collabora.com>
Date:   Tue Sep 30 20:15:59 2014 +0200

    android: fix part sidebar not executing an "part change" event..
    
    Change-Id: I8f984ad050d8124164617f67f5ea7fa511e50f55

diff --git a/android/experimental/LOAndroid3/res/layout/activity_main.xml b/android/experimental/LOAndroid3/res/layout/activity_main.xml
index 9fa5e51..9ada4d3 100644
--- a/android/experimental/LOAndroid3/res/layout/activity_main.xml
+++ b/android/experimental/LOAndroid3/res/layout/activity_main.xml
@@ -18,6 +18,18 @@
             android:layout_height="fill_parent"
             android:layout_weight="1"/>
 
+        <RelativeLayout
+            android:id="@+id/loadingPanel"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:gravity="center" >
+
+            <ProgressBar
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:indeterminate="true" />
+        </RelativeLayout>
+
         <View
             android:layout_width="match_parent"
             android:layout_height="match_parent"/>
@@ -32,16 +44,4 @@
         android:background="#9FFF"
         android:choiceMode="singleChoice"/>
 
-    <RelativeLayout
-        android:id="@+id/loadingPanel"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:gravity="center" >
-
-        <ProgressBar
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:indeterminate="true" />
-    </RelativeLayout>
-
 </android.support.v4.widget.DrawerLayout>


More information about the Libreoffice-commits mailing list