[Libreoffice-commits] online.git: android/lib loleaflet/src
Jan Holesovsky (via logerrit)
logerrit at kemper.freedesktop.org
Tue Dec 10 16:10:48 UTC 2019
android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java | 80 +++++-----
loleaflet/src/control/Control.Toolbar.js | 7
2 files changed, 51 insertions(+), 36 deletions(-)
New commits:
commit c6f36965cfc1bd68fdb88b01d493163b5d176bcc
Author: Jan Holesovsky <kendy at collabora.com>
AuthorDate: Sat Aug 10 00:21:50 2019 +0200
Commit: Jan Holesovsky <kendy at collabora.com>
CommitDate: Tue Dec 10 17:10:29 2019 +0100
android: Framework to be able to broadcast to another activity.
Change-Id: I24634c5e06223bd1c5cdb8da511159b03ce35719
Reviewed-on: https://gerrit.libreoffice.org/84871
Reviewed-by: Jan Holesovsky <kendy at collabora.com>
Tested-by: Jan Holesovsky <kendy at collabora.com>
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 dbb58d0b0..3fe1c317f 100644
--- a/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java
+++ b/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java
@@ -528,7 +528,8 @@ public class LOActivity extends AppCompatActivity {
* return true to pass the message to the native part or false to block the message
*/
boolean interceptMsgFromWebView(String message) {
- switch (message) {
+ String[] messageAndParam = message.split(" ", 2); // the command and the rest (that can potentially contain spaces too)
+ switch (messageAndParam[0]) {
case "PRINT":
mainHandler.post(new Runnable() {
@Override
@@ -540,47 +541,53 @@ public class LOActivity extends AppCompatActivity {
case "SLIDESHOW":
initiateSlideShow();
return false;
- case "uno .uno:Paste":
- clipData = clipboardManager.getPrimaryClip();
- if (clipData != null) {
- if (clipData.getDescription().hasMimeType(ClipDescription.MIMETYPE_TEXT_PLAIN)) {
- final ClipData.Item clipItem = clipData.getItemAt(0);
+ case "SAVE":
+ sendBroadcast(messageAndParam[0], messageAndParam[1]);
+ return false;
+ case "uno":
+ switch (messageAndParam[1]) {
+ case ".uno:Paste":
+ clipData = clipboardManager.getPrimaryClip();
+ if (clipData != null) {
+ if (clipData.getDescription().hasMimeType(ClipDescription.MIMETYPE_TEXT_PLAIN)) {
+ final ClipData.Item clipItem = clipData.getItemAt(0);
+ nativeHandler.post(new Runnable() {
+ @Override
+ public void run() {
+ LOActivity.this.paste("text/plain;charset=utf-16", clipItem.getText().toString());
+ }
+ });
+ }
+ return false;
+ }
+ break;
+ case ".uno:Copy": {
nativeHandler.post(new Runnable() {
@Override
public void run() {
- LOActivity.this.paste("text/plain;charset=utf-16", clipItem.getText().toString());
+ String tempSelectedText = LOActivity.this.getTextSelection();
+ if (!tempSelectedText.equals("")) {
+ clipData = ClipData.newPlainText(ClipDescription.MIMETYPE_TEXT_PLAIN, tempSelectedText);
+ clipboardManager.setPrimaryClip(clipData);
+ }
}
});
+ break;
}
- return false;
- }
- break;
- case "uno .uno:Copy": {
- nativeHandler.post(new Runnable() {
- @Override
- public void run() {
- String tempSelectedText = LOActivity.this.getTextSelection();
- if (!tempSelectedText.equals("")) {
- clipData = ClipData.newPlainText(ClipDescription.MIMETYPE_TEXT_PLAIN, tempSelectedText);
- clipboardManager.setPrimaryClip(clipData);
- }
- }
- });
- break;
- }
- case "uno .uno:Cut": {
- nativeHandler.post(new Runnable() {
- @Override
- public void run() {
- String tempSelectedText = LOActivity.this.getTextSelection();
- if (!tempSelectedText.equals("")) {
- clipData = ClipData.newPlainText(ClipDescription.MIMETYPE_TEXT_PLAIN, tempSelectedText);
- clipboardManager.setPrimaryClip(clipData);
- }
+ case ".uno:Cut": {
+ nativeHandler.post(new Runnable() {
+ @Override
+ public void run() {
+ String tempSelectedText = LOActivity.this.getTextSelection();
+ if (!tempSelectedText.equals("")) {
+ clipData = ClipData.newPlainText(ClipDescription.MIMETYPE_TEXT_PLAIN, tempSelectedText);
+ clipboardManager.setPrimaryClip(clipData);
+ }
+ }
+ });
+ break;
}
- });
- break;
- }
+ }
case "DIM_SCREEN": {
mainHandler.post(new Runnable() {
@Override
@@ -640,6 +647,9 @@ public class LOActivity extends AppCompatActivity {
});
}
+ /** Could be overridden if it's necessary to forward some callbacks elsewhere. */
+ public void sendBroadcast(String event, String data) {}
+
public native void saveAs(String fileUri, String format);
public native String getTextSelection();
diff --git a/loleaflet/src/control/Control.Toolbar.js b/loleaflet/src/control/Control.Toolbar.js
index 5d9de3baf..86474ddce 100644
--- a/loleaflet/src/control/Control.Toolbar.js
+++ b/loleaflet/src/control/Control.Toolbar.js
@@ -2135,7 +2135,12 @@ function onCommandResult(e) {
// add the result reason string if failed
postMessageObj['result'] = e.result && e.result.value;
}
- map.fire('postMessage', {msgId: 'Action_Save_Resp', args: postMessageObj});
+
+ if (window.ThisIsAMobileApp) {
+ window.postMobileMessage('SAVE ' + JSON.stringify(postMessageObj));
+ } else {
+ map.fire('postMessage', {msgId: 'Action_Save_Resp', args: postMessageObj});
+ }
}
else if ((commandName === '.uno:Undo' || commandName === '.uno:Redo') &&
e.success === true && e.result.value && !isNaN(e.result.value)) { /*UNDO_CONFLICT*/
More information about the Libreoffice-commits
mailing list