diff options
author | Paramananda Pradhan <parama@codeaurora.org> | 2014-12-14 17:27:31 +0530 |
---|---|---|
committer | Ricardo Cerqueira <ricardo@cyngn.com> | 2015-09-15 21:31:49 +0100 |
commit | 829f9ad8c06070038cdef24e5fac76a8a16f841b (patch) | |
tree | 80fb1a7700307bb833226e04e5547f91f86f374a /src/com/android/gallery3d/data/LocalImage.java | |
parent | a5aa75d6ac958822e145b61e7c475bd1dc1b5260 (diff) | |
download | android_packages_apps_Gallery2-829f9ad8c06070038cdef24e5fac76a8a16f841b.tar.gz android_packages_apps_Gallery2-829f9ad8c06070038cdef24e5fac76a8a16f841b.tar.bz2 android_packages_apps_Gallery2-829f9ad8c06070038cdef24e5fac76a8a16f841b.zip |
Gallery2: Make Gallery2 support OMADRM feature
- Make Gallery2 can recognize and consume DRM images and videos.
Change-Id: I1655d295bcec31b5760c2c86c06f815cf6ed57ee
Diffstat (limited to 'src/com/android/gallery3d/data/LocalImage.java')
-rw-r--r-- | src/com/android/gallery3d/data/LocalImage.java | 38 |
1 files changed, 32 insertions, 6 deletions
diff --git a/src/com/android/gallery3d/data/LocalImage.java b/src/com/android/gallery3d/data/LocalImage.java index 2b01c1e22..32c4880d7 100644 --- a/src/com/android/gallery3d/data/LocalImage.java +++ b/src/com/android/gallery3d/data/LocalImage.java @@ -20,6 +20,8 @@ import android.annotation.TargetApi; import android.content.ContentResolver; import android.content.ContentValues; import android.database.Cursor; +import android.drm.DrmManagerClient; +import android.drm.DrmStore.DrmDeliveryType; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.BitmapRegionDecoder; @@ -173,16 +175,16 @@ public class LocalImage extends LocalMediaItem { @Override public Job<Bitmap> requestImage(int type) { return new LocalImageRequest(mApplication, mPath, dateModifiedInSec, - type, filePath); + type, filePath, mimeType); } public static class LocalImageRequest extends ImageCacheRequest { private String mLocalFilePath; LocalImageRequest(GalleryApp application, Path path, long timeModified, - int type, String localFilePath) { + int type, String localFilePath, String mimetype) { super(application, path, timeModified, type, - MediaItem.getTargetSize(type)); + MediaItem.getTargetSize(type), localFilePath, mimetype); mLocalFilePath = localFilePath; } @@ -236,10 +238,24 @@ public class LocalImage extends LocalMediaItem { @Override public int getSupportedOperations() { - int operation = SUPPORT_DELETE | SUPPORT_SHARE | SUPPORT_CROP - | SUPPORT_SETAS | SUPPORT_PRINT | SUPPORT_INFO; + int operation = SUPPORT_DELETE | SUPPORT_SETAS | SUPPORT_INFO; + if (filePath != null && (filePath.endsWith(".dcf") || filePath.endsWith(".dm"))) { + filePath = filePath.replace("/storage/emulated/0", "/storage/emulated/legacy"); + operation |= SUPPORT_DRM_INFO; + DrmManagerClient drmClient = new DrmManagerClient(mApplication.getAndroidContext()); + ContentValues values = drmClient.getMetadata(filePath); + int drmType = values.getAsInteger("DRM-TYPE"); + Log.d(TAG, "getSupportedOperations:drmType returned= " + + Integer.toString(drmType) + " for path= " + filePath); + if (drmType == DrmDeliveryType.SEPARATE_DELIVERY) { + operation |= SUPPORT_SHARE; + } + if (drmClient != null) drmClient.release(); + } else { + operation |= SUPPORT_SHARE | SUPPORT_EDIT | SUPPORT_CROP | SUPPORT_PRINT; + } if (BitmapUtils.isSupportedByRegionDecoder(mimeType)) { - operation |= SUPPORT_FULL_IMAGE | SUPPORT_EDIT; + operation |= SUPPORT_FULL_IMAGE; } if (BitmapUtils.isRotationSupported(mimeType)) { @@ -347,4 +363,14 @@ public class LocalImage extends LocalMediaItem { public String getFilePath() { return filePath; } + + @Override + public void setConsumeRights(boolean flag) { + consumeRights = flag; + } + + @Override + public boolean getConsumeRights() { + return consumeRights; + } } |