Fix / issue with avatar url

This commit is contained in:
Valere 2019-05-28 15:17:06 +02:00
parent bdbd521257
commit 466be1dca5
2 changed files with 18 additions and 10 deletions

View File

@ -21,10 +21,19 @@ import im.vector.matrix.android.api.session.content.ContentUrlResolver


private const val MATRIX_CONTENT_URI_SCHEME = "mxc://"
internal const val URI_PREFIX_CONTENT_API = "_matrix/media/v1/"
private const val URI_PREFIX_CONTENT_API = "_matrix/media/v1/"

internal class DefaultContentUrlResolver(private val homeServerConnectionConfig: HomeServerConnectionConfig) : ContentUrlResolver {

companion object {
fun getUploadUrl(homeServerConnectionConfig: HomeServerConnectionConfig): String {
val baseUrl = homeServerConnectionConfig.homeServerUri.toString()
val sep = if (baseUrl.endsWith("/")) "" else "/"

return baseUrl + sep + URI_PREFIX_CONTENT_API + "upload"
}
}

override fun resolveFullSize(contentUrl: String?): String? {
if (contentUrl?.isValidMatrixContentUrl() == true) {
val baseUrl = homeServerConnectionConfig.homeServerUri.toString()
@ -57,7 +66,10 @@ internal class DefaultContentUrlResolver(private val homeServerConnectionConfig:
fragment = serverAndMediaId.substring(fragmentOffset)
serverAndMediaId = serverAndMediaId.substring(0, fragmentOffset)
}
return baseUrl + prefix + serverAndMediaId + (params ?: "") + fragment

val sep = if (baseUrl.endsWith("/")) "" else "/"

return baseUrl + sep + prefix + serverAndMediaId + (params ?: "") + fragment
}

private fun String.isValidMatrixContentUrl(): Boolean {

View File

@ -21,19 +21,15 @@ import arrow.core.Try.Companion.raise
import im.vector.matrix.android.api.auth.data.SessionParams
import im.vector.matrix.android.internal.di.MoshiProvider
import im.vector.matrix.android.internal.network.ProgressRequestBody
import okhttp3.HttpUrl
import okhttp3.MediaType
import okhttp3.OkHttpClient
import okhttp3.Request
import okhttp3.RequestBody
import okhttp3.*
import java.io.File
import java.io.IOException


internal class FileUploader(private val okHttpClient: OkHttpClient,
private val sessionParams: SessionParams) {
sessionParams: SessionParams) {

private val uploadUrl = sessionParams.homeServerConnectionConfig.homeServerUri.toString() + URI_PREFIX_CONTENT_API + "upload"
private val uploadUrl = DefaultContentUrlResolver.getUploadUrl(sessionParams.homeServerConnectionConfig)

private val moshi = MoshiProvider.providesMoshi()
private val responseAdapter = moshi.adapter(ContentUploadResponse::class.java)
@ -82,7 +78,7 @@ internal class FileUploader(private val okHttpClient: OkHttpClient,
response.body()?.source()?.let {
responseAdapter.fromJson(it)
}
?: throw IOException()
?: throw IOException()
}
}
}