1
0
mirror of https://github.com/owncloud/android-library.git synced 2026-08-12 00:42:58 +00:00

fix ip address without http prefix not recognized

This commit is contained in:
Christian Schabesberger
2020-09-21 15:03:53 +02:00
committed by Abel García de Prada
parent b207fd1c67
commit 91c7900d5c
4 changed files with 139 additions and 7 deletions
@@ -28,7 +28,9 @@ import com.owncloud.android.lib.common.OwnCloudClient
import com.owncloud.android.lib.common.operations.RemoteOperation
import com.owncloud.android.lib.common.operations.RemoteOperationResult
import com.owncloud.android.lib.common.operations.RemoteOperationResult.ResultCode
import com.owncloud.android.lib.resources.status.HttpScheme.HTTPS_PREFIX
import com.owncloud.android.lib.resources.status.HttpScheme.HTTPS_SCHEME
import com.owncloud.android.lib.resources.status.HttpScheme.HTTP_PREFIX
import com.owncloud.android.lib.resources.status.HttpScheme.HTTP_SCHEME
import org.json.JSONException
import timber.log.Timber
@@ -44,8 +46,7 @@ import timber.log.Timber
class GetRemoteStatusOperation : RemoteOperation<OwnCloudVersion>() {
override fun run(client: OwnCloudClient): RemoteOperationResult<OwnCloudVersion> {
if (client.baseUri.scheme.isNullOrEmpty())
client.baseUri = Uri.parse("$HTTPS_SCHEME://${client.baseUri}")
client.baseUri = buildFullHttpsUrl(client.baseUri)
var result = tryToConnect(client)
if (result.code != ResultCode.OK_SSL && !result.isSslRecoverableException) {
@@ -70,4 +71,16 @@ class GetRemoteStatusOperation : RemoteOperation<OwnCloudVersion>() {
RemoteOperationResult(e)
}
}
companion object {
fun usesHttpOrHttps(uri: Uri) =
uri.toString().startsWith(HTTPS_PREFIX) || uri.toString().startsWith(HTTP_PREFIX)
fun buildFullHttpsUrl(baseUri: Uri): Uri {
if (usesHttpOrHttps(baseUri)) {
return baseUri
}
return Uri.parse("$HTTPS_PREFIX$baseUri")
}
}
}
@@ -27,4 +27,6 @@ package com.owncloud.android.lib.resources.status
object HttpScheme {
const val HTTP_SCHEME = "http"
const val HTTPS_SCHEME = "https"
const val HTTP_PREFIX = "$HTTP_SCHEME://"
const val HTTPS_PREFIX = "$HTTPS_SCHEME://"
}