summaryrefslogtreecommitdiffstats
path: root/src/com/android/messaging/datamodel/data
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/messaging/datamodel/data')
-rw-r--r--src/com/android/messaging/datamodel/data/GalleryGridItemData.java39
-rw-r--r--src/com/android/messaging/datamodel/data/MessagePartData.java17
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,