summaryrefslogtreecommitdiff
path: root/android
diff options
context:
space:
mode:
authorTomaž Vajngerl <tomaz.vajngerl@collabora.co.uk>2015-01-15 18:40:49 +0900
committerMiklos Vajna <vmiklos@collabora.co.uk>2015-01-16 13:18:32 +0100
commitd6a1db752d84acdd9c76a2d9d5d2bd5668660d74 (patch)
tree87163cfddf044a64cee4e7078e85b602b494a3a0 /android
parenta81010b96575292352316a0d5897ba93521b9254 (diff)
android: register invalidtion callback on first touch
Change-Id: I3a98358934b79a2ace574714aa331fdce4a421bb
Diffstat (limited to 'android')
-rw-r--r--android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java17
-rw-r--r--android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitTileProvider.java4
2 files changed, 15 insertions, 6 deletions
diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java
index 30af98d46e78..ed895364c994 100644
--- a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java
+++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java
@@ -4,6 +4,7 @@ import android.graphics.Bitmap;
import android.graphics.PointF;
import android.graphics.RectF;
import android.util.Log;
+import android.view.MotionEvent;
import org.mozilla.gecko.gfx.CairoImage;
import org.mozilla.gecko.gfx.ComposedTileLayer;
@@ -21,6 +22,7 @@ public class LOKitThread extends Thread implements TileProvider.TileInvalidation
private TileProvider mTileProvider;
private ImmutableViewportMetrics mViewportMetrics;
private GeckoLayerClient mLayerClient;
+ private boolean mInvalidationCallbackRegistered = false;
public LOKitThread() {
TileProviderFactory.initialize();
@@ -97,11 +99,10 @@ public class LOKitThread extends Thread implements TileProvider.TileInvalidation
boolean isReady = mTileProvider.isReady();
if (isReady) {
LOKitShell.showProgressSpinner();
- mTileProvider.registerInvalidationCallback(this);
refresh();
LOKitShell.hideProgressSpinner();
+ mInvalidationCallbackRegistered = false;
}
-
return isReady;
}
@@ -143,8 +144,18 @@ public class LOKitThread extends Thread implements TileProvider.TileInvalidation
break;
case LOEvent.THUMBNAIL:
createThumbnail(event.mTask);
+ break;
case LOEvent.TOUCH:
- LibreOfficeMainActivity.mAppContext.showSoftKeyboard();
+ touch(event.mTouchType, event.mMotionEvent);
+ break;
+ }
+ }
+
+ private void touch(String touchType, MotionEvent motionEvent) {
+ LibreOfficeMainActivity.mAppContext.showSoftKeyboard();
+ if (!mInvalidationCallbackRegistered) {
+ mTileProvider.registerInvalidationCallback(this);
+ mInvalidationCallbackRegistered = true;
}
}
diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitTileProvider.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitTileProvider.java
index 752e0a91ea45..9334536fce59 100644
--- a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitTileProvider.java
+++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitTileProvider.java
@@ -70,8 +70,7 @@ public class LOKitTileProvider implements TileProvider, Document.MessageCallback
public void postLoad() {
mDocument.initializeForRendering();
- // FIXME see gtktiledviewer, this has to be registered when we enter edit mode, not right after loading.
- // mDocument.setMessageCallback(this);
+ mDocument.setMessageCallback(this);
int parts = mDocument.getParts();
Log.i(LOGTAG, "Document parts: " + parts);
@@ -303,7 +302,6 @@ public class LOKitTileProvider implements TileProvider, Document.MessageCallback
twipToPixel(x + width, mDPI),
twipToPixel(y + height, mDPI)
);
- Log.i(LOGTAG, "Invalidate R: " + rect +" - " + getPageWidth() + " " + getPageHeight());
tileInvalidationCallback.invalidate(rect);
}
}