[Libreoffice-commits] online.git: 4 commits - android/app android/templates loleaflet/html loleaflet/Makefile.am
Jan Holesovsky (via logerrit)
logerrit at kemper.freedesktop.org
Thu Jul 11 06:35:41 UTC 2019
android/app/build.gradle | 13 ++
android/app/src/main/cpp/androidapp.cpp | 3
android/app/src/main/java/org/libreoffice/androidapp/MainActivity.java | 54 +++++++++-
android/templates/untitled.odp |binary
loleaflet/Makefile.am | 3
loleaflet/html/loleaflet.html.m4 | 2
6 files changed, 72 insertions(+), 3 deletions(-)
New commits:
commit b75adb8629e84f498731cc1094a8c9e278576c0e
Author: Jan Holesovsky <kendy at collabora.com>
AuthorDate: Tue Jul 9 17:12:08 2019 +0200
Commit: Jan Holesovsky <kendy at collabora.com>
CommitDate: Thu Jul 11 08:34:03 2019 +0200
android: Corrected the .odp template.
Change-Id: Iaea2e4f47dd2252ee1d736bd8d49ed1bffe37381
diff --git a/android/templates/untitled.odp b/android/templates/untitled.odp
index 7fc84f8e8..767ac2d3c 100644
Binary files a/android/templates/untitled.odp and b/android/templates/untitled.odp differ
commit 18ee97d9c888513efd385467e1a41f02cd4b6bc1
Author: Jan Holesovsky <kendy at collabora.com>
AuthorDate: Tue Jul 9 14:48:41 2019 +0200
Commit: Jan Holesovsky <kendy at collabora.com>
CommitDate: Thu Jul 11 08:33:52 2019 +0200
android: Copy also the branded images if any.
Change-Id: I9f8ed9f726015f9a668bd0d6e8f6d934f60cd413
diff --git a/loleaflet/Makefile.am b/loleaflet/Makefile.am
index 68d132e7c..2106a0846 100644
--- a/loleaflet/Makefile.am
+++ b/loleaflet/Makefile.am
@@ -155,6 +155,7 @@ if ENABLE_ANDROIDAPP
@rm -rf $(abs_top_srcdir)/android/app/src/main/assets/dist
@cp -a $(builddir)/dist $(abs_top_srcdir)/android/app/src/main/assets/
@if test -d "$(APP_BRANDING_DIR)" ; then cp -a "$(APP_BRANDING_DIR)/branding.css" "$(APP_BRANDING_DIR)/branding.js" $(abs_top_srcdir)/android/app/src/main/assets/dist/ ; else touch $(abs_top_srcdir)/android/app/src/main/assets/dist/branding.css ; fi
+ @if test -d "$(APP_BRANDING_DIR)" ; then cp -a "$(APP_BRANDING_DIR)"/*.svg $(abs_top_srcdir)/android/app/src/main/assets/dist/images/ ; fi
@if test -d "$(APP_BRANDING_DIR)" ; then cp -a "$(APP_BRANDING_DIR)/toolbar-bg-logo.svg" $(abs_top_srcdir)/android/app/src/main/assets/dist/images/toolbar-bg.svg ; fi
@echo
@echo "Copied JS, HTML and CSS to the Android project (android/app/src/main/assets/dist)."
commit 6f5290da0ee56030fba6f81978c54c125749112d
Author: Jan Holesovsky <kendy at collabora.com>
AuthorDate: Tue Jul 9 13:46:23 2019 +0200
Commit: Jan Holesovsky <kendy at collabora.com>
CommitDate: Thu Jul 11 08:33:43 2019 +0200
android: Actually use the branding if it exists.
Change-Id: Idd7136f0657452c5fb88f2a84b5c647ab8c2935b
diff --git a/loleaflet/Makefile.am b/loleaflet/Makefile.am
index 456400f64..68d132e7c 100644
--- a/loleaflet/Makefile.am
+++ b/loleaflet/Makefile.am
@@ -154,7 +154,7 @@ build-loleaflet: | $(LOLEAFLET_L10N_DST) \
if ENABLE_ANDROIDAPP
@rm -rf $(abs_top_srcdir)/android/app/src/main/assets/dist
@cp -a $(builddir)/dist $(abs_top_srcdir)/android/app/src/main/assets/
- @if test -d "$(APP_BRANDING_DIR)" ; then cp -a "$(APP_BRANDING_DIR)/branding.css" "$(APP_BRANDING_DIR)/branding.js" $(abs_top_srcdir)/android/app/src/main/assets/dist/ ; fi
+ @if test -d "$(APP_BRANDING_DIR)" ; then cp -a "$(APP_BRANDING_DIR)/branding.css" "$(APP_BRANDING_DIR)/branding.js" $(abs_top_srcdir)/android/app/src/main/assets/dist/ ; else touch $(abs_top_srcdir)/android/app/src/main/assets/dist/branding.css ; fi
@if test -d "$(APP_BRANDING_DIR)" ; then cp -a "$(APP_BRANDING_DIR)/toolbar-bg-logo.svg" $(abs_top_srcdir)/android/app/src/main/assets/dist/images/toolbar-bg.svg ; fi
@echo
@echo "Copied JS, HTML and CSS to the Android project (android/app/src/main/assets/dist)."
diff --git a/loleaflet/html/loleaflet.html.m4 b/loleaflet/html/loleaflet.html.m4
index 583851954..db9502090 100644
--- a/loleaflet/html/loleaflet.html.m4
+++ b/loleaflet/html/loleaflet.html.m4
@@ -88,6 +88,8 @@ ifelse(MOBILEAPP,[true],
<!--%BRANDING_CSS%--> <!-- add your logo here -->
ifelse(IOSAPP,[true],
[<link rel="stylesheet" href="Branding/branding.css">])
+ifelse(ANDROIDAPP,[true],
+ [<link rel="stylesheet" href="branding.css">])
ifelse(MOBILEAPP,[true],
[
ifelse(IOSAPP,[true],
commit 55377739c66660d177d8922fd0110ac0ec23cee0
Author: Jan Holesovsky <kendy at collabora.com>
AuthorDate: Thu Jun 27 12:04:15 2019 +0200
Commit: Jan Holesovsky <kendy at collabora.com>
CommitDate: Thu Jul 11 08:33:34 2019 +0200
android: Avoid system fonts.
They are huge and fontconfig has real trouble indexing / creating the
cache on the 1st start.
This reduces the startup time by nearly a minute (on my phone).
Change-Id: I85abd541251ab949c3c29c4df5fb95ce28f5634c
diff --git a/android/app/build.gradle b/android/app/build.gradle
index ec472b91d..0ee8baabe 100644
--- a/android/app/build.gradle
+++ b/android/app/build.gradle
@@ -100,7 +100,18 @@ task copyUnpackAssets(type: Copy) {
filter {
String line ->
line.replaceAll(
- '@@APPLICATION_ID@@', new String("${android.defaultConfig.applicationId}")
+ '@@APPLICATION_ID@@', new String("${android.defaultConfig.applicationId}")
+ ).replaceAll(
+ // FIXME Avoid the Android system fonts for the moment,
+ // the huge Noto Sans fonts have terrible impact on the 1st
+ // start performance.
+ // The real solution would be to either make fontconfig
+ // faster, or at least find a way to avoid only the Noto
+ // Sans, or present a progressbar or something.
+ // For the moment, we just copy the Roboto font (needed
+ // for the dialogs; see MainActivity.copyFonts()) and
+ // remove the system fonts from the config.
+ '<dir>/system/fonts</dir>', new String("")
)
}
}
diff --git a/android/app/src/main/cpp/androidapp.cpp b/android/app/src/main/cpp/androidapp.cpp
index 5ff2f4dbb..7f5cf0f74 100644
--- a/android/app/src/main/cpp/androidapp.cpp
+++ b/android/app/src/main/cpp/androidapp.cpp
@@ -47,6 +47,9 @@ JNI_OnLoad(JavaVM* vm, void*) {
setenv("SAL_LOK_OPTIONS", "unipoll", 0);
+ // Uncomment the following to see the logs from the core too
+ //setenv("SAL_LOG", "+WARN+INFO", 0);
+
Log::initialize("Mobile", "debug", false, false, {});
return JNI_VERSION_1_6;
diff --git a/android/app/src/main/java/org/libreoffice/androidapp/MainActivity.java b/android/app/src/main/java/org/libreoffice/androidapp/MainActivity.java
index 78cd43010..c2897e304 100644
--- a/android/app/src/main/java/org/libreoffice/androidapp/MainActivity.java
+++ b/android/app/src/main/java/org/libreoffice/androidapp/MainActivity.java
@@ -35,9 +35,12 @@ import android.webkit.WebViewClient;
import android.widget.Toast;
import java.io.File;
+import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
import java.net.URI;
import java.net.URISyntaxException;
import java.nio.ByteBuffer;
@@ -136,9 +139,58 @@ public class MainActivity extends AppCompatActivity {
}
}
+ /** Copies fonts except the NotoSans from the system to our location.
+ * This is necessary because the NotoSans is huge and fontconfig needs
+ * ages to parse them.
+ */
+ private static boolean copyFonts(String fromPath, String targetDir) {
+ try {
+ File target = new File(targetDir);
+ if (!target.exists())
+ target.mkdirs();
+
+ File from = new File(fromPath);
+ File[] files = from.listFiles();
+ for (File fontFile : files) {
+ String fontFileName = fontFile.getName();
+ if (!fontFileName.equals("Roboto-Regular.ttf")) {
+ Log.i(TAG, "Ignored font file: " + fontFile);
+ continue;
+ }
+ else {
+ Log.i(TAG, "Copying font file: " + fontFile);
+ }
+
+ // copy the font file over
+ InputStream in = new FileInputStream(fontFile);
+ try {
+ OutputStream out = new FileOutputStream(targetDir + "/" + fontFile.getName());
+ try {
+ byte[] buffer = new byte[4096];
+ int len;
+ while ((len = in.read(buffer)) > 0) {
+ out.write(buffer, 0, len);
+ }
+ } finally {
+ out.close();
+ }
+ } finally {
+ in.close();
+ }
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ Log.e(TAG, "copyFonts failed: " + e.getMessage());
+ return false;
+ }
+
+ return true;
+ }
+
private void updatePreferences() {
if (sPrefs.getInt(ASSETS_EXTRACTED_PREFS_KEY, 0) != BuildConfig.VERSION_CODE) {
- if (copyFromAssets(getAssets(), "unpack", getApplicationInfo().dataDir)) {
+ if (copyFromAssets(getAssets(), "unpack", getApplicationInfo().dataDir) &&
+ copyFonts("/system/fonts", getApplicationInfo().dataDir + "/user/fonts")) {
sPrefs.edit().putInt(ASSETS_EXTRACTED_PREFS_KEY, BuildConfig.VERSION_CODE).apply();
}
}
More information about the Libreoffice-commits
mailing list