Changes to enable previewing animated GIFs in Camera. Also additional
refactoring to incorporate updated Glide.
Change-Id: Ied4170884cbc70805a7145adc84bcd14fc8dda2c
diff --git a/src/com/android/camera/data/LocalDataUtil.java b/src/com/android/camera/data/LocalDataUtil.java
index 00ace49..c2cdb99 100644
--- a/src/com/android/camera/data/LocalDataUtil.java
+++ b/src/com/android/camera/data/LocalDataUtil.java
@@ -47,6 +47,8 @@
}
/**
+ * Checks whether the MIME type represents an image media item.
+ *
* @param mimeType The MIME type to check.
* @return Whether the MIME is a image type.
*/
diff --git a/src/com/android/camera/data/LocalMediaData.java b/src/com/android/camera/data/LocalMediaData.java
index f884c17..d5a6885 100644
--- a/src/com/android/camera/data/LocalMediaData.java
+++ b/src/com/android/camera/data/LocalMediaData.java
@@ -34,9 +34,9 @@
import com.android.camera.debug.Log;
import com.android.camera.util.CameraUtil;
import com.android.camera2.R;
-import com.bumptech.glide.BitmapRequestBuilder;
+import com.bumptech.glide.DrawableRequestBuilder;
import com.bumptech.glide.Glide;
-import com.bumptech.glide.load.resource.bitmap.BitmapEncoder;
+import com.bumptech.glide.load.engine.DiskCacheStrategy;
import java.io.File;
import java.text.DateFormat;
@@ -73,10 +73,6 @@
protected final double mLongitude;
protected final Bundle mMetaData;
- private static final int JPEG_COMPRESS_QUALITY = 90;
- private static final BitmapEncoder JPEG_ENCODER =
- new BitmapEncoder(Bitmap.CompressFormat.JPEG, JPEG_COMPRESS_QUALITY);
-
/**
* Used for thumbnail loading optimization. True if this data has a
* corresponding visible view.
@@ -206,8 +202,6 @@
LocalDataAdapter adapter, boolean isInProgress) {
Glide.with(context)
.loadFromMediaStore(getUri(), mMimeType, mDateModifiedInSeconds, 0)
- .asBitmap()
- .encoder(JPEG_ENCODER)
.fitCenter()
.placeholder(placeHolderResourceId)
.into(v);
@@ -215,7 +209,6 @@
v.setContentDescription(context.getResources().getString(
R.string.media_date_content_description,
getReadableDate(mDateModifiedInSeconds)));
-
return v;
}
@@ -385,7 +378,7 @@
static List<LocalData> query(ContentResolver cr, Uri uri, long lastId) {
return queryLocalMediaData(cr, uri, QUERY_PROJECTION, lastId, QUERY_ORDER,
- new PhotoDataBuilder());
+ new PhotoDataBuilder());
}
private static PhotoData buildFromCursor(Cursor c) {
@@ -540,7 +533,8 @@
final int overrideWidth;
final int overrideHeight;
- final BitmapRequestBuilder<Uri, Bitmap> thumbnailRequest;
+
+ final DrawableRequestBuilder<Uri> thumbnailRequest;
if (full) {
// Load up to the maximum size Bitmap we can render.
overrideWidth = Math.min(getWidth(), MAXIMUM_TEXTURE_SIZE);
@@ -553,6 +547,7 @@
.override(thumbWidth, thumbHeight)
.fitCenter()
.thumbnail(loadMediaStoreThumb(context));
+
} else {
// Load a medium quality thumbWidth/thumbHeight image.
overrideWidth = thumbWidth;
@@ -563,6 +558,7 @@
}
loadUri(context)
+ .diskCacheStrategy(full ? DiskCacheStrategy.NONE : DiskCacheStrategy.RESULT)
.placeholder(placeHolderResourceId)
.fitCenter()
.override(overrideWidth, overrideHeight)
@@ -570,18 +566,16 @@
.into(imageView);
}
- /** Loads a thumbnail with a size targeted to use MediaStore.Images.Thumbnails. */
- private BitmapRequestBuilder<Uri, Bitmap> loadMediaStoreThumb(Context context) {
- return loadUri(context)
- .override(MEDIASTORE_THUMB_WIDTH, MEDIASTORE_THUMB_HEIGHT);
+ /** Loads an image using a MediaStore Uri with our default options. */
+ private DrawableRequestBuilder<Uri> loadUri(Context context) {
+ return Glide.with(context)
+ .loadFromMediaStore(getUri(), mMimeType, mDateModifiedInSeconds, mOrientation);
}
- /** Loads an image using a MediaStore Uri with our default options. */
- private BitmapRequestBuilder<Uri, Bitmap> loadUri(Context context) {
- return Glide.with(context)
- .loadFromMediaStore(getUri(), mMimeType, mDateModifiedInSeconds, mOrientation)
- .asBitmap()
- .encoder(JPEG_ENCODER);
+ /** Loads a thumbnail with a size targeted to use MediaStore.Images.Thumbnails. */
+ private DrawableRequestBuilder<Uri> loadMediaStoreThumb(Context context) {
+ return loadUri(context)
+ .override(MEDIASTORE_THUMB_WIDTH, MEDIASTORE_THUMB_HEIGHT);
}
@Override
@@ -823,12 +817,8 @@
Glide.with(context)
.loadFromMediaStore(getUri(), mMimeType, mDateModifiedInSeconds, 0)
- .asBitmap()
- .encoder(JPEG_ENCODER)
.thumbnail(Glide.with(context)
.loadFromMediaStore(getUri(), mMimeType, mDateModifiedInSeconds, 0)
- .asBitmap()
- .encoder(JPEG_ENCODER)
.override(MEDIASTORE_THUMB_WIDTH, MEDIASTORE_THUMB_HEIGHT))
.placeholder(placeHolderResourceId)
.fitCenter()
@@ -898,7 +888,7 @@
@Override
public VideoData build(Cursor cursor) {
- return LocalMediaData.VideoData.buildFromCursor(cursor);
+ return VideoData.buildFromCursor(cursor);
}
}