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

Managing the deeplink

This commit is contained in:
Manuel Plazas Palacio 2023-09-27 17:31:07 +02:00
parent 71224c30d1
commit 16d6a2d841
3 changed files with 40 additions and 0 deletions

View File

@ -0,0 +1,34 @@
package com.owncloud.android.lib.resources.files
import com.owncloud.android.lib.common.OwnCloudClient
import com.owncloud.android.lib.common.http.HttpConstants
import com.owncloud.android.lib.common.http.methods.webdav.DavUtils
import com.owncloud.android.lib.common.http.methods.webdav.DavUtils.allPropSet
import com.owncloud.android.lib.common.http.methods.webdav.PropfindMethod
import com.owncloud.android.lib.common.operations.RemoteOperation
import com.owncloud.android.lib.common.operations.RemoteOperationResult
import timber.log.Timber
import java.net.URL
class GetFileMetaInfoRemoteOperation(val fileId: String) : RemoteOperation<String>() {
private val stringUrl = "${client.baseUri}$META_PATH$fileId"
override fun run(client: OwnCloudClient): RemoteOperationResult<String> {
return try {
val propFindMethod = PropfindMethod(URL(stringUrl), 0, allPropSet)
val status = client.executeHttpMethod(propFindMethod)
if (isSuccess(status)) RemoteOperationResult<String>(RemoteOperationResult.ResultCode.OK)
else RemoteOperationResult<String>(propFindMethod)
} catch (e: Exception) {
Timber.e(e, "Could not get actuall (or redirected) base URL from base url (/).")
RemoteOperationResult<String>(e)
}
}
private fun isSuccess(status: Int) = status == HttpConstants.HTTP_OK || status == HttpConstants.HTTP_MULTI_STATUS
companion object {
private const val META_PATH = "/remote.php/dav/meta/"
}
}

View File

@ -83,4 +83,6 @@ interface FileService : Service {
isFolder: Boolean,
spaceWebDavUrl: String? = null,
): RemoteOperationResult<Unit>
fun fileMetaInfo(fileId: String): RemoteOperationResult<String>
}

View File

@ -29,6 +29,7 @@ import com.owncloud.android.lib.resources.files.CheckPathExistenceRemoteOperatio
import com.owncloud.android.lib.resources.files.CopyRemoteFileOperation
import com.owncloud.android.lib.resources.files.CreateRemoteFolderOperation
import com.owncloud.android.lib.resources.files.DownloadRemoteFileOperation
import com.owncloud.android.lib.resources.files.GetFileMetaInfoRemoteOperation
import com.owncloud.android.lib.resources.files.MoveRemoteFileOperation
import com.owncloud.android.lib.resources.files.ReadRemoteFileOperation
import com.owncloud.android.lib.resources.files.ReadRemoteFolderOperation
@ -140,4 +141,7 @@ class OCFileService(override val client: OwnCloudClient) : FileService {
isFolder = isFolder,
spaceWebDavUrl = spaceWebDavUrl,
).execute(client)
override fun fileMetaInfo(fileId: String): RemoteOperationResult<String> = GetFileMetaInfoRemoteOperation(fileId).execute(client)
}