Loading media/java/android/mtp/MtpDatabase.java +15 −16 Original line number Diff line number Diff line Loading @@ -713,8 +713,7 @@ public class MtpDatabase implements AutoCloseable { }; } private MtpPropertyList getObjectPropertyList(long handle, int format, long property, private MtpPropertyList getObjectPropertyList(int handle, int format, int property, int groupCode, int depth) { // FIXME - implement group support if (groupCode != 0) { Loading @@ -722,29 +721,29 @@ public class MtpDatabase implements AutoCloseable { } MtpPropertyGroup propertyGroup; if (property == 0xFFFFFFFFL) { if (format == 0 && handle > 0) { if (property == 0xffffffff) { if (format == 0 && handle != 0 && handle != 0xffffffff) { // return properties based on the object's format format = getObjectFormat((int)handle); format = getObjectFormat(handle); } propertyGroup = mPropertyGroupsByFormat.get(format); if (propertyGroup == null) { int[] propertyList = getSupportedObjectProperties(format); propertyGroup = new MtpPropertyGroup(this, mMediaProvider, mVolumeName, propertyList); mPropertyGroupsByFormat.put(new Integer(format), propertyGroup); mPropertyGroupsByFormat.put(format, propertyGroup); } } else { propertyGroup = mPropertyGroupsByProperty.get(property); if (propertyGroup == null) { int[] propertyList = new int[] { (int)property }; propertyGroup = new MtpPropertyGroup(this, mMediaProvider, mVolumeName, propertyList); mPropertyGroupsByProperty.put(new Integer((int)property), propertyGroup); final int[] propertyList = new int[] { property }; propertyGroup = new MtpPropertyGroup( this, mMediaProvider, mVolumeName, propertyList); mPropertyGroupsByProperty.put(property, propertyGroup); } } return propertyGroup.getPropertyList((int)handle, format, depth); return propertyGroup.getPropertyList(handle, format, depth); } private int renameFile(int handle, String newName) { Loading media/jni/android_mtp_MtpDatabase.cpp +48 −30 Original line number Diff line number Diff line Loading @@ -366,9 +366,19 @@ MtpDevicePropertyList* MyMtpDatabase::getSupportedDeviceProperties() { MtpResponseCode MyMtpDatabase::getObjectPropertyValue(MtpObjectHandle handle, MtpObjectProperty property, MtpDataPacket& packet) { static_assert(sizeof(jint) >= sizeof(MtpObjectHandle), "Casting MtpObjectHandle to jint loses a value"); static_assert(sizeof(jint) >= sizeof(MtpObjectProperty), "Casting MtpObjectProperty to jint loses a value"); JNIEnv* env = AndroidRuntime::getJNIEnv(); jobject list = env->CallObjectMethod(mDatabase, method_getObjectPropertyList, (jlong)handle, 0, (jlong)property, 0, 0); jobject list = env->CallObjectMethod( mDatabase, method_getObjectPropertyList, static_cast<jint>(handle), 0, static_cast<jint>(property), 0, 0); MtpResponseCode result = env->GetIntField(list, field_mResult); int count = env->GetIntField(list, field_mCount); if (result == MTP_RESPONSE_OK && count != 1) Loading Loading @@ -673,9 +683,17 @@ MtpResponseCode MyMtpDatabase::getObjectPropertyList(MtpObjectHandle handle, uint32_t format, uint32_t property, int groupCode, int depth, MtpDataPacket& packet) { static_assert(sizeof(jint) >= sizeof(MtpObjectHandle), "Casting MtpObjectHandle to jint loses a value"); JNIEnv* env = AndroidRuntime::getJNIEnv(); jobject list = env->CallObjectMethod(mDatabase, method_getObjectPropertyList, (jlong)handle, (jint)format, (jlong)property, (jint)groupCode, (jint)depth); jobject list = env->CallObjectMethod( mDatabase, method_getObjectPropertyList, static_cast<jint>(handle), static_cast<jint>(format), static_cast<jint>(property), static_cast<jint>(groupCode), static_cast<jint>(depth)); checkAndClearExceptionFromCallback(env, __FUNCTION__); if (!list) return MTP_RESPONSE_GENERAL_ERROR; Loading Loading @@ -1313,7 +1331,7 @@ int register_android_mtp_MtpDatabase(JNIEnv *env) return -1; } method_getObjectPropertyList = env->GetMethodID(clazz, "getObjectPropertyList", "(JIJII)Landroid/mtp/MtpPropertyList;"); "(IIIII)Landroid/mtp/MtpPropertyList;"); if (method_getObjectPropertyList == NULL) { ALOGE("Can't find getObjectPropertyList"); return -1; Loading Loading
media/java/android/mtp/MtpDatabase.java +15 −16 Original line number Diff line number Diff line Loading @@ -713,8 +713,7 @@ public class MtpDatabase implements AutoCloseable { }; } private MtpPropertyList getObjectPropertyList(long handle, int format, long property, private MtpPropertyList getObjectPropertyList(int handle, int format, int property, int groupCode, int depth) { // FIXME - implement group support if (groupCode != 0) { Loading @@ -722,29 +721,29 @@ public class MtpDatabase implements AutoCloseable { } MtpPropertyGroup propertyGroup; if (property == 0xFFFFFFFFL) { if (format == 0 && handle > 0) { if (property == 0xffffffff) { if (format == 0 && handle != 0 && handle != 0xffffffff) { // return properties based on the object's format format = getObjectFormat((int)handle); format = getObjectFormat(handle); } propertyGroup = mPropertyGroupsByFormat.get(format); if (propertyGroup == null) { int[] propertyList = getSupportedObjectProperties(format); propertyGroup = new MtpPropertyGroup(this, mMediaProvider, mVolumeName, propertyList); mPropertyGroupsByFormat.put(new Integer(format), propertyGroup); mPropertyGroupsByFormat.put(format, propertyGroup); } } else { propertyGroup = mPropertyGroupsByProperty.get(property); if (propertyGroup == null) { int[] propertyList = new int[] { (int)property }; propertyGroup = new MtpPropertyGroup(this, mMediaProvider, mVolumeName, propertyList); mPropertyGroupsByProperty.put(new Integer((int)property), propertyGroup); final int[] propertyList = new int[] { property }; propertyGroup = new MtpPropertyGroup( this, mMediaProvider, mVolumeName, propertyList); mPropertyGroupsByProperty.put(property, propertyGroup); } } return propertyGroup.getPropertyList((int)handle, format, depth); return propertyGroup.getPropertyList(handle, format, depth); } private int renameFile(int handle, String newName) { Loading
media/jni/android_mtp_MtpDatabase.cpp +48 −30 Original line number Diff line number Diff line Loading @@ -366,9 +366,19 @@ MtpDevicePropertyList* MyMtpDatabase::getSupportedDeviceProperties() { MtpResponseCode MyMtpDatabase::getObjectPropertyValue(MtpObjectHandle handle, MtpObjectProperty property, MtpDataPacket& packet) { static_assert(sizeof(jint) >= sizeof(MtpObjectHandle), "Casting MtpObjectHandle to jint loses a value"); static_assert(sizeof(jint) >= sizeof(MtpObjectProperty), "Casting MtpObjectProperty to jint loses a value"); JNIEnv* env = AndroidRuntime::getJNIEnv(); jobject list = env->CallObjectMethod(mDatabase, method_getObjectPropertyList, (jlong)handle, 0, (jlong)property, 0, 0); jobject list = env->CallObjectMethod( mDatabase, method_getObjectPropertyList, static_cast<jint>(handle), 0, static_cast<jint>(property), 0, 0); MtpResponseCode result = env->GetIntField(list, field_mResult); int count = env->GetIntField(list, field_mCount); if (result == MTP_RESPONSE_OK && count != 1) Loading Loading @@ -673,9 +683,17 @@ MtpResponseCode MyMtpDatabase::getObjectPropertyList(MtpObjectHandle handle, uint32_t format, uint32_t property, int groupCode, int depth, MtpDataPacket& packet) { static_assert(sizeof(jint) >= sizeof(MtpObjectHandle), "Casting MtpObjectHandle to jint loses a value"); JNIEnv* env = AndroidRuntime::getJNIEnv(); jobject list = env->CallObjectMethod(mDatabase, method_getObjectPropertyList, (jlong)handle, (jint)format, (jlong)property, (jint)groupCode, (jint)depth); jobject list = env->CallObjectMethod( mDatabase, method_getObjectPropertyList, static_cast<jint>(handle), static_cast<jint>(format), static_cast<jint>(property), static_cast<jint>(groupCode), static_cast<jint>(depth)); checkAndClearExceptionFromCallback(env, __FUNCTION__); if (!list) return MTP_RESPONSE_GENERAL_ERROR; Loading Loading @@ -1313,7 +1331,7 @@ int register_android_mtp_MtpDatabase(JNIEnv *env) return -1; } method_getObjectPropertyList = env->GetMethodID(clazz, "getObjectPropertyList", "(JIJII)Landroid/mtp/MtpPropertyList;"); "(IIIII)Landroid/mtp/MtpPropertyList;"); if (method_getObjectPropertyList == NULL) { ALOGE("Can't find getObjectPropertyList"); return -1; Loading