diff options
Diffstat (limited to 'src/main/java/de')
-rw-r--r-- | src/main/java/de/thedevstack/conversationsplus/ui/listeners/ResizePictureUserDecisionListener.java | 78 |
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); + } + } } } |