diff options
author | iNPUTmice <daniel@gultsch.de> | 2014-08-16 17:31:53 +0200 |
---|---|---|
committer | iNPUTmice <daniel@gultsch.de> | 2014-08-16 17:31:53 +0200 |
commit | 38f36aa2631f863d927f417b3758eb7969b31111 (patch) | |
tree | a8b33c1e803fa508dd30c7c48e550cff5afadbd7 | |
parent | 5aa8afdc1c0c60a47f8e93076697ad65e702764d (diff) |
more error handling for avatar publication
-rw-r--r-- | src/eu/siacs/conversations/persistance/FileBackend.java | 9 | ||||
-rw-r--r-- | src/eu/siacs/conversations/ui/PublishProfilePictureActivity.java | 9 |
2 files changed, 17 insertions, 1 deletions
diff --git a/src/eu/siacs/conversations/persistance/FileBackend.java b/src/eu/siacs/conversations/persistance/FileBackend.java index 4db46009..f4067f87 100644 --- a/src/eu/siacs/conversations/persistance/FileBackend.java +++ b/src/eu/siacs/conversations/persistance/FileBackend.java @@ -285,6 +285,9 @@ public class FileBackend { try { Avatar avatar = new Avatar(); Bitmap bm = cropCenterSquare(image, size); + if (bm==null) { + return null; + } ByteArrayOutputStream mByteArrayOutputStream = new ByteArrayOutputStream(); Base64OutputStream mBase64OutputSttream = new Base64OutputStream(mByteArrayOutputStream, Base64.DEFAULT); MessageDigest digest = MessageDigest.getInstance("SHA-1"); @@ -355,7 +358,11 @@ public class FileBackend { InputStream is = context.getContentResolver() .openInputStream(image); Bitmap input = BitmapFactory.decodeStream(is, null, options); - return cropCenterSquare(input, size); + if (input==null) { + return null; + } else { + return cropCenterSquare(input, size); + } } catch (FileNotFoundException e) { return null; } diff --git a/src/eu/siacs/conversations/ui/PublishProfilePictureActivity.java b/src/eu/siacs/conversations/ui/PublishProfilePictureActivity.java index 3b6ca13d..e874eeb7 100644 --- a/src/eu/siacs/conversations/ui/PublishProfilePictureActivity.java +++ b/src/eu/siacs/conversations/ui/PublishProfilePictureActivity.java @@ -129,6 +129,9 @@ public class PublishProfilePictureActivity extends XmppActivity { if (resultCode == RESULT_OK) { if (requestCode == REQUEST_CHOOSE_FILE) { this.avatarUri = data.getData(); + if (xmppConnectionServiceBound) { + loadImageIntoPreview(this.avatarUri); + } } } } @@ -173,6 +176,12 @@ public class PublishProfilePictureActivity extends XmppActivity { protected void loadImageIntoPreview(Uri uri) { Bitmap bm = xmppConnectionService.getFileBackend().cropCenterSquare( uri, 384); + if (bm==null) { + disablePublishButton(); + this.hintOrWarning.setTextColor(getWarningTextColor()); + this.hintOrWarning.setText(R.string.error_publish_avatar_converting); + return; + } this.avatar.setImageBitmap(bm); if (support) { enablePublishButton(); |