mirror of
https://github.com/owncloud/android-library.git
synced 2025-06-07 16:06:08 +00:00
Managing the deeplink
This commit is contained in:
parent
71224c30d1
commit
16d6a2d841
@ -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/"
|
||||||
|
}
|
||||||
|
}
|
@ -83,4 +83,6 @@ interface FileService : Service {
|
|||||||
isFolder: Boolean,
|
isFolder: Boolean,
|
||||||
spaceWebDavUrl: String? = null,
|
spaceWebDavUrl: String? = null,
|
||||||
): RemoteOperationResult<Unit>
|
): RemoteOperationResult<Unit>
|
||||||
|
|
||||||
|
fun fileMetaInfo(fileId: String): RemoteOperationResult<String>
|
||||||
}
|
}
|
||||||
|
@ -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.CopyRemoteFileOperation
|
||||||
import com.owncloud.android.lib.resources.files.CreateRemoteFolderOperation
|
import com.owncloud.android.lib.resources.files.CreateRemoteFolderOperation
|
||||||
import com.owncloud.android.lib.resources.files.DownloadRemoteFileOperation
|
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.MoveRemoteFileOperation
|
||||||
import com.owncloud.android.lib.resources.files.ReadRemoteFileOperation
|
import com.owncloud.android.lib.resources.files.ReadRemoteFileOperation
|
||||||
import com.owncloud.android.lib.resources.files.ReadRemoteFolderOperation
|
import com.owncloud.android.lib.resources.files.ReadRemoteFolderOperation
|
||||||
@ -140,4 +141,7 @@ class OCFileService(override val client: OwnCloudClient) : FileService {
|
|||||||
isFolder = isFolder,
|
isFolder = isFolder,
|
||||||
spaceWebDavUrl = spaceWebDavUrl,
|
spaceWebDavUrl = spaceWebDavUrl,
|
||||||
).execute(client)
|
).execute(client)
|
||||||
|
|
||||||
|
override fun fileMetaInfo(fileId: String): RemoteOperationResult<String> = GetFileMetaInfoRemoteOperation(fileId).execute(client)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user