[Libreoffice-commits] core.git: android/source

Ximeng Zu uznomis at yahoo.com
Sat May 27 07:49:12 UTC 2017


 android/source/src/java/org/libreoffice/LOEvent.java         |    3 +
 android/source/src/java/org/libreoffice/LOKitThread.java     |   20 ++++++++---
 android/source/src/java/org/mozilla/gecko/gfx/LayerView.java |    4 ++
 3 files changed, 21 insertions(+), 6 deletions(-)

New commits:
commit f45cfc6569d2a5a81784284f294eb35e98211b19
Author: Ximeng Zu <uznomis at yahoo.com>
Date:   Fri May 19 23:15:28 2017 -0500

    Update zoom constraints with device rotate
    
    Added function of updating zoom constraints
    whenever device rotates. This is achieved by
    calculating min zoom factor every time the
    size change function is called.
    
    Change-Id: I6d795c1eb79faa36b4f5dabedd2d4b8c87dcf7d7
    Reviewed-on: https://gerrit.libreoffice.org/37847
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Tomaž Vajngerl <quikee at gmail.com>

diff --git a/android/source/src/java/org/libreoffice/LOEvent.java b/android/source/src/java/org/libreoffice/LOEvent.java
index f5579aea087a..14980dca0ec4 100644
--- a/android/source/src/java/org/libreoffice/LOEvent.java
+++ b/android/source/src/java/org/libreoffice/LOEvent.java
@@ -36,7 +36,8 @@ public class LOEvent implements Comparable<LOEvent> {
     public static final int RESUME = 15;
     public static final int LOAD_NEW = 16;
     public static final int SAVE_AS = 17;
-    public static final int UPDATE_PART_PAGE_RECT= 18;
+    public static final int UPDATE_PART_PAGE_RECT = 18;
+    public static final int UPDATE_ZOOM_CONSTRAINTS = 19;
 
     public final int mType;
     public int mPriority = 0;
diff --git a/android/source/src/java/org/libreoffice/LOKitThread.java b/android/source/src/java/org/libreoffice/LOKitThread.java
index 52a7c6c2f43a..dac8cc43109c 100644
--- a/android/source/src/java/org/libreoffice/LOKitThread.java
+++ b/android/source/src/java/org/libreoffice/LOKitThread.java
@@ -168,6 +168,15 @@ class LOKitThread extends Thread {
         mContext.getDocumentOverlay().setPartPageRectangles(partPageRectangles);
     }
 
+    private void updateZoomConstraints() {
+        mLayerClient = mContext.getLayerClient();
+
+        // Set min zoom to the page width so that you cannot zoom below page width
+        // applies to all types of document; in the future spreadsheets may be singled out
+        float minZoom = mLayerClient.getViewportMetrics().getWidth()/mTileProvider.getPageWidth();
+        mLayerClient.setZoomConstraints(new ZoomConstraints(true, 0.0f, minZoom, 0.0f));
+    }
+
 
     /**
      * Resume the document with the current part
@@ -181,6 +190,7 @@ class LOKitThread extends Thread {
         mTileProvider = TileProviderFactory.create(mContext, mInvalidationHandler, filename);
 
         if (mTileProvider.isReady()) {
+            updateZoomConstraints();
             changePart(partIndex);
         } else {
             closeDocument();
@@ -209,13 +219,9 @@ class LOKitThread extends Thread {
         mInvalidationHandler = new InvalidationHandler(mContext);
         mTileProvider = TileProviderFactory.create(mContext, mInvalidationHandler, filePath);
 
-        // Set min zoom to the page width so that you cannot zoom below page width
-        // applies to all types of document; in the future spreadsheets may be singled out
-        float minZoom = mLayerClient.getViewportMetrics().getWidth()/mTileProvider.getPageWidth();
-        mLayerClient.setZoomConstraints(new ZoomConstraints(true, 0.0f, minZoom, 0.0f));
-
         if (mTileProvider.isReady()) {
             LOKitShell.showProgressSpinner(mContext);
+            updateZoomConstraints();
             refresh();
             LOKitShell.hideProgressSpinner(mContext);
         } else {
@@ -236,6 +242,7 @@ class LOKitThread extends Thread {
 
         if (mTileProvider.isReady()) {
             LOKitShell.showProgressSpinner(mContext);
+            updateZoomConstraints();
             refresh();
             LOKitShell.hideProgressSpinner(mContext);
 
@@ -333,6 +340,9 @@ class LOKitThread extends Thread {
             case LOEvent.UPDATE_PART_PAGE_RECT:
                 updatePartPageRectangles();
                 break;
+            case LOEvent.UPDATE_ZOOM_CONSTRAINTS:
+                updateZoomConstraints();
+                break;
         }
     }
 
diff --git a/android/source/src/java/org/mozilla/gecko/gfx/LayerView.java b/android/source/src/java/org/mozilla/gecko/gfx/LayerView.java
index 0aa19ddf93e2..41fafd46a3db 100644
--- a/android/source/src/java/org/mozilla/gecko/gfx/LayerView.java
+++ b/android/source/src/java/org/mozilla/gecko/gfx/LayerView.java
@@ -25,6 +25,8 @@ import android.view.inputmethod.EditorInfo;
 import android.view.inputmethod.InputConnection;
 import android.widget.FrameLayout;
 
+import org.libreoffice.LOEvent;
+import org.libreoffice.LOKitShell;
 import org.libreoffice.LibreOfficeMainActivity;
 import org.libreoffice.R;
 import org.mozilla.gecko.OnInterceptTouchListener;
@@ -319,6 +321,8 @@ public class LayerView extends FrameLayout {
         if (mListener != null) {
             mListener.surfaceChanged(width, height);
         }
+
+        LOKitShell.sendEvent(new LOEvent(LOEvent.UPDATE_ZOOM_CONSTRAINTS));
     }
 
     private void onDestroyed() {


More information about the Libreoffice-commits mailing list