diff options
author | Tomaž Vajngerl <tomaz.vajngerl@collabora.co.uk> | 2015-01-15 18:40:49 +0900 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.co.uk> | 2015-01-16 13:18:32 +0100 |
commit | d6a1db752d84acdd9c76a2d9d5d2bd5668660d74 (patch) | |
tree | 87163cfddf044a64cee4e7078e85b602b494a3a0 /android | |
parent | a81010b96575292352316a0d5897ba93521b9254 (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.java | 17 | ||||
-rw-r--r-- | android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitTileProvider.java | 4 |
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); } } |