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

Commit ee8946f4 authored by Jerry Zhang's avatar Jerry Zhang
Browse files

Perform database moveObject after actual move.

For folders to recursively update their paths,
MediaProvider expects the folder to already exist
when database moveObject is called.

Bug: 66925416
Test: Move a folder containing files and use content query --uri content://media/external/file to verify paths are correct.
Change-Id: I45668159d2d3f99db088d8d4dcd065a79b732c44
parent 7377ddd0
Loading
Loading
Loading
Loading
+2 −8
Original line number Diff line number Diff line
@@ -1062,10 +1062,6 @@ MtpResponseCode MtpServer::doMoveObject() {
        path += "/";
    path += info.mName;

    result = mDatabase->moveObject(objectHandle, parent, storageID, path);
    if (result != MTP_RESPONSE_OK)
        return result;

    if (info.mStorageID == storageID) {
        ALOGV("Moving file from %s to %s", (const char*)fromPath, (const char*)path);
        if (rename(fromPath, path)) {
@@ -1092,10 +1088,8 @@ MtpResponseCode MtpServer::doMoveObject() {
    }

    // If the move failed, undo the database change
    if (result != MTP_RESPONSE_OK)
        if (mDatabase->moveObject(objectHandle, info.mParent, info.mStorageID,
                    fromPath) != MTP_RESPONSE_OK)
            ALOGE("Couldn't undo failed move");
    if (result == MTP_RESPONSE_OK)
        result = mDatabase->moveObject(objectHandle, parent, storageID, path);

    return result;
}