Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 59ff05a5 authored by Jerry Zhang's avatar Jerry Zhang Committed by android-build-merger
Browse files

Merge "Add storageId to moveObjects" am: 1f4f6d2a

am: 18abf57e

Change-Id: Ieb79d5a10307c47cd772ae5ef621717d5c90cdc2
parents f92bfc3b 18abf57e
Loading
Loading
Loading
Loading
+18 −8
Original line number Diff line number Diff line
@@ -469,10 +469,14 @@ public class MtpDatabase implements AutoCloseable {
                    if (parent == 0xFFFFFFFF) {
                        // all objects in root of store
                        parent = 0;
                    }
                        where = STORAGE_PARENT_WHERE;
                        whereArgs = new String[]{Integer.toString(storageID),
                                Integer.toString(parent)};
                    }  else {
                        // If a parent is specified, the storage is redundant
                        where = PARENT_WHERE;
                        whereArgs = new String[]{Integer.toString(parent)};
                    }
                }
            } else {
                // query specific format
@@ -485,11 +489,16 @@ public class MtpDatabase implements AutoCloseable {
                    if (parent == 0xFFFFFFFF) {
                        // all objects in root of store
                        parent = 0;
                    }
                        where = STORAGE_FORMAT_PARENT_WHERE;
                        whereArgs = new String[]{Integer.toString(storageID),
                                Integer.toString(format),
                                Integer.toString(parent)};
                    } else {
                        // If a parent is specified, the storage is redundant
                        where = FORMAT_PARENT_WHERE;
                        whereArgs = new String[]{Integer.toString(format),
                                Integer.toString(parent)};
                    }
                }
            }
        }
@@ -841,7 +850,7 @@ public class MtpDatabase implements AutoCloseable {
        return MtpConstants.RESPONSE_OK;
    }

    private int moveObject(int handle, int newParent, String newPath) {
    private int moveObject(int handle, int newParent, int newStorage, String newPath) {
        String[] whereArgs = new String[] {  Integer.toString(handle) };

        // do not allow renaming any of the special subdirectories
@@ -853,6 +862,7 @@ public class MtpDatabase implements AutoCloseable {
        ContentValues values = new ContentValues();
        values.put(Files.FileColumns.DATA, newPath);
        values.put(Files.FileColumns.PARENT, newParent);
        values.put(Files.FileColumns.STORAGE_ID, newStorage);
        int updated = 0;
        try {
            // note - we are relying on a special case in MediaProvider.update() to update
+4 −4
Original line number Diff line number Diff line
@@ -180,7 +180,7 @@ public:
    virtual MtpProperty*            getDevicePropertyDesc(MtpDeviceProperty property);

    virtual MtpResponseCode         moveObject(MtpObjectHandle handle, MtpObjectHandle newParent,
                                            MtpString& newPath);
                                            MtpStorageID newStorage, MtpString& newPath);

    virtual void                    sessionStarted();

@@ -998,11 +998,11 @@ MtpResponseCode MyMtpDatabase::deleteFile(MtpObjectHandle handle) {
}

MtpResponseCode MyMtpDatabase::moveObject(MtpObjectHandle handle, MtpObjectHandle newParent,
        MtpString &newPath) {
        MtpStorageID newStorage, MtpString &newPath) {
    JNIEnv* env = AndroidRuntime::getJNIEnv();
    jstring stringValue = env->NewStringUTF((const char *) newPath);
    MtpResponseCode result = env->CallIntMethod(mDatabase, method_moveObject,
                (jint)handle, (jint)newParent, stringValue);
                (jint)handle, (jint)newParent, (jint) newStorage, stringValue);

    checkAndClearExceptionFromCallback(env, __FUNCTION__);
    env->DeleteLocalRef(stringValue);
@@ -1374,7 +1374,7 @@ int register_android_mtp_MtpDatabase(JNIEnv *env)
        ALOGE("Can't find deleteFile");
        return -1;
    }
    method_moveObject = env->GetMethodID(clazz, "moveObject", "(IILjava/lang/String;)I");
    method_moveObject = env->GetMethodID(clazz, "moveObject", "(IIILjava/lang/String;)I");
    if (method_moveObject == NULL) {
        ALOGE("Can't find moveObject");
        return -1;
+1 −1
Original line number Diff line number Diff line
@@ -72,7 +72,7 @@ android_mtp_MtpServer_setup(JNIEnv *env, jobject thiz, jobject javaDatabase, jbo
    const char *deviceInfoDeviceVersionStr = env->GetStringUTFChars(deviceInfoDeviceVersion, NULL);
    const char *deviceInfoSerialNumberStr = env->GetStringUTFChars(deviceInfoSerialNumber, NULL);
    MtpServer* server = new MtpServer(getMtpDatabase(env, javaDatabase),
            usePtp, AID_MEDIA_RW, 0664, 0775,
            usePtp,
            MtpString((deviceInfoManufacturerStr != NULL) ? deviceInfoManufacturerStr : ""),
            MtpString((deviceInfoModelStr != NULL) ? deviceInfoModelStr : ""),
            MtpString((deviceInfoDeviceVersionStr != NULL) ? deviceInfoDeviceVersionStr : ""),