diff options
author | Jan Holesovsky <kendy@collabora.com> | 2014-06-28 19:21:49 +0200 |
---|---|---|
committer | Jan Holesovsky <kendy@collabora.com> | 2014-06-30 14:48:03 +0200 |
commit | c72d300ba0fa6eb3a496bdd8f3bbd3baa1b0f70e (patch) | |
tree | 2bd1afb40f219d96fc05f3c0a9fb0883253a1e27 | |
parent | db89e5ff812e2b807476cdf0a10cd81a3040d79b (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.java | 6 | ||||
-rw-r--r-- | android/Bootstrap/src/org/libreoffice/android/LibreOfficeKit.java | 10 | ||||
-rw-r--r-- | sal/android/libreofficekit-jni.c | 15 | ||||
-rw-r--r-- | sal/android/lo-bootstrap.c | 18 |
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 |