Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b1224ff1 authored by Chih-Chung Chang's avatar Chih-Chung Chang
Browse files

Fix 5509346: Resize the thumbnails if it's too large.

Change-Id: I805f37f22cc745cfbc788f594da704e7e634f122
parent 6581043a
Loading
Loading
Loading
Loading
+18 −9
Original line number Diff line number Diff line
@@ -154,7 +154,7 @@ public class MediaImageItem extends MediaItem {

        final Bitmap imageBitmap;

        if (mHeight > maxResolution.second) {
        if (mWidth > maxResolution.first || mHeight > maxResolution.second) {
            /**
             *  We need to scale the image
             */
@@ -971,14 +971,13 @@ public class MediaImageItem extends MediaItem {
            /**
             *  Create the bitmap from file
             */
            if (nativeWidth / bitmapWidth > 1) {

            int sampleSize = (int) Math.ceil(Math.max(
                    (float) nativeWidth / bitmapWidth,
                    (float) nativeHeight / bitmapHeight));
            sampleSize = nextPowerOf2(sampleSize);
            final BitmapFactory.Options options = new BitmapFactory.Options();
                options.inSampleSize = nativeWidth / (int)bitmapWidth;
            options.inSampleSize = sampleSize;
            srcBitmap = BitmapFactory.decodeFile(filename, options);
            } else {
                srcBitmap = BitmapFactory.decodeFile(filename);
            }
        } else {
            bitmapWidth = width;
            bitmapHeight = height;
@@ -1009,4 +1008,14 @@ public class MediaImageItem extends MediaItem {
        srcBitmap.recycle();
        return bitmap;
    }

    public static int nextPowerOf2(int n) {
        n -= 1;
        n |= n >>> 16;
        n |= n >>> 8;
        n |= n >>> 4;
        n |= n >>> 2;
        n |= n >>> 1;
        return n + 1;
    }
}