diff options
author | Jacobo Aragunde Pérez <jaragunde@igalia.com> | 2014-07-15 20:25:05 +0200 |
---|---|---|
committer | Jacobo Aragunde Pérez <jaragunde@igalia.com> | 2014-07-16 10:21:56 +0200 |
commit | 0a6d7d6ef2cd1032ffad06210f843c9240d4b944 (patch) | |
tree | afa9324a0e8e720892cd1dd5b880477b01d4349e /android | |
parent | 133d6d8d4dec497276c3a9b0ba6761cffd322f81 (diff) |
LOAndroid3: Open any text document via intents
Change-Id: I06ed104e4f26191b1ca1eb9c34aa54e3b0422500
Diffstat (limited to 'android')
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"); |