Skip to content
This repository was archived by the owner on Mar 19, 2024. It is now read-only.

Commit 393ec6e

Browse files
abelgardepJuancaG05
authored andcommitted
Open file in web with a specific app
1 parent f35daac commit 393ec6e

File tree

3 files changed

+24
-8
lines changed

3 files changed

+24
-8
lines changed

owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/appregistry/GetUrlToOpenInWebRemoteOperation.kt

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ import com.owncloud.android.lib.common.network.WebdavUtils
3030
import com.owncloud.android.lib.common.operations.RemoteOperation
3131
import com.owncloud.android.lib.common.operations.RemoteOperationResult
3232
import com.owncloud.android.lib.common.operations.RemoteOperationResult.ResultCode
33-
import com.owncloud.android.lib.resources.appregistry.GetUrlToOpenInWebRemoteOperation.OpenInWebParams.Companion.PARAM_FILE_ID
3433
import com.squareup.moshi.JsonAdapter
3534
import com.squareup.moshi.JsonClass
3635
import com.squareup.moshi.Moshi
@@ -43,14 +42,16 @@ import java.util.concurrent.TimeUnit
4342
class GetUrlToOpenInWebRemoteOperation(
4443
val openWithWebEndpoint: String,
4544
val fileId: String,
45+
val appName: String,
4646
) : RemoteOperation<String>() {
4747

4848
override fun run(client: OwnCloudClient): RemoteOperationResult<String> {
4949
return try {
5050

51-
val openInWebRequestBody = OpenInWebParams(fileId).toRequestBody()
51+
val openInWebRequestBody = OpenInWebParams(fileId, appName).toRequestBody()
5252

53-
val stringUrl = client.baseUri.toString() + WebdavUtils.encodePath(openWithWebEndpoint) + "?$PARAM_FILE_ID=$fileId"
53+
val stringUrl =
54+
client.baseUri.toString() + WebdavUtils.encodePath(openWithWebEndpoint)
5455

5556
val postMethod = PostMethod(URL(stringUrl), openInWebRequestBody).apply {
5657
setReadTimeout(TIMEOUT, TimeUnit.MILLISECONDS)
@@ -77,12 +78,19 @@ class GetUrlToOpenInWebRemoteOperation(
7778

7879
private fun isSuccess(status: Int) = status == HttpConstants.HTTP_OK || status == HttpConstants.HTTP_MULTI_STATUS
7980

80-
data class OpenInWebParams(val fileId: String) {
81+
data class OpenInWebParams(
82+
val fileId: String,
83+
val appName: String,
84+
) {
8185
fun toRequestBody(): RequestBody =
82-
FormBody.Builder().build()
86+
FormBody.Builder()
87+
.add(PARAM_FILE_ID, fileId)
88+
.add(PARAM_APP_NAME, appName)
89+
.build()
8390

8491
companion object {
8592
const val PARAM_FILE_ID = "file_id"
93+
const val PARAM_APP_NAME = "app_name"
8694
}
8795
}
8896

owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/appregistry/services/AppRegistryService.kt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,5 +29,9 @@ import com.owncloud.android.lib.resources.appregistry.responses.AppRegistryRespo
2929
interface AppRegistryService : Service {
3030
fun getAppRegistry(): RemoteOperationResult<AppRegistryResponse>
3131

32-
fun getUrlToOpenInWeb(openWebEndpoint: String, fileId: String): RemoteOperationResult<String>
32+
fun getUrlToOpenInWeb(
33+
openWebEndpoint: String,
34+
fileId: String,
35+
appName: String,
36+
): RemoteOperationResult<String>
3337
}

owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/appregistry/services/OCAppRegistryService.kt

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,10 @@ class OCAppRegistryService(override val client: OwnCloudClient) : AppRegistrySer
3232
override fun getAppRegistry(): RemoteOperationResult<AppRegistryResponse> =
3333
GetRemoteAppRegistryOperation().execute(client)
3434

35-
override fun getUrlToOpenInWeb(openWebEndpoint: String, fileId: String): RemoteOperationResult<String> =
36-
GetUrlToOpenInWebRemoteOperation(openWithWebEndpoint = openWebEndpoint, fileId = fileId).execute(client)
35+
override fun getUrlToOpenInWeb(openWebEndpoint: String, fileId: String, appName: String): RemoteOperationResult<String> =
36+
GetUrlToOpenInWebRemoteOperation(
37+
openWithWebEndpoint = openWebEndpoint,
38+
fileId = fileId,
39+
appName = appName
40+
).execute(client)
3741
}

0 commit comments

Comments
 (0)