aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--main/src/cgeo/geocaching/ImageSelectActivity.java9
-rw-r--r--main/src/cgeo/geocaching/utils/ImageUtils.java9
2 files changed, 11 insertions, 7 deletions
diff --git a/main/src/cgeo/geocaching/ImageSelectActivity.java b/main/src/cgeo/geocaching/ImageSelectActivity.java
index bcbc0bf..a1b11c7 100644
--- a/main/src/cgeo/geocaching/ImageSelectActivity.java
+++ b/main/src/cgeo/geocaching/ImageSelectActivity.java
@@ -9,7 +9,6 @@ import cgeo.geocaching.utils.ImageUtils;
import cgeo.geocaching.utils.Log;
import org.apache.commons.lang3.StringUtils;
-import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.jdt.annotation.Nullable;
import android.content.Intent;
@@ -265,7 +264,10 @@ public class ImageSelectActivity extends AbstractActivity {
* @return the scaled image path, or <tt>null</tt> if the image cannot be decoded
*/
@Nullable
- private String writeScaledImage(@NonNull final String filePath) {
+ private String writeScaledImage(@Nullable final String filePath) {
+ if (filePath == null) {
+ return null;
+ }
scaleChoiceIndex = scaleView.getSelectedItemPosition();
final int maxXY = getResources().getIntArray(R.array.log_image_scale_values)[scaleChoiceIndex];
return ImageUtils.readScaleAndWriteImage(filePath, maxXY);
@@ -276,7 +278,7 @@ public class ImageSelectActivity extends AbstractActivity {
}
private void loadImagePreview() {
- if (imageUri == null) {
+ if (imageUri == null || imageUri.getPath() == null) {
return;
}
if (!new File(imageUri.getPath()).exists()) {
@@ -284,6 +286,7 @@ public class ImageSelectActivity extends AbstractActivity {
return;
}
+ @SuppressWarnings("null")
final Bitmap bitmap = ImageUtils.readAndScaleImageToFitDisplay(imageUri.getPath());
imagePreview.setImageBitmap(bitmap);
imagePreview.setVisibility(View.VISIBLE);
diff --git a/main/src/cgeo/geocaching/utils/ImageUtils.java b/main/src/cgeo/geocaching/utils/ImageUtils.java
index e802892..5286132 100644
--- a/main/src/cgeo/geocaching/utils/ImageUtils.java
+++ b/main/src/cgeo/geocaching/utils/ImageUtils.java
@@ -46,8 +46,9 @@ public final class ImageUtils {
*
* @param filename
* The image file to read and scale
- * @return Bitmap The scaled image
+ * @return Bitmap The scaled image or Null if source image can't be read
*/
+ @Nullable
public static Bitmap readAndScaleImageToFitDisplay(@NonNull final String filename) {
Point displaySize = Compatibility.getDisplaySize();
final int maxWidth = displaySize.x - 25;
@@ -98,7 +99,7 @@ public final class ImageUtils {
* @param pathOfOutputImage
* Path to store to
*/
- public static void storeBitmap(@NonNull final Bitmap bitmap, @NonNull final Bitmap.CompressFormat format, final int quality, @NonNull final String pathOfOutputImage) {
+ public static void storeBitmap(final Bitmap bitmap, final Bitmap.CompressFormat format, final int quality, final String pathOfOutputImage) {
try {
FileOutputStream out = new FileOutputStream(pathOfOutputImage);
BufferedOutputStream bos = new BufferedOutputStream(out);
@@ -111,12 +112,12 @@ public final class ImageUtils {
}
/**
- * Scales an image to the desired boundings and encodes to file.
+ * Scales an image to the desired bounds and encodes to file.
*
* @param filePath
* Image to read
* @param maxXY
- * boundings
+ * bounds
* @return filename and path, <tt>null</tt> if something fails
*/
@Nullable