Kaydet (Commit) cb6d7798 authored tarafından Jan Holesovsky's avatar Jan Holesovsky

android: Separate the Android-specific setup from the actual LOK init.

Change-Id: I433376dfea0a43c63827ba15308a614f3466fb71
Reviewed-on: https://gerrit.libreoffice.org/67875
Tested-by: Jenkins
Reviewed-by: 's avatarJan Holesovsky <kendy@collabora.com>
üst f43483ce
...@@ -76,15 +76,10 @@ public final class LibreOfficeKit ...@@ -76,15 +76,10 @@ public final class LibreOfficeKit
inputStream = null; inputStream = null;
} }
putenv("OOO_DISABLE_RECOVERY=1");
if (inputStream != null) { if (inputStream != null) {
putenv("FONTCONFIG_FILE=" + dataDir + "/etc/fonts/fonts.conf"); putenv("FONTCONFIG_FILE=" + dataDir + "/etc/fonts/fonts.conf");
} }
// TMPDIR is used by osl_getTempDirURL()
putenv("TMPDIR=" + cacheDir);
if (!initializeNative(dataDir, cacheDir, apkFile, mgr)) { if (!initializeNative(dataDir, cacheDir, apkFile, mgr)) {
Log.e(LOGTAG, "Initialize native failed!"); Log.e(LOGTAG, "Initialize native failed!");
return; return;
......
...@@ -3,7 +3,7 @@ dummy { ...@@ -3,7 +3,7 @@ dummy {
Java_*; Java_*;
JNI_OnLoad; JNI_OnLoad;
_ZTI*; _ZTS*; # weak RTTI symbols for C++ exceptions _ZTI*; _ZTS*; # weak RTTI symbols for C++ exceptions
libreofficekit_hook*; libreofficekit_*;
local: local:
*; *;
}; };
...@@ -249,13 +249,13 @@ typedef LibreOfficeKit *(LokHookFunction2)( const char *install_path, const char ...@@ -249,13 +249,13 @@ typedef LibreOfficeKit *(LokHookFunction2)( const char *install_path, const char
typedef int (LokHookPreInit) ( const char *install_path, const char *user_profile_url ); typedef int (LokHookPreInit) ( const char *install_path, const char *user_profile_url );
#if defined(IOS) #if defined(IOS) || defined(ANDROID)
LibreOfficeKit *libreofficekit_hook_2(const char* install_path, const char* user_profile_path); LibreOfficeKit *libreofficekit_hook_2(const char* install_path, const char* user_profile_path);
#endif #endif
static LibreOfficeKit *lok_init_2( const char *install_path, const char *user_profile_url ) static LibreOfficeKit *lok_init_2( const char *install_path, const char *user_profile_url )
{ {
#if !defined(IOS) #if !defined(IOS) && !defined(ANDROID)
void *dlhandle; void *dlhandle;
char *imp_lib; char *imp_lib;
LokHookFunction *pSym; LokHookFunction *pSym;
......
...@@ -65,8 +65,7 @@ void Java_org_libreoffice_kit_LibreOfficeKit_redirectStdio ...@@ -65,8 +65,7 @@ void Java_org_libreoffice_kit_LibreOfficeKit_redirectStdio
/// Initialize the LibreOfficeKit. /// Initialize the LibreOfficeKit.
__attribute__ ((visibility("default"))) __attribute__ ((visibility("default")))
jboolean Java_org_libreoffice_kit_LibreOfficeKit_initializeNative jboolean libreofficekit_initialize(JNIEnv* env,
(JNIEnv* env, jobject clazz,
jstring dataDir, jstring cacheDir, jstring apkFile, jobject assetManager) jstring dataDir, jstring cacheDir, jstring apkFile, jobject assetManager)
{ {
struct stat st; struct stat st;
...@@ -75,10 +74,7 @@ jboolean Java_org_libreoffice_kit_LibreOfficeKit_initializeNative ...@@ -75,10 +74,7 @@ jboolean Java_org_libreoffice_kit_LibreOfficeKit_initializeNative
const char *cacheDirPath; const char *cacheDirPath;
const char *apkFilePath; const char *apkFilePath;
const char program_dir[] = "/program"; setenv("OOO_DISABLE_RECOVERY", "1", 1);
size_t data_dir_len;
(void) clazz;
native_asset_manager = AAssetManager_fromJava(env, assetManager); native_asset_manager = AAssetManager_fromJava(env, assetManager);
...@@ -90,6 +86,9 @@ jboolean Java_org_libreoffice_kit_LibreOfficeKit_initializeNative ...@@ -90,6 +86,9 @@ jboolean Java_org_libreoffice_kit_LibreOfficeKit_initializeNative
cache_dir = strdup(cacheDirPath); cache_dir = strdup(cacheDirPath);
(*env)->ReleaseStringUTFChars(env, cacheDir, cacheDirPath); (*env)->ReleaseStringUTFChars(env, cacheDir, cacheDirPath);
// TMPDIR is used by osl_getTempDirURL()
setenv("TMPDIR", cache_dir, 1);
apkFilePath = (*env)->GetStringUTFChars(env, apkFile, NULL); apkFilePath = (*env)->GetStringUTFChars(env, apkFile, NULL);
fd = open(apkFilePath, O_RDONLY); fd = open(apkFilePath, O_RDONLY);
...@@ -128,6 +127,21 @@ jboolean Java_org_libreoffice_kit_LibreOfficeKit_initializeNative ...@@ -128,6 +127,21 @@ jboolean Java_org_libreoffice_kit_LibreOfficeKit_initializeNative
return JNI_FALSE; return JNI_FALSE;
} }
LOGI("LibreOfficeKit: libreofficekit_initialize finished");
}
/// Initialize the LibreOfficeKit.
__attribute__ ((visibility("default")))
jboolean Java_org_libreoffice_kit_LibreOfficeKit_initializeNative
(JNIEnv* env, jobject clazz,
jstring dataDir, jstring cacheDir, jstring apkFile, jobject assetManager)
{
const char program_dir[] = "/program";
size_t data_dir_len;
(void) clazz;
libreofficekit_initialize(env, dataDir, cacheDir, apkFile, assetManager);
// LibreOfficeKit expects a path to the program/ directory // LibreOfficeKit expects a path to the program/ directory
free(full_program_dir); free(full_program_dir);
data_dir_len = strlen(data_dir); data_dir_len = strlen(data_dir);
...@@ -166,8 +180,7 @@ __attribute__ ((visibility("default"))) ...@@ -166,8 +180,7 @@ __attribute__ ((visibility("default")))
AAssetManager * AAssetManager *
lo_get_native_assetmgr(void) lo_get_native_assetmgr(void)
{ {
return native_asset_manager; return native_asset_manager;
} }
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment