[Libreoffice-commits] online.git: Branch 'distro/collabora/co-4-2' - android/lib common/Session.hpp loleaflet/src wsd/ClientSession.cpp

2020-09-10 Thread mert (via logerrit)
 android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java |4 +++
 common/Session.hpp   |4 +++
 loleaflet/src/core/Socket.js |3 ++
 wsd/ClientSession.cpp|   13 
++
 4 files changed, 24 insertions(+)

New commits:
commit 2500b10564bc37140b45ffc7abe641841fc6ec72
Author: mert 
AuthorDate: Thu Sep 10 17:04:36 2020 +0300
Commit: Andras Timar 
CommitDate: Thu Sep 10 21:57:55 2020 +0200

Fix unable to open password protected documents on mobile

Change-Id: Ifd67cb6f3640784176abfe483f0364c1dfe4b5d9
Signed-off-by: mert 
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/102388
Tested-by: Jenkins CollaboraOffice 
Reviewed-by: Andras Timar 

diff --git 
a/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java 
b/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java
index 88b1fdafd..2066a1fd6 100644
--- a/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java
+++ b/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java
@@ -943,6 +943,10 @@ public class LOActivity extends AppCompatActivity {
 }
 return false;
 }
+case "loadwithpassword": {
+mProgressDialog.determinate(R.string.loading);
+return true;
+}
 }
 return true;
 }
diff --git a/common/Session.hpp b/common/Session.hpp
index 34a566b3c..523b45b12 100644
--- a/common/Session.hpp
+++ b/common/Session.hpp
@@ -180,6 +180,10 @@ public:
 
 bool getHaveDocPassword() const { return _haveDocPassword; }
 
+void setHaveDocPassword(const bool val) { _haveDocPassword = val; }
+
+void setDocPassword(const std::string& password) { _docPassword = 
password; }
+
 const std::string& getDocPassword() const { return _docPassword; }
 
 const std::string& getUserExtraInfo() const { return _userExtraInfo; }
