1
0
mirror of https://github.com/owncloud/android-library.git synced 2025-06-07 16:06:08 +00:00

Override contentLength in content uri request body to fix uploads to ocis

This commit is contained in:
Abel García de Prada 2021-07-01 08:58:05 +02:00
parent 99e636e8f6
commit 5c2be25d66

View File

@ -2,6 +2,7 @@ package com.owncloud.android.lib.resources.files
import android.content.ContentResolver
import android.net.Uri
import android.provider.OpenableColumns
import com.owncloud.android.lib.common.OwnCloudClient
import com.owncloud.android.lib.common.http.HttpConstants
import com.owncloud.android.lib.common.http.methods.webdav.PutMethod
@ -59,6 +60,14 @@ class ContentUriRequestBody(
return contentType.toMediaTypeOrNull()
}
override fun contentLength(): Long {
contentResolver.query(contentUri, null, null, null, null)?.use { cursor ->
val sizeIndex = cursor.getColumnIndex(OpenableColumns.SIZE)
cursor.moveToFirst()
return cursor.getLong(sizeIndex)
} ?: return -1
}
override fun writeTo(sink: BufferedSink) {
val inputStream = contentResolver.openInputStream(contentUri)
?: throw IOException("Couldn't open content URI for reading: $contentUri")