[Libreoffice-commits] online.git: Branch 'distro/collabora/co-4-2' - android/lib common/Session.hpp loleaflet/src wsd/ClientSession.cpp
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
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
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
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
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
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
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
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
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
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
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
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
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