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>
This commit is contained in:
@@ -67,19 +67,6 @@ public final class LibreOfficeKit
|
|||||||
String cacheDir = activity.getApplication().getCacheDir().getAbsolutePath();
|
String cacheDir = activity.getApplication().getCacheDir().getAbsolutePath();
|
||||||
String apkFile = activity.getApplication().getPackageResourcePath();
|
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)) {
|
if (!initializeNative(dataDir, cacheDir, apkFile, mgr)) {
|
||||||
Log.e(LOGTAG, "Initialize native failed!");
|
Log.e(LOGTAG, "Initialize native failed!");
|
||||||
return;
|
return;
|
||||||
|
@@ -74,6 +74,9 @@ jboolean libreofficekit_initialize(JNIEnv* env,
|
|||||||
const char *cacheDirPath;
|
const char *cacheDirPath;
|
||||||
const char *apkFilePath;
|
const char *apkFilePath;
|
||||||
|
|
||||||
|
const char *fontsConf = "/etc/fonts/fonts.conf";
|
||||||
|
char *fontsConfPath;
|
||||||
|
|
||||||
setenv("OOO_DISABLE_RECOVERY", "1", 1);
|
setenv("OOO_DISABLE_RECOVERY", "1", 1);
|
||||||
|
|
||||||
native_asset_manager = AAssetManager_fromJava(env, assetManager);
|
native_asset_manager = AAssetManager_fromJava(env, assetManager);
|
||||||
@@ -89,6 +92,18 @@ jboolean libreofficekit_initialize(JNIEnv* env,
|
|||||||
// TMPDIR is used by osl_getTempDirURL()
|
// TMPDIR is used by osl_getTempDirURL()
|
||||||
setenv("TMPDIR", cache_dir, 1);
|
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);
|
apkFilePath = (*env)->GetStringUTFChars(env, apkFile, NULL);
|
||||||
|
|
||||||
fd = open(apkFilePath, O_RDONLY);
|
fd = open(apkFilePath, O_RDONLY);
|
||||||
|
Reference in New Issue
Block a user