summaryrefslogtreecommitdiff
path: root/android
diff options
context:
space:
mode:
authorJacobo Aragunde Pérez <jaragunde@igalia.com>2014-07-15 20:25:05 +0200
committerJacobo Aragunde Pérez <jaragunde@igalia.com>2014-07-16 10:21:56 +0200
commit0a6d7d6ef2cd1032ffad06210f843c9240d4b944 (patch)
treeafa9324a0e8e720892cd1dd5b880477b01d4349e /android
parent133d6d8d4dec497276c3a9b0ba6761cffd322f81 (diff)
LOAndroid3: Open any text document via intents
Change-Id: I06ed104e4f26191b1ca1eb9c34aa54e3b0422500
Diffstat (limited to 'android')
-rw-r--r--android/experimental/LOAndroid3/AndroidManifest.xml7
-rw-r--r--android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java6
-rw-r--r--android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitTileProvider.java3
-rw-r--r--android/experimental/LOAndroid3/src/java/org/libreoffice/LibreOfficeMainActivity.java12
4 files changed, 23 insertions, 5 deletions
diff --git a/android/experimental/LOAndroid3/AndroidManifest.xml b/android/experimental/LOAndroid3/AndroidManifest.xml
index d456ca68c7ae..ab2db556e65f 100644
--- a/android/experimental/LOAndroid3/AndroidManifest.xml
+++ b/android/experimental/LOAndroid3/AndroidManifest.xml
@@ -25,6 +25,13 @@
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
+ <intent-filter>
+ <action android:name="android.intent.action.VIEW" />
+ <action android:name="android.intent.action.EDIT" />
+ <action android:name="android.intent.action.PICK" />
+ <category android:name="android.intent.category.DEFAULT" />
+ <data android:mimeType="application/vnd.oasis.opendocument.text" />
+ </intent-filter>
</activity>
</application>
</manifest>
diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java
index 4744cf43c780..2db5c0d5dea7 100644
--- a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java
+++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java
@@ -19,8 +19,10 @@ public class LOKitThread extends Thread {
private LibreOfficeMainActivity mApplication;
private TileProvider mTileProvider;
private ViewportMetrics mViewportMetrics;
+ private String mInputFile;
- LOKitThread() {
+ LOKitThread(String inputFile) {
+ mInputFile = inputFile;
}
private boolean draw() throws InterruptedException {
@@ -86,7 +88,7 @@ public class LOKitThread extends Thread {
private void initialize() {
mApplication = LibreOfficeMainActivity.mAppContext;
- mTileProvider = new LOKitTileProvider(mApplication.getLayerController());
+ mTileProvider = new LOKitTileProvider(mApplication.getLayerController(), mInputFile);
}
public void run() {
diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitTileProvider.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitTileProvider.java
index 3459e2bb46bb..fd1979b41559 100644
--- a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitTileProvider.java
+++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitTileProvider.java
@@ -33,14 +33,13 @@ public class LOKitTileProvider implements TileProvider {
return (input / dpi) * 1440.0;
}
- public LOKitTileProvider(LayerController layerController) {
+ public LOKitTileProvider(LayerController layerController, String input) {
mLayerController = layerController;
mDPI = (double) LOKitShell.getDpi();
LibreOfficeKit.putenv("SAL_LOG=+WARN+INFO-INFO.legacy.osl-INFO.i18nlangtag");
LibreOfficeKit.init(LibreOfficeMainActivity.mAppContext);
mOffice = new Office(LibreOfficeKit.getLibreOfficeKitHandle());
- String input = "/assets/test1.odt";
mDocument = mOffice.documentLoad(input);
mTileWidth = pixelToTwip(TILE_SIZE, mDPI);
diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/LibreOfficeMainActivity.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/LibreOfficeMainActivity.java
index 1d267d938e85..a9d17aa42f47 100644
--- a/android/experimental/LOAndroid3/src/java/org/libreoffice/LibreOfficeMainActivity.java
+++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/LibreOfficeMainActivity.java
@@ -1,6 +1,7 @@
package org.libreoffice;
import android.app.Activity;
+import android.net.Uri;
import android.os.Bundle;
import android.os.SystemClock;
import android.util.DisplayMetrics;
@@ -16,6 +17,7 @@ import org.mozilla.gecko.gfx.LayerController;
public class LibreOfficeMainActivity extends Activity {
private static final String LOGTAG = "LibreOfficeMainActivity";
+ private static final String DEFAULT_DOC_PATH = "/assets/test1.odt";
private LinearLayout mMainLayout;
private RelativeLayout mGeckoLayout;
@@ -61,6 +63,14 @@ public class LibreOfficeMainActivity extends Activity {
Log.w(LOGTAG, "zerdatime " + SystemClock.uptimeMillis() + " - onCreate");
+ String inputFile = new String();
+ if (getIntent().getData() != null) {
+ inputFile = getIntent().getData().getEncodedPath();
+ }
+ else {
+ inputFile = DEFAULT_DOC_PATH;
+ }
+
setContentView(R.layout.activity_main);
// setup gecko layout
@@ -78,7 +88,7 @@ public class LibreOfficeMainActivity extends Activity {
mGeckoLayout.addView(mLayerController.getView(), 0);
}
- sLOKitThread = new LOKitThread();
+ sLOKitThread = new LOKitThread(inputFile);
sLOKitThread.start();
Log.w(LOGTAG, "zerdatime " + SystemClock.uptimeMillis() + " - UI almost up");