From bd050920ffdeb694d0b4a8feaf72625626e851d7 Mon Sep 17 00:00:00 2001 From: Jan Holesovsky <kendy@collabora.com> Date: Fri, 15 Feb 2019 16:01:55 +0100 Subject: android: Set the FONTCONFIG_FILE envvar to the fonts.conf (if exists). Change-Id: Ic9fd97a2ff8a6d96ffcc7ad300ef30201d786528 Reviewed-on: https://gerrit.libreoffice.org/67876 Tested-by: Jenkins Reviewed-by: Jan Holesovsky <kendy@collabora.com> --- .../Bootstrap/src/org/libreoffice/kit/LibreOfficeKit.java | 13 ------------- sal/android/libreofficekit-jni.c | 15 +++++++++++++++ 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/android/Bootstrap/src/org/libreoffice/kit/LibreOfficeKit.java b/android/Bootstrap/src/org/libreoffice/kit/LibreOfficeKit.java index ce84b7409c1f..f6658d64806a 100644 --- a/android/Bootstrap/src/org/libreoffice/kit/LibreOfficeKit.java +++ b/android/Bootstrap/src/org/libreoffice/kit/LibreOfficeKit.java @@ -67,19 +67,6 @@ public final class LibreOfficeKit String cacheDir = activity.getApplication().getCacheDir().getAbsolutePath(); String apkFile = activity.getApplication().getPackageResourcePath(); - // If there is a fonts.conf file in the apk that can be extracted, automatically - // set the FONTCONFIG_FILE env var. - InputStream inputStream; - try { - inputStream = activity.getAssets().open("unpack/etc/fonts/fonts.conf"); - } catch (java.io.IOException exception) { - inputStream = null; - } - - if (inputStream != null) { - putenv("FONTCONFIG_FILE=" + dataDir + "/etc/fonts/fonts.conf"); - } - if (!initializeNative(dataDir, cacheDir, apkFile, mgr)) { Log.e(LOGTAG, "Initialize native failed!"); return; diff --git a/sal/android/libreofficekit-jni.c b/sal/android/libreofficekit-jni.c index abbf3edaed10..c11f7dd4eb09 100644 --- a/sal/android/libreofficekit-jni.c +++ b/sal/android/libreofficekit-jni.c @@ -74,6 +74,9 @@ jboolean libreofficekit_initialize(JNIEnv* env, const char *cacheDirPath; const char *apkFilePath; + const char *fontsConf = "/etc/fonts/fonts.conf"; + char *fontsConfPath; + setenv("OOO_DISABLE_RECOVERY", "1", 1); native_asset_manager = AAssetManager_fromJava(env, assetManager); @@ -89,6 +92,18 @@ jboolean libreofficekit_initialize(JNIEnv* env, // TMPDIR is used by osl_getTempDirURL() setenv("TMPDIR", cache_dir, 1); + fontsConfPath = malloc(strlen(data_dir) + sizeof(fontsConf)); + strcpy(fontsConfPath, data_dir); + strcat(fontsConfPath, fontsConf); + + fd = open(fontsConfPath, O_RDONLY); + if (fd != -1) { + close(fd); + LOGI("Setting FONTCONFIG_FILE to %s", fontsConfPath); + setenv("FONTCONFIG_FILE", fontsConfPath, 1); + } + free(fontsConfPath); + apkFilePath = (*env)->GetStringUTFChars(env, apkFile, NULL); fd = open(apkFilePath, O_RDONLY); -- cgit