aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/ImageSelectActivity.java
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/cgeo/geocaching/ImageSelectActivity.java')
-rw-r--r--main/src/cgeo/geocaching/ImageSelectActivity.java30
1 files changed, 19 insertions, 11 deletions
diff --git a/main/src/cgeo/geocaching/ImageSelectActivity.java b/main/src/cgeo/geocaching/ImageSelectActivity.java
index 738b9a7..66c0707 100644
--- a/main/src/cgeo/geocaching/ImageSelectActivity.java
+++ b/main/src/cgeo/geocaching/ImageSelectActivity.java
@@ -159,16 +159,20 @@ public class ImageSelectActivity extends AbstractActivity {
public void saveImageInfo(boolean saveInfo) {
if (saveInfo) {
- String filename = writeScaledImage(imageUri.getPath());
- imageUri = Uri.parse(filename);
- Intent intent = new Intent();
- syncEditTexts();
- intent.putExtra(EXTRAS_CAPTION, imageCaption);
- intent.putExtra(EXTRAS_DESCRIPTION, imageDescription);
- intent.putExtra(EXTRAS_URI_AS_STRING, imageUri.toString());
- intent.putExtra(EXTRAS_SCALE, scaleChoiceIndex);
-
- setResult(RESULT_OK, intent);
+ final String filename = writeScaledImage(imageUri.getPath());
+ if (filename != null) {
+ imageUri = Uri.parse(filename);
+ final Intent intent = new Intent();
+ syncEditTexts();
+ intent.putExtra(EXTRAS_CAPTION, imageCaption);
+ intent.putExtra(EXTRAS_DESCRIPTION, imageDescription);
+ intent.putExtra(EXTRAS_URI_AS_STRING, imageUri.toString());
+ intent.putExtra(EXTRAS_SCALE, scaleChoiceIndex);
+ setResult(RESULT_OK, intent);
+ } else {
+ showToast(res.getString(R.string.err_select_logimage_failed));
+ setResult(RESULT_CANCELED);
+ }
} else {
setResult(RESULT_CANCELED);
}
@@ -263,7 +267,7 @@ public class ImageSelectActivity extends AbstractActivity {
* Scales and writes the scaled image.
*
* @param filePath
- * @return
+ * @return the scaled image path, or <tt>null</tt> if the image cannot be decoded
*/
private String writeScaledImage(final String filePath) {
scaleChoiceIndex = scaleView.getSelectedItemPosition();
@@ -284,6 +288,10 @@ public class ImageSelectActivity extends AbstractActivity {
} else {
image = BitmapFactory.decodeFile(filePath);
}
+ // If image decoding fail, return null
+ if (image == null) {
+ return null;
+ }
final BitmapDrawable scaledImage = ImageUtils.scaleBitmapTo(image, maxXY, maxXY);
final String uploadFilename = getOutputImageFile().getPath();
ImageUtils.storeBitmap(scaledImage.getBitmap(), Bitmap.CompressFormat.JPEG, 75, uploadFilename);