Skip to content

Commit

Permalink
Merge "Let getOriginalMimeType() take a fd passed from drm java appli…
Browse files Browse the repository at this point in the history
…cations" into jb-mr1-dev
  • Loading branch information
James Dong authored and Android (Google) Code Review committed Aug 22, 2012
2 parents b9b5695 + 0889fda commit d78fc5b
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 7 deletions.
28 changes: 26 additions & 2 deletions drm/java/android/drm/DrmManagerClient.java
Expand Up @@ -29,6 +29,9 @@
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;
Expand Down Expand Up @@ -582,7 +585,28 @@ public String getOriginalMimeType(String path) {
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;
}

/**
Expand Down Expand Up @@ -848,7 +872,7 @@ private native int _saveRights(

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);

Expand Down
16 changes: 11 additions & 5 deletions drm/jni/android_drm_DrmManagerClient.cpp
Expand Up @@ -587,22 +587,28 @@ static jint android_drm_DrmManagerClient_getDrmObjectType(
}

static jstring android_drm_DrmManagerClient_getOriginalMimeType(
JNIEnv* env, jobject thiz, jint uniqueId, jstring path) {
JNIEnv* env, jobject thiz, jint uniqueId, jstring path, jobject fileDescriptor) {
ALOGV("getOriginalMimeType Enter");

int fd = (fileDescriptor == NULL)
? -1
: jniGetFDFromFileDescriptor(env, fileDescriptor);

String8 mimeType
= getDrmManagerClientImpl(env, thiz)
->getOriginalMimeType(uniqueId, Utility::getStringValue(env, path));
->getOriginalMimeType(uniqueId,
Utility::getStringValue(env, path), fd);
ALOGV("getOriginalMimeType Exit");
return env->NewStringUTF(mimeType.string());
}

static jint android_drm_DrmManagerClient_checkRightsStatus(
JNIEnv* env, jobject thiz, jint uniqueId, jstring path, int action) {
ALOGV("getOriginalMimeType Enter");
ALOGV("checkRightsStatus Enter");
int rightsStatus
= getDrmManagerClientImpl(env, thiz)
->checkRightsStatus(uniqueId, Utility::getStringValue(env, path), action);
ALOGV("getOriginalMimeType Exit");
ALOGV("checkRightsStatus Exit");
return rightsStatus;
}

Expand Down Expand Up @@ -730,7 +736,7 @@ static JNINativeMethod nativeMethods[] = {
{"_getDrmObjectType", "(ILjava/lang/String;Ljava/lang/String;)I",
(void*)android_drm_DrmManagerClient_getDrmObjectType},

{"_getOriginalMimeType", "(ILjava/lang/String;)Ljava/lang/String;",
{"_getOriginalMimeType", "(ILjava/lang/String;Ljava/io/FileDescriptor;)Ljava/lang/String;",
(void*)android_drm_DrmManagerClient_getOriginalMimeType},

{"_checkRightsStatus", "(ILjava/lang/String;I)I",
Expand Down

0 comments on commit d78fc5b

Please sign in to comment.