diff options
author | Tomaž Vajngerl <tomaz.vajngerl@collabora.co.uk> | 2015-01-28 14:15:16 +0900 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.co.uk> | 2015-02-09 08:09:26 +0100 |
commit | 3d8c72ec68f0ea2af6b7d2abf0f66c96d61910b2 (patch) | |
tree | f6c6a26d2bbb761a60f040e81b990a9a6c098006 /android | |
parent | a8f0257871286bebad3d523759e8f07cc1c83187 (diff) |
android: Use callback types, extract string to rect conversion
Change LOKitTileProvider to use callback types defined in Document.
Extract conversion from payload string to rect into its own method
and use it in INVALIDATE_TILES and INVALIDATE_VISIBLE_CURSOR.
Change-Id: Ic908fb187568d4b6fd73770448198e1e752cc2c6
Diffstat (limited to 'android')
-rw-r--r-- | android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitTileProvider.java | 52 |
1 files changed, 35 insertions, 17 deletions
diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitTileProvider.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitTileProvider.java index 357fa032861e..3e3412a74984 100644 --- a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitTileProvider.java +++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitTileProvider.java @@ -339,31 +339,49 @@ public class LOKitTileProvider implements TileProvider, Document.MessageCallback return mDocument.getPart(); } + private RectF convertCallbackMessageStringToRectF(String text) { + if (text.equals("EMPTY")) { + return null; + } + + String[] coordinates = text.split(","); + + if (coordinates.length != 4) { + return null; + } + int width = Integer.decode(coordinates[0].trim()); + int height = Integer.decode(coordinates[1].trim()); + int x = Integer.decode(coordinates[2].trim()); + int y = Integer.decode(coordinates[3].trim()); + RectF rect = new RectF( + twipToPixel(x, mDPI), + twipToPixel(y, mDPI), + twipToPixel(x + width, mDPI), + twipToPixel(y + height, mDPI) + ); + return rect; + } + /** * Process the retrieved messages from LOK */ @Override public void messageRetrieved(int signalNumber, String payload) { switch (signalNumber) { - case 0: - if (!payload.equals("EMPTY")) { - String[] coordinates = payload.split(","); - - if (coordinates.length == 4) { - int width = Integer.decode(coordinates[0].trim()); - int height = Integer.decode(coordinates[1].trim()); - int x = Integer.decode(coordinates[2].trim()); - int y = Integer.decode(coordinates[3].trim()); - RectF rect = new RectF( - twipToPixel(x, mDPI), - twipToPixel(y, mDPI), - twipToPixel(x + width, mDPI), - twipToPixel(y + height, mDPI) - ); - tileInvalidationCallback.invalidate(rect); - } + case Document.CALLBACK_INVALIDATE_TILES: { + RectF rect = convertCallbackMessageStringToRectF(payload); + if (rect != null) { + tileInvalidationCallback.invalidate(rect); + } + break; + } + case Document.CALLBACK_INVALIDATE_VISIBLE_CURSOR: { + RectF rect = convertCallbackMessageStringToRectF(payload); + if (rect != null) { + //tileInvalidationCallback.invalidate(rect); } break; + } } } } |