summaryrefslogtreecommitdiff
path: root/android
diff options
context:
space:
mode:
authorTomaž Vajngerl <tomaz.vajngerl@collabora.com>2014-09-24 12:49:08 +0200
committerTomaž Vajngerl <tomaz.vajngerl@collabora.com>2014-09-24 20:43:04 +0200
commit2550cb0124f19269521cecfba39afa4ac4023431 (patch)
tree81013f2290dd2195014a7e0858db739f3229df40 /android
parentef2b36f8d3a023d5562e742fe4db57dafdd28115 (diff)
android: introduce TileProviderFactory
Change-Id: I98ba16b4d1537ddeb2f8a29d15a803d527ccafe3
Diffstat (limited to 'android')
-rw-r--r--android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java13
-rw-r--r--android/experimental/LOAndroid3/src/java/org/libreoffice/LibreOfficeMainActivity.java14
-rw-r--r--android/experimental/LOAndroid3/src/java/org/libreoffice/TileProviderFactory.java31
3 files changed, 46 insertions, 12 deletions
diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java
index d11c4c9db390..506c57eed0f1 100644
--- a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java
+++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java
@@ -26,6 +26,7 @@ public class LOKitThread extends Thread {
private boolean mCheckboardImageSet = false;
public LOKitThread() {
+ TileProviderFactory.initialize();
}
private RectF normlizeRect(ImmutableViewportMetrics metrics) {
@@ -35,9 +36,9 @@ public class LOKitThread extends Thread {
}
private Rect roundToTileSize(RectF input, int tileSize) {
- int minX = (Math.round(input.left) / tileSize) * tileSize;
- int minY = (Math.round(input.top) / tileSize) * tileSize;
- int maxX = ((Math.round(input.right) / tileSize) + 1) * tileSize;
+ int minX = (Math.round(input.left) / tileSize) * tileSize;
+ int minY = (Math.round(input.top) / tileSize) * tileSize;
+ int maxX = ((Math.round(input.right) / tileSize) + 1) * tileSize;
int maxY = ((Math.round(input.bottom) / tileSize) + 1) * tileSize;
return new Rect(minX, minY, maxX, maxY);
}
@@ -136,7 +137,7 @@ public class LOKitThread extends Thread {
if (mTileProvider != null) {
mTileProvider.close();
}
- mTileProvider = new LOKitTileProvider(mApplication.getLayerController(), filename);
+ mTileProvider = TileProviderFactory.create(mApplication.getLayerController(), filename);
boolean isReady = mTileProvider.isReady();
if (isReady) {
updateCheckbardImage();
@@ -191,4 +192,8 @@ public class LOKitThread extends Thread {
Log.i(LOGTAG, "Event: " + event.getTypeString());
mEventQueue.add(event);
}
+
+ public void clearQueue() {
+ mEventQueue.clear();
+ }
}
diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/LibreOfficeMainActivity.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/LibreOfficeMainActivity.java
index 284afe92b43a..35a320d4404d 100644
--- a/android/experimental/LOAndroid3/src/java/org/libreoffice/LibreOfficeMainActivity.java
+++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/LibreOfficeMainActivity.java
@@ -13,7 +13,6 @@ import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.RelativeLayout;
-import org.libreoffice.kit.LibreOfficeKit;
import org.mozilla.gecko.gfx.GeckoLayerClient;
import org.mozilla.gecko.gfx.LayerController;
@@ -111,19 +110,18 @@ public class LibreOfficeMainActivity extends Activity {
mDrawerList.setOnItemClickListener(new DocumentPartClickListener());
}
- LibreOfficeKit.loadStatic();
+ if (sLOKitThread == null) {
+ sLOKitThread = new LOKitThread();
+ sLOKitThread.start();
+ } else {
+ sLOKitThread.clearQueue();
+ }
mLayerController = new LayerController(this);
mLayerClient = new GeckoLayerClient(this);
mLayerController.setLayerClient(mLayerClient);
mGeckoLayout.addView(mLayerController.getView(), 0);
- if (sLOKitThread == null) {
- sLOKitThread = new LOKitThread();
- sLOKitThread.start();
- }
-
- sLOKitThread.mEventQueue.clear();
LOKitShell.sendEvent(LOEvent.load(inputFile));
Log.w(LOGTAG, "UI almost up");
diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/TileProviderFactory.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/TileProviderFactory.java
new file mode 100644
index 000000000000..5cd3ed0ea833
--- /dev/null
+++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/TileProviderFactory.java
@@ -0,0 +1,31 @@
+package org.libreoffice;
+
+
+import org.libreoffice.kit.LibreOfficeKit;
+import org.mozilla.gecko.gfx.LayerController;
+
+public class TileProviderFactory {
+ private static TileProviderID currentTileProvider = TileProviderID.LOKIT;
+
+ private TileProviderFactory() {
+
+ }
+
+ public static void initialize() {
+ if (currentTileProvider == TileProviderID.LOKIT) {
+ LibreOfficeKit.loadStatic();
+ }
+ }
+
+ public static TileProvider create(LayerController layerController, String filename) {
+ if (currentTileProvider == TileProviderID.LOKIT) {
+ return new LOKitTileProvider(layerController, filename);
+ } else {
+ return new MockTileProvider(layerController, filename);
+ }
+ }
+
+ private static enum TileProviderID {
+ MOCK, LOKIT
+ }
+} \ No newline at end of file