summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Holesovsky <kendy@collabora.com>2014-06-28 19:21:49 +0200
committerJan Holesovsky <kendy@collabora.com>2014-06-30 14:48:03 +0200
commitc72d300ba0fa6eb3a496bdd8f3bbd3baa1b0f70e (patch)
tree2bd1afb40f219d96fc05f3c0a9fb0883253a1e27
parentdb89e5ff812e2b807476cdf0a10cd81a3040d79b (diff)
android: Make the extract_files() part of setup / init.
We need to have the files extracted before we attempt to initialize LibreOfficeKit (call libreofficekit_hook), otherwise the .rdb's are not there. Change-Id: Ib49db7e945a709d18a063eb488a27df18fef542b
-rw-r--r--android/Bootstrap/src/org/libreoffice/android/Bootstrap.java6
-rw-r--r--android/Bootstrap/src/org/libreoffice/android/LibreOfficeKit.java10
-rw-r--r--sal/android/libreofficekit-jni.c15
-rw-r--r--sal/android/lo-bootstrap.c18
4 files changed, 11 insertions, 38 deletions
diff --git a/android/Bootstrap/src/org/libreoffice/android/Bootstrap.java b/android/Bootstrap/src/org/libreoffice/android/Bootstrap.java
index 13d1a23fdfa9..89766e62cf89 100644
--- a/android/Bootstrap/src/org/libreoffice/android/Bootstrap.java
+++ b/android/Bootstrap/src/org/libreoffice/android/Bootstrap.java
@@ -37,9 +37,6 @@ public final class Bootstrap
String cacheDir,
String apkFile);
- // Extracts files in the .apk that need to be extraced into the app's tree
- static native void extract_files();
-
// Wrapper for getpid()
public static native int getpid();
@@ -101,9 +98,6 @@ public final class Bootstrap
activity.getApplication().getPackageResourcePath()))
return;
- // Extract files from the .apk that can't be used mmapped directly from it
- extract_files();
-
// If we notice that a fonts.conf file was extracted, automatically
// set the FONTCONFIG_FILE env var.
InputStream i;
diff --git a/android/Bootstrap/src/org/libreoffice/android/LibreOfficeKit.java b/android/Bootstrap/src/org/libreoffice/android/LibreOfficeKit.java
index e7507d5a1dcf..58d6c500a17f 100644
--- a/android/Bootstrap/src/org/libreoffice/android/LibreOfficeKit.java
+++ b/android/Bootstrap/src/org/libreoffice/android/LibreOfficeKit.java
@@ -26,7 +26,7 @@ public final class LibreOfficeKit
{
}
- private static String TAG = "lo-bootstrap";
+ private static String TAG = "LibreOfficeKit";
// Native methods in this class are all implemented in
// sal/android/lo-bootstrap.c as the lo-bootstrap library is loaded with
@@ -37,9 +37,6 @@ public final class LibreOfficeKit
String cacheDir,
String apkFile);
- // Extracts files in the .apk that need to be extraced into the app's tree
- static native void extract_files();
-
/*
// Wrapper for getpid()
public static native int getpid();
@@ -92,7 +89,7 @@ public final class LibreOfficeKit
ApplicationInfo ai = activity.getApplicationInfo();
dataDir = ai.dataDir;
- Log.i(TAG, String.format("dataDir=%s\n", dataDir));
+ Log.i(TAG, String.format("Initializing LibreOfficeKit, dataDir=%s\n", dataDir));
redirect_stdio(true);
@@ -101,9 +98,6 @@ public final class LibreOfficeKit
activity.getApplication().getPackageResourcePath()))
return;
- // Extract files from the .apk that can't be used mmapped directly from it
- extract_files();
-
// If we notice that a fonts.conf file was extracted, automatically
// set the FONTCONFIG_FILE env var.
InputStream i;
diff --git a/sal/android/libreofficekit-jni.c b/sal/android/libreofficekit-jni.c
index cf8308afa01b..3dcf773e9cf1 100644
--- a/sal/android/libreofficekit-jni.c
+++ b/sal/android/libreofficekit-jni.c
@@ -37,7 +37,6 @@ extern int apk_file_size;
extern void Java_org_libreoffice_android_Bootstrap_putenv(JNIEnv* env, jobject clazz, jstring string);
extern void Java_org_libreoffice_android_Bootstrap_redirect_1stdio(JNIEnv* env, jobject clazz, jboolean state);
-extern void Java_org_libreoffice_android_Bootstrap_extract_1files(JNIEnv* env, jobject clazz);
extern LibreOfficeKit *libreofficekit_hook(const char* install_path);
@@ -63,15 +62,6 @@ Java_org_libreoffice_android_LibreOfficeKit_redirect_1stdio(JNIEnv* env,
Java_org_libreoffice_android_Bootstrap_redirect_1stdio(env, clazz, state);
}
-/// Call the same method from Bootstrap.
-__attribute__ ((visibility("default")))
-void
-Java_org_libreoffice_android_LibreOfficeKit_extract_1files(JNIEnv* env,
- jobject clazz)
-{
- Java_org_libreoffice_android_Bootstrap_extract_1files(env, clazz);
-}
-
/// Initialize the LibreOfficeKit.
__attribute__ ((visibility("default")))
jboolean
@@ -136,6 +126,11 @@ Java_org_libreoffice_android_LibreOfficeKit_init__Ljava_lang_String_2Ljava_lang_
return JNI_FALSE;
}
+ // Extract files from the .apk that can't be used mmapped directly from it
+ extract_files(UNPACK_TREE, UNPACK_TREE, 0);
+ extract_files(UNPACK_TREE_GZ, UNPACK_TREE_GZ, 1);
+
+ // Initialize LibreOfficeKit
pOffice = libreofficekit_hook(data_dir);
if (!pOffice)
{
diff --git a/sal/android/lo-bootstrap.c b/sal/android/lo-bootstrap.c
index a7765bed563e..d1a7521fb0d0 100644
--- a/sal/android/lo-bootstrap.c
+++ b/sal/android/lo-bootstrap.c
@@ -311,6 +311,10 @@ Java_org_libreoffice_android_Bootstrap_setup__Ljava_lang_String_2Ljava_lang_Stri
if (!setup_assets_tree())
return JNI_FALSE;
+ // Extract files from the .apk that can't be used mmapped directly from it
+ extract_files(UNPACK_TREE, UNPACK_TREE, 0);
+ extract_files(UNPACK_TREE_GZ, UNPACK_TREE_GZ, 1);
+
return JNI_TRUE;
}
@@ -807,20 +811,6 @@ extract_files(const char *root,
lo_apk_closedir(tree);
}
-// static native void extract_files();
-
-__attribute__ ((visibility("default")))
-void
-Java_org_libreoffice_android_Bootstrap_extract_1files(JNIEnv* env,
- jobject clazz)
-{
- (void) env;
- (void) clazz;
-
- extract_files(UNPACK_TREE, UNPACK_TREE, 0);
- extract_files(UNPACK_TREE_GZ, UNPACK_TREE_GZ, 1);
-}
-
/* Android's JNI works only to libraries loaded through Java's
* System.loadLibrary(), it seems. But now with just one big app-specific .so
* on Android, that would not be a problem, but for historical reasons, we