summaryrefslogtreecommitdiff
path: root/android/experimental
diff options
context:
space:
mode:
authorTomaž Vajngerl <tomaz.vajngerl@collabora.co.uk>2015-01-29 19:03:07 +0900
committerMiklos Vajna <vmiklos@collabora.co.uk>2015-02-09 08:12:06 +0100
commite71b15ccc55b8e4bc4b105a664abfd5eb72da2de (patch)
tree7887da2fd5162a0a31ab3ee3ce2e946b809e6404 /android/experimental
parent576973408d88c9bf6100c09cb10b84edcdc88094 (diff)
tdf#87098 don't adjust zoom/position for spreadsheets
Change-Id: Ieb908980a931b123e2c48fe3ecdc7830b48810ed
Diffstat (limited to 'android/experimental')
-rw-r--r--android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java25
-rw-r--r--android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitTileProvider.java5
-rw-r--r--android/experimental/LOAndroid3/src/java/org/libreoffice/MockTileProvider.java5
-rw-r--r--android/experimental/LOAndroid3/src/java/org/libreoffice/TileProvider.java5
4 files changed, 33 insertions, 7 deletions
diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java
index 5cb8f319964f..354404c34203 100644
--- a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java
+++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java
@@ -63,16 +63,27 @@ public class LOKitThread extends Thread implements TileProvider.TileInvalidation
mViewportMetrics = mLayerClient.getViewportMetrics();
mLayerClient.setViewportMetrics(mViewportMetrics);
- if (mTileProvider.isTextDocument()) {
+ zoomAndRepositionTheDocument();
+
+ mLayerClient.forceRedraw();
+ }
+
+ private void zoomAndRepositionTheDocument() {
+ if (mTileProvider.isSpreadsheet()) {
+ // Don't do anything for spreadsheets - show at 100%
+ } else if (mTileProvider.isTextDocument()) {
+ // Always zoom text document to the beginning of the document and centered by width
float centerY = mViewportMetrics.getCssViewport().centerY();
- mLayerClient.zoomTo(new RectF (0, centerY, mTileProvider.getPageWidth(), centerY));
- } else if (mViewportMetrics.getViewport().width() < mViewportMetrics.getViewport().height()) {
- mLayerClient.zoomTo(mTileProvider.getPageWidth(), 0);
+ mLayerClient.zoomTo(new RectF(0, centerY, mTileProvider.getPageWidth(), centerY));
} else {
- mLayerClient.zoomTo(0, mTileProvider.getPageHeight());
+ // Other documents - always show the whole document on the screen,
+ // regardless of document shape and orientation.
+ if (mViewportMetrics.getViewport().width() < mViewportMetrics.getViewport().height()) {
+ mLayerClient.zoomTo(mTileProvider.getPageWidth(), 0);
+ } else {
+ mLayerClient.zoomTo(0, mTileProvider.getPageHeight());
+ }
}
-
- mLayerClient.forceRedraw();
}
/** Invalidate everything + handle the geometry change */
diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitTileProvider.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitTileProvider.java
index 553945033274..c5f31b37a03a 100644
--- a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitTileProvider.java
+++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitTileProvider.java
@@ -270,6 +270,11 @@ public class LOKitTileProvider implements TileProvider, Document.MessageCallback
return mDocument != null && mDocument.getDocumentType() == Document.DOCTYPE_TEXT;
}
+ @Override
+ public boolean isSpreadsheet() {
+ return mDocument != null && mDocument.getDocumentType() == Document.DOCTYPE_SPREADSHEET;
+ }
+
/**
* Register the tile invalidation callback.
*/
diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/MockTileProvider.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/MockTileProvider.java
index 006ae90fb302..34347bb3b31d 100644
--- a/android/experimental/LOAndroid3/src/java/org/libreoffice/MockTileProvider.java
+++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/MockTileProvider.java
@@ -85,6 +85,11 @@ public class MockTileProvider implements TileProvider {
}
@Override
+ public boolean isSpreadsheet() {
+ return false;
+ }
+
+ @Override
public void registerInvalidationCallback(TileInvalidationCallback tileInvalidationCallback) {
}
diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/TileProvider.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/TileProvider.java
index 759ecadac027..c983c621e9bf 100644
--- a/android/experimental/LOAndroid3/src/java/org/libreoffice/TileProvider.java
+++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/TileProvider.java
@@ -54,6 +54,11 @@ public interface TileProvider {
boolean isTextDocument();
/**
+ * Returns true if the current open document is a spreadsheet.
+ */
+ boolean isSpreadsheet();
+
+ /**
* Register a callback that is invoked when a tile invalidation is
* required.
*