aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorlookshe <github@lookshe.org>2016-03-20 13:04:27 +0100
committerlookshe <github@lookshe.org>2016-03-20 13:04:27 +0100
commit89082f1c68fb60cf6e7c1d8533696976377fcfde (patch)
tree4b22b8199f32b4fc68814e807d603a5182722941
parenta92ef6f07749b4b18cf3e9eb1722e572c545cabe (diff)
Fixes FS#168 - Not possible to share more than one picture at once
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/ui/listeners/ResizePictureUserDecisionListener.java78
1 files changed, 51 insertions, 27 deletions
diff --git a/src/main/java/de/thedevstack/conversationsplus/ui/listeners/ResizePictureUserDecisionListener.java b/src/main/java/de/thedevstack/conversationsplus/ui/listeners/ResizePictureUserDecisionListener.java
index 8897d8da..231f738c 100644
--- a/src/main/java/de/thedevstack/conversationsplus/ui/listeners/ResizePictureUserDecisionListener.java
+++ b/src/main/java/de/thedevstack/conversationsplus/ui/listeners/ResizePictureUserDecisionListener.java
@@ -103,29 +103,7 @@ public class ResizePictureUserDecisionListener implements UserDecisionListener {
}
message.setCounterpart(conversation.getNextCounterpart());
message.setType(Message.TYPE_IMAGE);
- ConversationsPlusApplication.executeFileAdding(new Runnable() {
-
- @Override
- public void run() {
- try {
- Bitmap resizedAndRotatedImage = ImageUtil.resizeAndRotateImage(uri);
- DownloadableFile file = FileBackend.compressImageAndCopyToPrivateStorage(message, resizedAndRotatedImage);
- String filePath = file.getAbsolutePath();
- long imageSize = file.getSize();
- int imageWidth = resizedAndRotatedImage.getWidth();
- int imageHeight = resizedAndRotatedImage.getHeight();
- MessageUtil.updateMessageWithImageDetails(message, filePath, imageSize, imageWidth, imageHeight);
- if (conversation.getNextEncryption() == Message.ENCRYPTION_PGP) {
- xmppConnectionService.getPgpEngine().encrypt(message, callback);
- } else {
- callback.success(message);
- }
- } catch (final UiException e) {
- Logging.e("pictureresizesending", "Error while sending resized picture. " + e.getMessage());
- callback.error(e.getResId(), message);
- }
- }
- });
+ ConversationsPlusApplication.executeFileAdding(new OnYesRunnable(message, uri));
}
@Override
@@ -139,7 +117,31 @@ public class ResizePictureUserDecisionListener implements UserDecisionListener {
}
message.setCounterpart(conversation.getNextCounterpart());
message.setType(Message.TYPE_IMAGE);
- ConversationsPlusApplication.executeFileAdding(new Runnable() {
+ ConversationsPlusApplication.executeFileAdding(new OnNoRunnable(message, uri));
+ }
+
+ @Override
+ public void onRemember(UserDecision decision) {
+ ConversationsPlusPreferences.applyResizePicture(decision);
+ }
+
+ private abstract class OnClickRunnable implements Runnable {
+
+ protected final Message message;
+ protected final Uri uri;
+
+ public OnClickRunnable(Message message, Uri uri) {
+ this.message = message;
+ this.uri = uri;
+ }
+ }
+
+ private class OnNoRunnable extends OnClickRunnable {
+
+ public OnNoRunnable(Message message, Uri uri) {
+ super(message, uri);
+ }
+
@Override
public void run() {
InputStream is = null;
@@ -174,11 +176,33 @@ public class ResizePictureUserDecisionListener implements UserDecisionListener {
}
}
}
- });
+ }
+
+ private class OnYesRunnable extends OnClickRunnable {
+
+ public OnYesRunnable(Message message, Uri uri) {
+ super(message, uri);
}
@Override
- public void onRemember(UserDecision decision) {
- ConversationsPlusPreferences.applyResizePicture(decision);
+ public void run() {
+ try {
+ Bitmap resizedAndRotatedImage = ImageUtil.resizeAndRotateImage(uri);
+ DownloadableFile file = FileBackend.compressImageAndCopyToPrivateStorage(message, resizedAndRotatedImage);
+ String filePath = file.getAbsolutePath();
+ long imageSize = file.getSize();
+ int imageWidth = resizedAndRotatedImage.getWidth();
+ int imageHeight = resizedAndRotatedImage.getHeight();
+ MessageUtil.updateMessageWithImageDetails(message, filePath, imageSize, imageWidth, imageHeight);
+ if (conversation.getNextEncryption() == Message.ENCRYPTION_PGP) {
+ xmppConnectionService.getPgpEngine().encrypt(message, callback);
+ } else {
+ callback.success(message);
+ }
+ } catch (final UiException e) {
+ Logging.e("pictureresizesending", "Error while sending resized picture. " + e.getMessage());
+ callback.error(e.getResId(), message);
+ }
+ }
}
}