From 0889fdae87abd9ec78a6c1d00c2771acfa4e4d34 Mon Sep 17 00:00:00 2001 From: James Dong Date: Wed, 8 Aug 2012 17:45:59 -0700 Subject: Let getOriginalMimeType() take a fd passed from drm java applications At present, we did not actually pass the fd. This patch allows us to make the changes necessary in the future without worrying too much about broken build. related-to-bug: 6426185 Change-Id: I125decff9be621a72f2631fd439994a94a526606 --- drm/java/android/drm/DrmManagerClient.java | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) (limited to 'drm/java') diff --git a/drm/java/android/drm/DrmManagerClient.java b/drm/java/android/drm/DrmManagerClient.java index 4b519941fc61..2907f10fda61 100755 --- a/drm/java/android/drm/DrmManagerClient.java +++ b/drm/java/android/drm/DrmManagerClient.java @@ -29,6 +29,9 @@ import android.os.Message; import android.provider.MediaStore; import android.util.Log; +import java.io.File; +import java.io.FileDescriptor; +import java.io.FileInputStream; import java.io.IOException; import java.lang.ref.WeakReference; import java.util.ArrayList; @@ -582,7 +585,28 @@ public class DrmManagerClient { if (null == path || path.equals("")) { throw new IllegalArgumentException("Given path should be non null"); } - return _getOriginalMimeType(mUniqueId, path); + + String mime = null; + + FileInputStream is = null; + try { + FileDescriptor fd = null; + File file = new File(path); + if (file.exists()) { + is = new FileInputStream(file); + fd = is.getFD(); + } + mime = _getOriginalMimeType(mUniqueId, path, fd); + } catch (IOException ioe) { + } finally { + if (is != null) { + try { + is.close(); + } catch(IOException e) {} + } + } + + return mime; } /** @@ -848,7 +872,7 @@ public class DrmManagerClient { private native int _getDrmObjectType(int uniqueId, String path, String mimeType); - private native String _getOriginalMimeType(int uniqueId, String path); + private native String _getOriginalMimeType(int uniqueId, String path, FileDescriptor fd); private native int _checkRightsStatus(int uniqueId, String path, int action); -- cgit v1.2.3-59-g8ed1b