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
inputStream = null;
}
putenv("OOO_DISABLE_RECOVERY=1");
if (inputStream != null) {
putenv("FONTCONFIG_FILE=" + dataDir + "/etc/fonts/fonts.conf");
}
// TMPDIR is used by osl_getTempDirURL()
putenv("TMPDIR=" + cacheDir);
if (!initializeNative(dataDir, cacheDir, apkFile, mgr)) {
Log.e(LOGTAG, "Initialize native failed!");
return;
......
......@@ -3,7 +3,7 @@ dummy {
Java_*;
JNI_OnLoad;
_ZTI*; _ZTS*; # weak RTTI symbols for C++ exceptions
libreofficekit_hook*;
libreofficekit_*;
local:
*;
};
......@@ -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 );
#if defined(IOS)
#if defined(IOS) || defined(ANDROID)
LibreOfficeKit *libreofficekit_hook_2(const char* install_path, const char* user_profile_path);
#endif
static LibreOfficeKit *lok_init_2( const char *install_path, const char *user_profile_url )
{
#if !defined(IOS)
#if !defined(IOS) && !defined(ANDROID)
void *dlhandle;
char *imp_lib;
LokHookFunction *pSym;
......
......@@ -65,8 +65,7 @@ void Java_org_libreoffice_kit_LibreOfficeKit_redirectStdio
/// Initialize the LibreOfficeKit.
__attribute__ ((visibility("default")))
jboolean Java_org_libreoffice_kit_LibreOfficeKit_initializeNative
(JNIEnv* env, jobject clazz,
jboolean libreofficekit_initialize(JNIEnv* env,
jstring dataDir, jstring cacheDir, jstring apkFile, jobject assetManager)
{
struct stat st;
......@@ -75,10 +74,7 @@ jboolean Java_org_libreoffice_kit_LibreOfficeKit_initializeNative
const char *cacheDirPath;
const char *apkFilePath;
const char program_dir[] = "/program";
size_t data_dir_len;
(void) clazz;
setenv("OOO_DISABLE_RECOVERY", "1", 1);
native_asset_manager = AAssetManager_fromJava(env, assetManager);
......@@ -90,6 +86,9 @@ jboolean Java_org_libreoffice_kit_LibreOfficeKit_initializeNative
cache_dir = strdup(cacheDirPath);
(*env)->ReleaseStringUTFChars(env, cacheDir, cacheDirPath);
// TMPDIR is used by osl_getTempDirURL()
setenv("TMPDIR", cache_dir, 1);
apkFilePath = (*env)->GetStringUTFChars(env, apkFile, NULL);
fd = open(apkFilePath, O_RDONLY);
......@@ -128,6 +127,21 @@ jboolean Java_org_libreoffice_kit_LibreOfficeKit_initializeNative
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
free(full_program_dir);
data_dir_len = strlen(data_dir);
......@@ -166,8 +180,7 @@ __attribute__ ((visibility("default")))
AAssetManager *
lo_get_native_assetmgr(void)
{
return native_asset_manager;
return native_asset_manager;
}
/* 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