Fix move in GoogleDrive

This commit is contained in:
Julian Raufelder 2021-07-06 18:58:50 +02:00
parent 10e03d3df2
commit d18e08f8a4
No known key found for this signature in database
GPG Key ID: 17EE71F6634E381D
3 changed files with 20 additions and 19 deletions

View File

@ -219,10 +219,10 @@ internal class CryptoImplVaultFormatPre7(
requireNotNull(target.dirFile)
target.parent?.let {
assertCryptoFolderAlreadyExists(target)
val result = folder(it, target.name, cloudContentRepository.move(source.dirFile, target.dirFile))
evictFromCache(source)
evictFromCache(target)
return result
return folder(it, target.name, cloudContentRepository.move(source.dirFile, target.dirFile)).also {
evictFromCache(source)
evictFromCache(target)
}
} ?: throw ParentFolderIsNullException(target.name)
}

View File

@ -127,7 +127,6 @@ internal class S3Impl(context: Context, cloud: S3Cloud) {
}
} ?: throw ParentFolderIsNullException(folder.name)
folder.parent?.let { parentFolder ->
try {
val putObjectArgs = PutObjectArgs //

View File

@ -183,20 +183,22 @@ internal class GoogleDriveImpl(context: Context, googleDriveCloud: GoogleDriveCl
throw CloudNodeAlreadyExistsException(target.name)
}
target.parent?.let { targetsParent ->
val metadata = File()
metadata.name = target.name
val movedFile = client() //
.files() //
.update(source.driveId, metadata) //
.setFields("id,mimeType,modifiedTime,name,size") //
.setAddParents(targetsParent.driveId) //
.setRemoveParents(targetsParent.driveId) //
.setSupportsAllDrives(true) //
.execute()
idCache.remove(source)
return idCache.cache(GoogleDriveCloudNodeFactory.from(targetsParent, movedFile))
} ?: throw ParentFolderIsNullException(target.name)
source.parent?.let { sourcesParent ->
target.parent?.let { targetsParent ->
val metadata = File()
metadata.name = target.name
val movedFile = client() //
.files() //
.update(source.driveId, metadata) //
.setFields("id,mimeType,modifiedTime,name,size") //
.setAddParents(targetsParent.driveId) //
.setRemoveParents(sourcesParent.driveId) //
.setSupportsAllDrives(true) //
.execute()
idCache.remove(source)
return idCache.cache(GoogleDriveCloudNodeFactory.from(targetsParent, movedFile))
} ?: throw ParentFolderIsNullException(target.name)
} ?: throw ParentFolderIsNullException(source.name)
}
@Throws(IOException::class, BackendException::class)