aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarco Jacob <mjacob@union06.de>2014-04-06 15:21:28 +0200
committerSamuel Tardieu <sam@rfc1149.net>2014-04-07 07:56:19 +0200
commit4cf627afe8d1465fcb48960a88ec23fad4ca16ee (patch)
tree9daf518c282f57fa0d2d5baddf0cf0d4f53285ff
parent720274c8d9478b8b590148f82819ba6a6755f4cd (diff)
downloadcgeo-4cf627afe8d1465fcb48960a88ec23fad4ca16ee.zip
cgeo-4cf627afe8d1465fcb48960a88ec23fad4ca16ee.tar.gz
cgeo-4cf627afe8d1465fcb48960a88ec23fad4ca16ee.tar.bz2
fixes #3615 - restrict display image size to 800x800 to prevent OOM
-rw-r--r--main/src/cgeo/geocaching/utils/ImageUtils.java6
1 files changed, 4 insertions, 2 deletions
diff --git a/main/src/cgeo/geocaching/utils/ImageUtils.java b/main/src/cgeo/geocaching/utils/ImageUtils.java
index eb91724..0d8bec8 100644
--- a/main/src/cgeo/geocaching/utils/ImageUtils.java
+++ b/main/src/cgeo/geocaching/utils/ImageUtils.java
@@ -32,6 +32,7 @@ public final class ImageUtils {
};
private static final int[] ROTATION = new int[] { 90, 180, 270 };
+ private static final int MAX_DISPLAY_IMAGE_XY = 800;
private ImageUtils() {
// Do not let this class be instantiated, this is a utility class.
@@ -61,8 +62,9 @@ public final class ImageUtils {
@Nullable
public static Bitmap readAndScaleImageToFitDisplay(@NonNull final String filename) {
Point displaySize = Compatibility.getDisplaySize();
- final int maxWidth = displaySize.x - 25;
- final int maxHeight = displaySize.y - 25;
+ // Restrict image size to 800 x 800 to prevent OOM on tablets
+ final int maxWidth = Math.min(displaySize.x - 25, MAX_DISPLAY_IMAGE_XY);
+ final int maxHeight = Math.min(displaySize.y - 25, MAX_DISPLAY_IMAGE_XY);
final Bitmap image = readDownsampledImage(filename, maxWidth, maxHeight);
if (image == null) {
return null;