diff options
Diffstat (limited to 'src/com/android/messaging/datamodel/data')
-rw-r--r-- | src/com/android/messaging/datamodel/data/GalleryGridItemData.java | 39 | ||||
-rw-r--r-- | src/com/android/messaging/datamodel/data/MessagePartData.java | 17 |
2 files changed, 45 insertions, 11 deletions
diff --git a/src/com/android/messaging/datamodel/data/GalleryGridItemData.java b/src/com/android/messaging/datamodel/data/GalleryGridItemData.java index 6649757..49bf8d0 100644 --- a/src/com/android/messaging/datamodel/data/GalleryGridItemData.java +++ b/src/com/android/messaging/datamodel/data/GalleryGridItemData.java @@ -26,6 +26,7 @@ import android.text.TextUtils; import com.android.messaging.datamodel.media.FileImageRequestDescriptor; import com.android.messaging.datamodel.media.ImageRequest; import com.android.messaging.datamodel.media.UriImageRequestDescriptor; +import com.android.messaging.datamodel.media.VideoThumbnailRequestDescriptor; import com.android.messaging.util.Assert; /** @@ -59,6 +60,7 @@ public class GalleryGridItemData { private UriImageRequestDescriptor mImageData; private String mContentType; private boolean mIsDocumentPickerItem; + private boolean mIsVideoItem; private long mDateSeconds; public GalleryGridItemData() { @@ -67,10 +69,15 @@ public class GalleryGridItemData { public void bind(final Cursor cursor, final int desiredWidth, final int desiredHeight) { mIsDocumentPickerItem = TextUtils.equals(cursor.getString(INDEX_ID), ID_DOCUMENT_PICKER_ITEM); + if (mIsDocumentPickerItem) { mImageData = null; mContentType = null; } else { + + String mimeType = (cursor.getString(INDEX_MIME_TYPE)); + mIsVideoItem = (mimeType != null && mimeType.toLowerCase().contains("video/")); + int sourceWidth = cursor.getInt(INDEX_WIDTH); int sourceHeight = cursor.getInt(INDEX_HEIGHT); @@ -85,15 +92,25 @@ public class GalleryGridItemData { mContentType = cursor.getString(INDEX_MIME_TYPE); final String dateModified = cursor.getString(INDEX_DATE_MODIFIED); mDateSeconds = !TextUtils.isEmpty(dateModified) ? Long.parseLong(dateModified) : -1; - mImageData = new FileImageRequestDescriptor( - cursor.getString(INDEX_DATA_PATH), - desiredWidth, - desiredHeight, - sourceWidth, - sourceHeight, - true /* canUseThumbnail */, - true /* allowCompression */, - true /* isStatic */); + if (mIsVideoItem) { + mImageData = new VideoThumbnailRequestDescriptor( + cursor.getLong(INDEX_ID), + cursor.getString(INDEX_DATA_PATH), + desiredWidth, + desiredHeight, + sourceWidth, + sourceHeight); + } else { + mImageData = new FileImageRequestDescriptor( + cursor.getString(INDEX_DATA_PATH), + desiredWidth, + desiredHeight, + sourceWidth, + sourceHeight, + true /* canUseThumbnail */, + true /* allowCompression */, + true /* isStatic */); + } } } @@ -101,6 +118,10 @@ public class GalleryGridItemData { return mIsDocumentPickerItem; } + public boolean isVideoItem() { + return mIsVideoItem; + } + public Uri getImageUri() { return mImageData.uri; } diff --git a/src/com/android/messaging/datamodel/data/MessagePartData.java b/src/com/android/messaging/datamodel/data/MessagePartData.java index fffaca8..a41eb3d 100644 --- a/src/com/android/messaging/datamodel/data/MessagePartData.java +++ b/src/com/android/messaging/datamodel/data/MessagePartData.java @@ -53,8 +53,21 @@ import java.util.concurrent.TimeUnit; public class MessagePartData implements Parcelable { public static final int UNSPECIFIED_SIZE = MessagingContentProvider.UNSPECIFIED_SIZE; public static final String[] ACCEPTABLE_IMAGE_TYPES = - new String[] { ContentType.IMAGE_JPEG, ContentType.IMAGE_JPG, ContentType.IMAGE_PNG, - ContentType.IMAGE_GIF }; + new String[] { + // Images + ContentType.IMAGE_JPEG, + ContentType.IMAGE_JPG, + ContentType.IMAGE_PNG, + ContentType.IMAGE_GIF, + + // Videos + ContentType.VIDEO_MP4, + ContentType.VIDEO_MPEG, + ContentType.VIDEO_MPEG4, + ContentType.VIDEO_3GP, + ContentType.VIDEO_3GPP, + ContentType.VIDEO_WEBM, + }; private static final String[] sProjection = { PartColumns._ID, |