summaryrefslogtreecommitdiff
path: root/android
diff options
context:
space:
mode:
authorMichael Weghorn <m.weghorn@posteo.de>2021-05-21 15:44:46 +0200
committerMichael Weghorn <m.weghorn@posteo.de>2021-05-21 21:59:01 +0200
commita3f682f90f85d69270f4d10ee1d661f25257bf21 (patch)
tree959de0979e6eaaff5ac260b7411ab94d3066b6e0 /android
parent2634bc59092b24217d984a5845365d703bdb08d2 (diff)
tdf#106370 android: Make inserting pictures work
Instead of just setting LibreOfficeMainActivity's 'pendingInsertGraphic' member when inserting an image, call the method responsible for asking what compression to apply, doing the actual compression and sending the event so the picture is actually inserted right away. 'LibreOfficeMainActivity#pendingInsertGraphic' is (by now) only evaluated in 'LOKitTileProvider' when the document is initially loaded, therefore just setting it had no effect. The more complicated handling used previously instead of just inserting the picture right away was probably necessary/used because 'LibreOfficeMainActivity#onStart' used to reload the whole document before commit 1bc42472200c32c9a0a10dd1c3cd6c6a8a5d47d2 Author: Michael Weghorn <m.weghorn@posteo.de> Date: Fri Apr 9 13:59:43 2021 +0200 tdf#95517 android: Rework app/doc lifecycle handling and that was called when returning to the main activity from the picture chooser. (That is just a guess, I didn't actually verify this). While this fix probably doesn't have much to do with what caused that functionality to not work back in 2018, when most of the feature was introduced but it did not yet fully work as mentioned in commit 8d977511e3ab755da65d34a0bd618ef3c9db90c7 Date: Mon Aug 14 11:41:30 2017 -0500 tdf#106370 Android: add ability to insert pictures Added ability to insert pictures to Android Viewer. You can take photo or select photo from device or the cloud (Google photos, Dropbox). You can also compress the picture before inserting it with multiple compress grades. So far, inserting doesn't work for Writer due LO native library issues (I think). it still makes inserting pictures "just work" by now. Change-Id: Idad9dcbba177ea12f056bc31bd6b9c08621062cf Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115932 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Diffstat (limited to 'android')
-rw-r--r--android/source/src/java/org/libreoffice/FormattingController.java8
-rw-r--r--android/source/src/java/org/libreoffice/LOKitTileProvider.java8
-rw-r--r--android/source/src/java/org/libreoffice/LibreOfficeMainActivity.java1
3 files changed, 3 insertions, 14 deletions
diff --git a/android/source/src/java/org/libreoffice/FormattingController.java b/android/source/src/java/org/libreoffice/FormattingController.java
index a729e357bfe9..9259b2ea6cae 100644
--- a/android/source/src/java/org/libreoffice/FormattingController.java
+++ b/android/source/src/java/org/libreoffice/FormattingController.java
@@ -421,15 +421,14 @@ class FormattingController implements View.OnClickListener {
void handleActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == TAKE_PHOTO && resultCode == Activity.RESULT_OK) {
- mContext.pendingInsertGraphic = true;
+ compressAndInsertImage();
} else if (requestCode == SELECT_PHOTO && resultCode == Activity.RESULT_OK) {
getFileFromURI(data.getData());
- mContext.pendingInsertGraphic = true;
+ compressAndInsertImage();
}
}
- // Called by LOKitTileProvider when activity is resumed from photo/gallery/camera/cloud apps
- void popCompressImageGradeSelection() {
+ void compressAndInsertImage() {
AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
String[] options = {mContext.getResources().getString(R.string.compress_photo_smallest_size),
mContext.getResources().getString(R.string.compress_photo_medium_size),
@@ -493,7 +492,6 @@ class FormattingController implements View.OnClickListener {
LOKitShell.sendEvent(new LOEvent(LOEvent.UNO_COMMAND, ".uno:InsertGraphic", rootJson.toString()));
LOKitShell.sendEvent(new LOEvent(LOEvent.REFRESH));
mContext.setDocumentChanged(true);
- mContext.pendingInsertGraphic = false;
}
private void compressImage(int grade) {
diff --git a/android/source/src/java/org/libreoffice/LOKitTileProvider.java b/android/source/src/java/org/libreoffice/LOKitTileProvider.java
index 1c04fbe5a43a..579162931d3a 100644
--- a/android/source/src/java/org/libreoffice/LOKitTileProvider.java
+++ b/android/source/src/java/org/libreoffice/LOKitTileProvider.java
@@ -160,14 +160,6 @@ class LOKitTileProvider implements TileProvider {
mContext.getDocumentPartViewListAdapter().notifyDataSetChanged();
}
});
- mContext.runOnUiThread(new Runnable() {
- @Override
- public void run() {
- if (mContext.pendingInsertGraphic) {
- mContext.getFormattingController().popCompressImageGradeSelection();
- }
- }
- });
}
public void addPart(){
diff --git a/android/source/src/java/org/libreoffice/LibreOfficeMainActivity.java b/android/source/src/java/org/libreoffice/LibreOfficeMainActivity.java
index 3927cc744eb4..5ce176716d66 100644
--- a/android/source/src/java/org/libreoffice/LibreOfficeMainActivity.java
+++ b/android/source/src/java/org/libreoffice/LibreOfficeMainActivity.java
@@ -101,7 +101,6 @@ public class LibreOfficeMainActivity extends AppCompatActivity implements Settin
private String mPassword;
private boolean mPasswordProtected;
private boolean mbSkipNextRefresh;
- public boolean pendingInsertGraphic; // boolean indicating a pending insert graphic action, used in LOKitTileProvider.postLoad()
public GeckoLayerClient getLayerClient() {
return mLayerClient;