diff --git a/loleaflet/src/core/Socket.js b/loleaflet/src/core/Socket.js
index 32a601aca..ce834a21f 100644
--- a/loleaflet/src/core/Socket.js
+++ b/loleaflet/src/core/Socket.js
@@ -683,6 +683,9 @@ L.Socket = L.Class.extend({
callback: L.bind(function(data) {
if (data) {
this._map._docPassword 
= data.password;
+   if 
(window.ThisIsAMobileApp) {
+   
window.postMobileMessage('loadwithpassword password=' + data.password);
+   }

this._map.loadDocument();
} else if (passwordType === 
'to-modify') {
this._map._docPassword 
= '';
diff --git a/wsd/ClientSession.cpp b/wsd/ClientSession.cpp
index b24f9b655..c00c7dbea 100644
--- a/wsd/ClientSession.cpp
+++ b/wsd/ClientSession.cpp
@@ -392,6 +392,19 @@ bool ClientSession::_handleInput(const char *buffer, int 
length)
 
 return loadDocument(buffer, length, tokens, docBroker);
 }
+else if (tokens.equals(0, "loadwithpassword"))
+{
+std::string docPassword;
+if (tokens.size() > 1 && getTokenString(tokens[1], "password", 
docPassword))
+{
+if (!docPassword.empty())
+{
+setHaveDocPassword(true);
+setDocPassword(tokens[1]);
+}
+}
+return loadDocument(buffer, length, tokens, docBroker);
+}
 else if (tokens[0] != "canceltiles" &&
  tokens[0] != "tileprocessed" &&
  tokens[0] != "clientzoom" &&
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] online.git: Branch 'distro/collabora/co-4-2' - android/lib

2020-08-26 Thread mert (via logerrit)
 android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java |4 

 1 file changed, 4 insertions(+)

New commits:
commit e527603c3b863294babec82a9098768d54375cac
Author: mert 
AuthorDate: Tue Aug 25 22:44:12 2020 +0300
Commit: Andras Timar 
CommitDate: Wed Aug 26 09:19:45 2020 +0200

Fix insert image dialog only opens once

Change-Id: I5a184feadcf25e22829f80ad4da20d25e04d3f27
Signed-off-by: mert 
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/101348
Tested-by: Jenkins
Reviewed-by: Andras Timar 
(cherry picked from commit 851bdeb949d28dd5ee5d451b85b121eecb160a6f)
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/101355
Tested-by: Andras Timar 

diff --git 
a/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java 
b/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java
index c131a983f..88b1fdafd 100644
--- a/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java
+++ b/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java
@@ -578,6 +578,10 @@ public class LOActivity extends AppCompatActivity {
 @Override
 public void onActivityResult(int requestCode, int resultCode, Intent 
intent) {
 if (resultCode != RESULT_OK) {
+if (requestCode == REQUEST_SELECT_IMAGE_FILE) {
+valueCallback.onReceiveValue(null);
+valueCallback = null;
+}
 return;
 }
 
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] online.git: Branch 'distro/collabora/co-4-2' - android/lib loleaflet/css loleaflet/src

2020-08-14 Thread mert (via logerrit)
 android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java |   15 
+++
 loleaflet/css/toolbar.css|1 
 loleaflet/src/control/Control.MobileTopBar.js|2 
 loleaflet/src/control/Control.Toolbar.js |8 +++
 loleaflet/src/control/Control.UIManager.js   |   21 
+-
 loleaflet/src/control/Permission.js  |6 ++
 loleaflet/src/map/Map.js |5 ++
 7 files changed, 55 insertions(+), 3 deletions(-)

New commits:
commit 2e591af0322535e08bd4c2f3ad459e4e471f772a
Author: mert 
AuthorDate: Wed Feb 12 20:53:34 2020 +0300
Commit: Jan Holesovsky 
CommitDate: Fri Aug 14 21:53:46 2020 +0200

android: back button switches to readonly mode instead of closing

Currently pressing back button on edit mode closes the document,
this patch may prevent unintentional touches

Change-Id: Ic7061186fa8794203fd4614c07a11b219d3a10d9
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/100666
Tested-by: Jenkins CollaboraOffice 
Reviewed-by: Mert Tumer 
Reviewed-by: Jan Holesovsky 

diff --git 
a/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java 
b/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java
index 24319e215..c131a983f 100644
--- a/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java
+++ b/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java
@@ -122,6 +122,7 @@ public class LOActivity extends AppCompatActivity {
 
 /** In case the mobile-wizard is visible, we have to intercept the 
Android's Back button. */
 private boolean mMobileWizardVisible = false;
+private boolean mIsEditModeActive = false;
 
 private ValueCallback valueCallback;
 
@@ -693,6 +694,9 @@ public class LOActivity extends AppCompatActivity {
 // just return one level up in the mobile-wizard (or close it)
 callFakeWebsocketOnMessage("'mobile: mobilewizardback'");
 return;
+} else if (mIsEditModeActive) {
+callFakeWebsocketOnMessage("'mobile: readonlymode'");
+return;
 }
 
 finishWithProgress();
@@ -924,6 +928,17 @@ public class LOActivity extends AppCompatActivity {
 startActivity(intent);
 return false;
 }
+case "EDITMODE": {
+switch (messageAndParam[1]) {
+case "on":
+mIsEditModeActive = true;
+break;
+case "off":
+mIsEditModeActive = false;
+break;
+}
+return false;
+}
 }
 return true;
 }
diff --git a/loleaflet/css/toolbar.css b/loleaflet/css/toolbar.css
index 604120e54..aed7e7e2b 100644
--- a/loleaflet/css/toolbar.css
+++ b/loleaflet/css/toolbar.css
@@ -710,6 +710,7 @@ button.leaflet-control-search-next
 .w2ui-icon.users{ background: url('images/contacts-dark.svg') no-repeat 
center; }
 .w2ui-icon.fullscreen{ background: url('images/lc_fullscreen.svg') no-repeat 
center !important; }
 .w2ui-icon.closemobile{ background: url('images/lc_closedocmobile.svg') 
no-repeat center !important; }
+.w2ui-icon.editmode { background: url("images/lc_listitem-selected.svg") 
no-repeat center / 28px !important; }
 .w2ui-icon.closetoolbar{ background: url('images/close_toolbar.svg') no-repeat 
center !important; }
 .w2ui-icon.sidebar_modify_page{ background: 
url('images/lc_formproperties.svg') no-repeat center !important; }
 .w2ui-icon.sidebar_slide_change{ background: 
url('images/sidebar-transition-large.svg') no-repeat center !important; }
diff --git a/loleaflet/src/control/Control.MobileTopBar.js 
b/loleaflet/src/control/Control.MobileTopBar.js
index d754f0a19..d7f259893 100644
--- a/loleaflet/src/control/Control.MobileTopBar.js
+++ b/loleaflet/src/control/Control.MobileTopBar.js
@@ -193,6 +193,7 @@ L.Control.MobileTopBar = L.Control.extend({
toolbarDownButtons.forEach(function(id) {
toolbar.enable(id);
});
+   toolbar.set('closemobile', {img: 'editmode'});
}
} else {
toolbar = w2ui['actionbar'];
@@ -200,6 +201,7 @@ L.Control.MobileTopBar = L.Control.extend({
toolbarDownButtons.forEach(function(id) {
toolbar.disable(id);
});
+   toolbar.set('closemobile', {img: 
'closemobile'});
}
}
},
diff --git a/loleaflet/src/control/Control.Toolbar.js 
b/loleaflet/src/control/Control.Toolbar.js
index c1580f8d4..bc2

[Libreoffice-commits] online.git: Branch 'distro/collabora/co-4-2' - android/lib

2020-08-07 Thread Jan Holesovsky (via logerrit)
 android/lib/build.gradle  |6 +++---
 android/lib/libSettings.gradle.in |3 ++-
 2 files changed, 5 insertions(+), 4 deletions(-)

New commits:
commit 757339187fb624a2a960ca1dbe3dd592d0419b56
Author: Jan Holesovsky 
AuthorDate: Fri Aug 7 14:23:11 2020 +0200
Commit: Jan Holesovsky 
CommitDate: Fri Aug 7 15:10:22 2020 +0200

android: Show the real core git hash in the About dialog.

In the editing activity.

Change-Id: I87190044b501d80f83600b8a146c4d77a5f4e4f7
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/100314
Tested-by: Jenkins CollaboraOffice 
Reviewed-by: Jan Holesovsky 

diff --git a/android/lib/build.gradle b/android/lib/build.gradle
index 2a6c79f63..626466b05 100644
--- a/android/lib/build.gradle
+++ b/android/lib/build.gradle
@@ -26,7 +26,7 @@ android {
 buildTypes {
 debug {
 resValue "string", "app_name", "${liboAppName} Debug"
-buildConfigField "String", "GIT_COMMIT", "\"${liboGitFullCommit}\""
+buildConfigField "String", "GIT_COMMIT", "\"${liboOVersionHash}\""
 buildConfigField "boolean", "GOOGLE_PLAY_ENABLED", 
"${liboGooglePlay}"
 ndk {
 abiFilters = []
@@ -36,7 +36,7 @@ android {
 }
 release {
 resValue "string", "app_name", "${liboAppName}"
-buildConfigField "String", "GIT_COMMIT", "\"${liboGitFullCommit}\""
+buildConfigField "String", "GIT_COMMIT", "\"${liboOVersionHash}\""
 buildConfigField "boolean", "GOOGLE_PLAY_ENABLED", 
"${liboGooglePlay}"
 ndk {
 abiFilters = []
@@ -278,7 +278,7 @@ UNO_USER_PACKAGES_CACHE=$UNO_USER_PACKAGES/cache
 [Version]
 AllLanguages=en-US
 BuildVersion=
-buildid=''' + "${liboGitFullCommit}" + '''
+buildid=''' + "${liboCoreVersionHash}" + '''
 ReferenceOOoMajorMinor=4.1
 '''.stripIndent()
 }
diff --git a/android/lib/libSettings.gradle.in 
b/android/lib/libSettings.gradle.in
index afa68ee1f..a4fe37d66 100644
--- a/android/lib/libSettings.gradle.in
+++ b/android/lib/libSettings.gradle.in
@@ -8,7 +8,8 @@ ext {
 liboExampleDocument = '@LOBUILDDIR@/android/default-document/example.odt'
 liboVersionMajor= '@LOOLWSD_VERSION_MAJOR@'
 liboVersionMinor= '@LOOLWSD_VERSION_MAJOR@'
-liboGitFullCommit   = '@LOOLWSD_VERSION_HASH@'
+liboOVersionHash= '@LOOLWSD_VERSION_HASH@'
+liboCoreVersionHash = '@CORE_VERSION_HASH@'
 liboApplicationId   = '@ANDROID_PACKAGE_NAME@'
 liboBrandingDir = '@APP_BRANDING_DIR@'
 liboAndroidAbi  = '@ANDROID_ABI@'
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] online.git: Branch 'distro/collabora/co-4-2' - android/lib

2020-07-21 Thread Jan Holesovsky (via logerrit)
 android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java |2 ++
 1 file changed, 2 insertions(+)

New commits:
commit 44c16220d9ef4e252a7133fee91645b1d6f1b8b2
Author: Jan Holesovsky 
AuthorDate: Fri Jul 17 16:02:46 2020 +0200
Commit: Andras Timar 
CommitDate: Tue Jul 21 20:48:19 2020 +0200

android: Log when we disable editing for easier debugging.

Change-Id: I358b1a50be7f9f377e9376f8b1772ad92fd059ae
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/98959
Tested-by: Jenkins CollaboraOffice 
Reviewed-by: Andras Timar 

diff --git 
a/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java 
b/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java
index 221c83174..24319e215 100644
--- a/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java
+++ b/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java
@@ -272,6 +272,7 @@ public class LOActivity extends AppCompatActivity {
 // is it read-only?
 if ((getIntent().getFlags() & 
Intent.FLAG_GRANT_WRITE_URI_PERMISSION) == 0) {
 isDocEditable = false;
+Log.d(TAG, "Disabled editing: Read-only");
 Toast.makeText(this, 
getResources().getString(R.string.temp_file_saving_disabled), 
Toast.LENGTH_SHORT).show();
 }
 
@@ -282,6 +283,7 @@ public class LOActivity extends AppCompatActivity {
 if (isDocEditable && 
(getIntent().getData().toString().startsWith("content://org.chromium.arc.chromecontentprovider/externalfile")
 ||
   
getIntent().getData().toString().startsWith("content://org.chromium.arc.volumeprovider/")))
 {
 isDocEditable = false;
+Log.d(TAG, "Disabled editing: Chrome OS unsupported 
content providers");
 Toast.makeText(this, 
getResources().getString(R.string.file_chromeos_read_only), 
Toast.LENGTH_LONG).show();
 }
 
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] online.git: Branch 'distro/collabora/co-4-2' - android/lib

2020-07-17 Thread Jan Holesovsky (via logerrit)
 android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java |   18 
+++---
 android/lib/src/main/res/values/strings.xml  |1 
 2 files changed, 14 insertions(+), 5 deletions(-)

New commits:
commit 04f8a66c5d2f1e1870bc382f45e6eebbcda3949f
Author: Jan Holesovsky 
AuthorDate: Fri Jul 17 09:56:25 2020 +0200
Commit: Jan Holesovsky 
CommitDate: Fri Jul 17 16:04:26 2020 +0200

android: One more location that fails to save on Chrome OS.

Turns out that saving directly to "My files" is problematic in some
cases too; suggest to use the "Play files" location.

Change-Id: Ifb88fc048685596f85e7cf39a57c60864da12d83
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/98954
Tested-by: Jenkins CollaboraOffice 
Reviewed-by: Jan Holesovsky 

diff --git 
a/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java 
b/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java
index e904c6d74..221c83174 100644
--- a/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java
+++ b/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java
@@ -267,15 +267,23 @@ public class LOActivity extends AppCompatActivity {
 if (getIntent().getData() != null) {
 
 if 
(getIntent().getData().getScheme().equals(ContentResolver.SCHEME_CONTENT)) {
-isDocEditable = (getIntent().getFlags() & 
Intent.FLAG_GRANT_WRITE_URI_PERMISSION) != 0;
+isDocEditable = true;
+
+// is it read-only?
+if ((getIntent().getFlags() & 
Intent.FLAG_GRANT_WRITE_URI_PERMISSION) == 0) {
+isDocEditable = false;
+Toast.makeText(this, 
getResources().getString(R.string.temp_file_saving_disabled), 
Toast.LENGTH_SHORT).show();
+}
 
 // turns out that on ChromeOS, it is not possible to save back
 // to Google Drive; detect it already here to avoid 
disappointment
-if 
(getIntent().getData().toString().startsWith("content://org.chromium.arc.chromecontentprovider/externalfile"))
+// also the volumeprovider does not work for saving back,
+// which is much more serious :-(
+if (isDocEditable && 
(getIntent().getData().toString().startsWith("content://org.chromium.arc.chromecontentprovider/externalfile")
 ||
+  
getIntent().getData().toString().startsWith("content://org.chromium.arc.volumeprovider/")))
 {
 isDocEditable = false;
-
-if (!isDocEditable)
-Toast.makeText(this, 
getResources().getString(R.string.temp_file_saving_disabled), 
Toast.LENGTH_SHORT).show();
+Toast.makeText(this, 
getResources().getString(R.string.file_chromeos_read_only), 
Toast.LENGTH_LONG).show();
+}
 
 if (copyFileToTemp() && mTempFile != null) {
 documentUri = mTempFile.toURI();
diff --git a/android/lib/src/main/res/values/strings.xml 
b/android/lib/src/main/res/values/strings.xml
index dff5fb931..5fcb5e742 100644
--- a/android/lib/src/main/res/values/strings.xml
+++ b/android/lib/src/main/res/values/strings.xml
@@ -1,5 +1,6 @@
 
 This file is read-only, saving is 
disabled.
+This file cannot be saved in this 
location, opening it read-only. Move it to the "Play files" for full read/write 
access.
 Storage permission is 
required
 Failed to determine the file to 
load
 Failed to insert image
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] online.git: Branch 'distro/collabora/co-4-2' - android/lib kit/ChildSession.cpp loleaflet/src

2020-07-15 Thread Jan Holesovsky (via logerrit)
 android/lib/src/main/cpp/androidapp.cpp  |   54 +--
 android/lib/src/main/cpp/androidapp.hpp  |3 +
 kit/ChildSession.cpp |   11 +-
 loleaflet/src/control/Control.Toolbar.js |6 ---
 4 files changed, 52 insertions(+), 22 deletions(-)

New commits:
commit a2116cbade24e9a8d46e7d6616f502b69a301b7d
Author: Jan Holesovsky 
AuthorDate: Tue Jul 14 14:27:03 2020 +0200
Commit: Jan Holesovsky 
CommitDate: Wed Jul 15 23:33:46 2020 +0200

android: Call the SAVE directly from the native code.

Until now, for the "local save has completed, upload it back to the
content: URI" messages we were relying on the "local save" -> JavaScript
-> Java -> "upload to content:/ URI" chain.

It turns out though, that the WebView can be dead by the time we need
the notification that the save has completed.  This was particularly
seen on ChromeOS when the document was closed using the [x] in the
window decoration.

As a solution, we need to pass the info that the "local save" has
completed directly to Java.  So far this uses the same semantics as the
postMobileMessage() and reuse its code; but maybe in the future we'll
need to split this.

Change-Id: If1b93e4f76cee3abc6aebfc3e9072810ab73bb42
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/98771
Tested-by: Jenkins CollaboraOffice 
Reviewed-by: Jan Holesovsky 

diff --git a/android/lib/src/main/cpp/androidapp.cpp 
b/android/lib/src/main/cpp/androidapp.cpp
index a3f847135..f3405f374 100644
--- a/android/lib/src/main/cpp/androidapp.cpp
+++ b/android/lib/src/main/cpp/androidapp.cpp
@@ -35,6 +35,10 @@ static int closeNotificationPipeForForwardingThread[2] = 
{-1, -1};
 static JavaVM* javaVM = nullptr;
 static bool lokInitialized = false;
 
+// Remember the reference to the LOActivity
+jclass g_loActivityClz = nullptr;
+jobject g_loActivityObj = nullptr;
+
 extern "C" JNIEXPORT jint JNICALL
 JNI_OnLoad(JavaVM* vm, void*) {
 javaVM = vm;
@@ -89,7 +93,7 @@ public:
 JNIEnv *getEnv() const { return _env; }
 };
 
-static void send2JS(const JNIThreadContext &jctx, jclass loActivityClz, 
jobject loActivityObj, const std::vector& buffer)
+static void send2JS(const JNIThreadContext &jctx, const std::vector& 
buffer)
 {
 LOG_DBG("Send to JS: " << 
LOOLProtocol::getAbbreviatedMessage(buffer.data(), buffer.size()));
 
@@ -149,8 +153,22 @@ static void send2JS(const JNIThreadContext &jctx, jclass 
loActivityClz, jobject
 
 JNIEnv *env = jctx.getEnv();
 jstring jstr = env->NewStringUTF(js.c_str());
-jmethodID callFakeWebsocket = env->GetMethodID(loActivityClz, 
"callFakeWebsocketOnMessage", "(Ljava/lang/String;)V");
-env->CallVoidMethod(loActivityObj, callFakeWebsocket, jstr);
+jmethodID callFakeWebsocket = env->GetMethodID(g_loActivityClz, 
"callFakeWebsocketOnMessage", "(Ljava/lang/String;)V");
+env->CallVoidMethod(g_loActivityObj, callFakeWebsocket, jstr);
+env->DeleteLocalRef(jstr);
+
+if (env->ExceptionCheck())
+env->ExceptionDescribe();
+}
+
+void postDirectMessage(std::string message)
+{
+JNIThreadContext ctx;
+JNIEnv *env = ctx.getEnv();
+
+jstring jstr = env->NewStringUTF(message.c_str());
+jmethodID callPostMobileMessage = env->GetMethodID(g_loActivityClz, 
"postMobileMessage", "(Ljava/lang/String;)V");
+env->CallVoidMethod(g_loActivityObj, callPostMobileMessage, jstr);
 env->DeleteLocalRef(jstr);
 
 if (env->ExceptionCheck())
@@ -170,7 +188,7 @@ void closeDocument()
 
 /// Handle a message from JavaScript.
 extern "C" JNIEXPORT void JNICALL
-Java_org_libreoffice_androidlib_LOActivity_postMobileMessageNative(JNIEnv 
*env, jobject instance, jstring message)
+Java_org_libreoffice_androidlib_LOActivity_postMobileMessageNative(JNIEnv 
*env, jobject, jstring message)
 {
 const char *string_value = env->GetStringUTFChars(message, nullptr);
 
@@ -197,11 +215,7 @@ 
Java_org_libreoffice_androidlib_LOActivity_postMobileMessageNative(JNIEnv *env,
 fakeSocketPipe2(closeNotificationPipeForForwardingThread);
 
 // Start another thread to read responses and forward them to the 
JavaScript
-jclass clz = env->GetObjectClass(instance);
-jclass loActivityClz = (jclass) env->NewGlobalRef(clz);
-jobject loActivityObj = env->NewGlobalRef(instance);
-
-std::thread([loActivityClz, loActivityObj, currentFakeClientFd]
+std::thread([currentFakeClientFd]
 {
 Util::setThreadName("app2js");
 JNIThreadContext ctx;
@@ -242,7 +256,7 @@ 
Java_org_libreoffice_androidlib_LOActivity_postMobileMessageNative(JNIEnv *env,
return;
std::vector buf(n);
n = fakeSocketRead(currentFakeClientFd, 
buf.data(), n);
-   

[Libreoffice-commits] online.git: Branch 'distro/collabora/co-4-2' - android/lib

2020-07-15 Thread Jan Holesovsky (via logerrit)
 android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java |4 
+++-
 1 file changed, 3 insertions(+), 1 deletion(-)

New commits:
commit dac6a73ae20817c5a8d2e6a54141cc941e6a9025
Author: Jan Holesovsky 
AuthorDate: Tue Jul 14 17:07:01 2020 +0200
Commit: Jan Holesovsky 
CommitDate: Wed Jul 15 23:33:28 2020 +0200

android: A small follow-up, the intention was an early return.

Change-Id: I3a73cd03c9ec51b7f190092702b4ef860c1f589b
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/98756
Reviewed-by: Michael Meeks 
Tested-by: Jan Holesovsky 

diff --git 
a/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java 
b/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java
index 5fb44fa97..3374ff4ca 100644
--- a/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java
+++ b/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java
@@ -784,8 +784,10 @@ public class LOActivity extends AppCompatActivity {
 if (mWebView != null)
 mWebView.post(new Runnable() {
 public void run() {
-if (mWebView != null)
+if (mWebView == null) {
 Log.i(TAG, "Skipped forwarding to the WebView: " + 
message);
+return;
+}
 
 Log.i(TAG, "Forwarding to the WebView: " + message);
 
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] online.git: Branch 'distro/collabora/co-4-2' - android/lib

2020-07-15 Thread Jan Holesovsky (via logerrit)
 android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java |   31 
+-
 1 file changed, 18 insertions(+), 13 deletions(-)

New commits:
commit a2fcdd3ff755bc8f77d43efdc25a9b5fbf27ec15
Author: Jan Holesovsky 
AuthorDate: Mon Jul 13 18:21:28 2020 +0200
Commit: Jan Holesovsky 
CommitDate: Wed Jul 15 23:32:49 2020 +0200

android: Avoid calling methods of a destroyed WebView.

Avoids exceptions like:

2020-07-13 13:19:49.607 2919-2919/? I/LOActivity: Forwarding to the 
WebView: 'statusindicatorsetvalue: 86'
2020-07-13 13:19:49.609 2919-2919/? W/cr_AwContents: Application attempted 
to call on a destroyed WebView
java.lang.Throwable
at 
org.chromium.android_webview.AwContents.t(chromium-SystemWebViewGoogle.apk-stable-410410651:2)
at 
com.android.webview.chromium.WebViewChromium.loadUrl(chromium-SystemWebViewGoogle.apk-stable-410410651:11)
at android.webkit.WebView.loadUrl(WebView.java:970)
at org.libreoffice.androidlib.LOActivity$6.run(LOActivity.java:794)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6971)
at java.lang.reflect.Method.invoke(Native Method)
at 
com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:865)

Change-Id: Ic853131bac937deec7e68723b956a4ab7cf61872
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/98723
Tested-by: Michael Meeks 
Reviewed-by: Michael Meeks 
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/98754
Tested-by: Jan Holesovsky 
Reviewed-by: Jan Holesovsky 

diff --git 
a/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java 
b/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java
index 855fa63b0..5fb44fa97 100644
--- a/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java
+++ b/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java
@@ -101,7 +101,7 @@ public class LOActivity extends AppCompatActivity {
 private URI documentUri;
 
 private String urlToLoad;
-private WebView mWebView;
+private WebView mWebView = null;
 private SharedPreferences sPrefs;
 private Handler mMainHandler = null;
 private RateAppController rateAppController;
@@ -544,6 +544,7 @@ public class LOActivity extends AppCompatActivity {
 if (viewGroup != null)
 viewGroup.removeView(mWebView);
 mWebView.destroy();
+mWebView = null;
 
 // Most probably the native part has already got a 'BYE' from
 // finishWithProgress(), but it is actually better to send it twice
@@ -780,20 +781,24 @@ public class LOActivity extends AppCompatActivity {
  */
 void callFakeWebsocketOnMessage(final String message) {
 // call from the UI thread
-mWebView.post(new Runnable() {
-public void run() {
-Log.i(TAG, "Forwarding to the WebView: " + message);
+if (mWebView != null)
+mWebView.post(new Runnable() {
+public void run() {
+if (mWebView != null)
+Log.i(TAG, "Skipped forwarding to the WebView: " + 
message);
 
-/* Debug only: in case the message is too long, truncated in 
the logcat, and you need to see it.
-final int size = 80;
-for (int start = 0; start < message.length(); start += size) {
-Log.i(TAG, "split: " + message.substring(start, 
Math.min(message.length(), start + size)));
-}
-*/
+Log.i(TAG, "Forwarding to the WebView: " + message);
 
-
mWebView.loadUrl("javascript:window.TheFakeWebSocket.onmessage({'data':" + 
message + "});");
-}
-});
+/* Debug only: in case the message is too long, truncated 
in the logcat, and you need to see it.
+final int size = 80;
+for (int start = 0; start < message.length(); start += 
size) {
+Log.i(TAG, "split: " + message.substring(start, 
Math.min(message.length(), start + size)));
+}
+*/
+
+
mWebView.loadUrl("javascript:window.TheFakeWebSocket.onmessage({'data':" + 
message + "});");
+}
+});
 
 // update progress bar when loading
 if (message.startsWith("'statusindicator") || 
message.startsWith("'error:")) {
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] online.git: Branch 'distro/collabora/co-4-2' - android/lib

2020-07-03 Thread Jan Holesovsky (via logerrit)
 android/lib/build.gradle |6 ++
 1 file changed, 6 insertions(+)

New commits:
commit a2f2816b484a722da06bc6d429882fea6b2838b9
Author: Jan Holesovsky 
AuthorDate: Fri Jul 3 15:25:43 2020 +0200
Commit: Jan Holesovsky 
CommitDate: Fri Jul 3 16:34:46 2020 +0200

android: Always re-do the fonts.conf, to update when the filter changed.

No idea how to add dependency on the build.gradle itself, so at least
this...

Change-Id: I7d43064d3a2299929b36a3ed3d5c13ada808c898
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/97803
Tested-by: Jan Holesovsky 
Reviewed-by: Jan Holesovsky 

diff --git a/android/lib/build.gradle b/android/lib/build.gradle
index b4a45fefd..2a6c79f63 100644
--- a/android/lib/build.gradle
+++ b/android/lib/build.gradle
@@ -113,6 +113,12 @@ task copyUnpackAssets(type: Copy) {
 into('etc/fonts') {
 from "${liboSrcRoot}/android/source/"
 includes = ['fonts.conf']
+doFirst {
+// we have changed the filter below; so to always re-generate this
+// file, delete it first - no idea how to set a dependency on
+// build.gradle changes :-(
+file('fonts.conf').delete()
+}
 filter {
 String line ->
 line.replaceAll(
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] online.git: Branch 'distro/collabora/co-4-2' - android/lib

2020-07-02 Thread Jan Holesovsky (via logerrit)
 android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java |   50 
--
 1 file changed, 1 insertion(+), 49 deletions(-)

New commits:
commit 70254897b1e254bac3b88c9a93059080758b64cf
Author: Jan Holesovsky 
AuthorDate: Wed Jul 1 21:05:42 2020 +0200
Commit: Andras Timar 
CommitDate: Thu Jul 2 10:12:42 2020 +0200

android: No need to copy fonts from system any more.

After the update of fontconfig, the hack to not to use the Noto fonts is
not needed any more, they load quickly now.

Change-Id: Iebd2c944e9fcc04d6976002f24a3a47f0b49f2ad
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/97659
Tested-by: Jenkins
Tested-by: Jenkins CollaboraOffice 
Reviewed-by: Jan Holesovsky 
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/97718
Tested-by: Andras Timar 
Reviewed-by: Andras Timar 

diff --git 
a/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java 
b/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java
index 5074d637a..8465ff5e1 100644
--- a/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java
+++ b/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java
@@ -203,54 +203,6 @@ public class LOActivity 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 Handler getMainHandler() {
 if (mMainHandler == null) {
 mMainHandler = new Handler(getMainLooper());
@@ -289,7 +241,7 @@ public class LOActivity extends AppCompatActivity {
 @Override
 protected Void doInBackground(Void... voids) {
 // copy the new assets
-if (copyFromAssets(getAssets(), "unpack", 
getApplicationInfo().dataDir) && copyFonts("/system/fonts", 
getApplicationInfo().dataDir + "/user/fonts")) {
+if (copyFromAssets(getAssets(), "unpack", 
getApplicationInfo().dataDir)) {
 sPrefs.edit().putString(ASSETS_EXTRACTED_GIT_COMMIT, 
BuildConfig.GIT_COMMIT).apply();
 }
 return null;
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] online.git: Branch 'distro/collabora/co-4-2' - android/lib

2020-07-02 Thread Jan Holesovsky (via logerrit)
 android/lib/src/main/cpp/CMakeLists.txt.in |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit fd46d557144ddb2dd00b1c0d43858e50b93278ac
Author: Jan Holesovsky 
AuthorDate: Mon Jun 29 16:13:19 2020 +0200
Commit: Andras Timar 
CommitDate: Thu Jul 2 10:11:39 2020 +0200

android: The location of liblo-native-code.so has changed.

By mistake, the commit 526db8b1bdb6007ad3ab7e69c7c193e164e58892 was a wrong
version of the patch; update it slightly.

Change-Id: I1c0148a7195a577a14440453688d506b83aa6ab4
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/97381
Tested-by: Jan Holesovsky 
Reviewed-by: Jan Holesovsky 
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/97714
Tested-by: Andras Timar 
Reviewed-by: Andras Timar 

diff --git a/android/lib/src/main/cpp/CMakeLists.txt.in 
b/android/lib/src/main/cpp/CMakeLists.txt.in
index c0b08d1fa..fa9ed42a5 100644
--- a/android/lib/src/main/cpp/CMakeLists.txt.in
+++ b/android/lib/src/main/cpp/CMakeLists.txt.in
@@ -42,7 +42,7 @@ else()
 MESSAGE(FATAL_ERROR "Cannot build for ABI ${ANDROID_ABI}, please add 
support for that.")
 endif()
 
-set(LIBLO_NATIVE_CODE 
${LOBUILDDIR_ABI}/android/source/jniLibs/${ANDROID_ABI}/liblo-native-code.so)
+set(LIBLO_NATIVE_CODE 
${LOBUILDDIR_ABI}/android/jniLibs/${ANDROID_ABI}/liblo-native-code.so)
 
 target_include_directories(androidapp PRIVATE
. # path to androidapp.h
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] online.git: Branch 'distro/collabora/co-4-2' - android/lib android/README configure.ac

2020-07-02 Thread Jan Holesovsky (via logerrit)
 android/README |   37 
 android/lib/src/main/cpp/CMakeLists.txt.in |4 
 configure.ac   |  131 +++--
 3 files changed, 131 insertions(+), 41 deletions(-)

New commits:
commit bd656c4172c6dfddb8fe69e9cd4ba822f83accf0
Author: Jan Holesovsky 
AuthorDate: Fri Jun 26 14:25:48 2020 +0200
Commit: Andras Timar 
CommitDate: Thu Jul 2 10:10:42 2020 +0200

android: Add x86-64 build too.

This will make it possible to create AAB's that contain 3 ABIs:
armeabi-v7a, arm64-v8a and x86_64.

If you want to build for just one ABI, use --with-android-abi=... where
the value is one of those three above.

Change-Id: I553b8ca941db67eddc1d712a96b818f9cfedd0fa
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/97227
Tested-by: Jan Holesovsky 
Reviewed-by: Jan Holesovsky 
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/97711
Tested-by: Andras Timar 
Reviewed-by: Andras Timar 

diff --git a/android/README b/android/README
index f4d737c94..7b525e357 100644
--- a/android/README
+++ b/android/README
@@ -65,6 +65,43 @@ build the native parts on Windows.
   # install
   
PATH="$PATH":~/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin 
make -j8 ANDROID_ABI=arm64-v8a CC=aarch64-linux-android21-clang 
CXX=aarch64-linux-android21-clang++ SYSLIBS=-static-libstdc++ install 
INSTALLDIR=/opt/poco-android-64bit
 
+* Poco for x86_64 (if you want to add the support for that into the APK too):
+
+  # checkout the 1.10.1 in yet another location
+  git clone https://github.com/pocoproject/poco poco-android-x86-64
+  cd poco-android-x86-64
+  git checkout -b poco-1.10.1 origin/poco-1.10.1
+
+  # and apply the following patch:
+  diff --git a/build/config/Android b/build/config/Android
+  index 9227a3352..1abf6df7c 100644
+  --- a/build/config/Android
+  +++ b/build/config/Android
+  @@ -25,10 +25,14 @@ ifeq ($(ANDROID_ABI),x86)
+   TOOL  = i686-linux-android
+   ARCHFLAGS = -march=i686 -msse3 -mstackrealign -mfpmath=sse
+   else
+  +ifeq ($(ANDROID_ABI),x86_64)
+  +TOOL  = x86_64-linux-android
+  +else
+   $(error Invalid ABI specified in ANDROID_ABI)
+   endif
+   endif
+   endif
+  +endif
+   
+   #
+   # Define Tools
+
+  # configure
+  ./configure --config=Android --no-samples --no-tests 
--omit=Crypto,NetSSL_OpenSSL,Zip,Data,Data/SQLite,Data/ODBC,Data/MySQL,MongoDB,PDF,CppParser,PageCompiler,JWT
+
+  # build
+  
PATH="$PATH":~/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin 
make -j8 ANDROID_ABI=x86_64 CC=x86_64-linux-android21-clang 
CXX=x86_64-linux-android21-clang++ SYSLIBS=-static-libstdc++
+
+  # install
+  
PATH="$PATH":~/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin 
make -j8 ANDROID_ABI=x86_64 CC=x86_64-linux-android21-clang 
CXX=x86_64-linux-android21-clang++ SYSLIBS=-static-libstdc++ install 
INSTALLDIR=/opt/poco-android-x86-64
+
 * Configure the online.git (eg. in online-android folder)
 
   Don't forget to change --with-lo-builddir in the following:
diff --git a/android/lib/src/main/cpp/CMakeLists.txt.in 
b/android/lib/src/main/cpp/CMakeLists.txt.in
index ad43e806c..02e2bbb3f 100644
--- a/android/lib/src/main/cpp/CMakeLists.txt.in
+++ b/android/lib/src/main/cpp/CMakeLists.txt.in
@@ -34,6 +34,10 @@ elseif(${ANDROID_ABI} STREQUAL "arm64-v8a")
 set(LOBUILDDIR_ABI @LOBUILDDIR_ARM64_V8A@)
 set(POCOINCLUDE_ABI @POCOINCLUDE_ARM64_V8A@)
 set(POCOLIB_ABI @POCOLIB_ARM64_V8A@)
+elseif(${ANDROID_ABI} STREQUAL "x86_64")
+set(LOBUILDDIR_ABI @LOBUILDDIR_X86_64@)
+set(POCOINCLUDE_ABI @POCOINCLUDE_X86_64@)
+set(POCOLIB_ABI @POCOLIB_X86_64@)
 else()
 MESSAGE(FATAL_ERROR "Cannot build for ABI ${ANDROID_ABI}, please add 
support for that.")
 endif()
diff --git a/configure.ac b/configure.ac
index e53a7dbdf..e2976687f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -166,6 +166,16 @@ AC_ARG_WITH(android-package-versioncode,
[Set the versionCode for the Android package.]),
 ,)
 
+AC_ARG_WITH(android-abi,
+AS_HELP_STRING([--with-android-abi=x86_64],
+   [Allows specification of a concrete ABI that is to 
be built for.  By default, builds for all the 3
+supported ABIs at the same time: armeabi-v7a, 
arm64-v8a and x86_64.
+Please note that you need to specify the 
parameters for --with-lo-builddir,
+--with-poco-includes and --with-poco-libs in the 
order of armeabi-v7a:arm64-v8a:x86_64.  For
+example, when you use --with-android-abi=x86_64,
+you have to specify 
--with-lo-builddir=::/path/to/x86-64/builddir]),
+,)
+
 AC_ARG_WITH([app-name],
   AS_HELP_STRING([--with-app-name=],
  [Set the user-visible name of the app you 
build.]))
@@ -356,15 +366,28 @@ fi
 # to the M