Improve and use MatrixUrls
This commit is contained in:
parent
adea1db87a
commit
c0af8214a6
|
@ -20,7 +20,18 @@ package org.matrix.android.sdk.api
|
|||
* This class contains pattern to match Matrix Url, aka mxc urls
|
||||
*/
|
||||
object MatrixUrls {
|
||||
/**
|
||||
* "mxc" scheme, including "://". So "mxc://"
|
||||
*/
|
||||
const val MATRIX_CONTENT_URI_SCHEME = "mxc://"
|
||||
|
||||
/**
|
||||
* Return true if the String starts with "mxc://"
|
||||
*/
|
||||
fun String.isMxcUrl() = startsWith(MATRIX_CONTENT_URI_SCHEME)
|
||||
|
||||
/**
|
||||
* Remove the "mxc://" prefix. No op if the String is not a Mxc URL
|
||||
*/
|
||||
fun String.removeMxcPrefix() = removePrefix(MATRIX_CONTENT_URI_SCHEME)
|
||||
}
|
||||
|
|
|
@ -16,8 +16,8 @@
|
|||
|
||||
package org.matrix.android.sdk.internal.session.content
|
||||
|
||||
import org.matrix.android.sdk.api.MatrixUrls
|
||||
import org.matrix.android.sdk.api.MatrixUrls.isMxcUrl
|
||||
import org.matrix.android.sdk.api.MatrixUrls.removeMxcPrefix
|
||||
import org.matrix.android.sdk.api.auth.data.HomeServerConnectionConfig
|
||||
import org.matrix.android.sdk.api.session.content.ContentUrlResolver
|
||||
import org.matrix.android.sdk.api.session.contentscanner.ContentScannerService
|
||||
|
@ -83,7 +83,7 @@ internal class DefaultContentUrlResolver @Inject constructor(
|
|||
private fun resolve(contentUrl: String,
|
||||
toThumbnail: Boolean,
|
||||
params: String = ""): String {
|
||||
var serverAndMediaId = contentUrl.removePrefix(MatrixUrls.MATRIX_CONTENT_URI_SCHEME)
|
||||
var serverAndMediaId = contentUrl.removeMxcPrefix()
|
||||
|
||||
val apiPath = if (scannerService.isScannerEnabled()) {
|
||||
NetworkConstants.URI_API_PREFIX_PATH_MEDIA_PROXY_UNSTABLE
|
||||
|
|
|
@ -16,6 +16,8 @@
|
|||
|
||||
package org.matrix.android.sdk.internal.session.contentscanner.tasks
|
||||
|
||||
import org.matrix.android.sdk.api.MatrixUrls.isMxcUrl
|
||||
import org.matrix.android.sdk.api.MatrixUrls.removeMxcPrefix
|
||||
import org.matrix.android.sdk.api.failure.toScanFailure
|
||||
import org.matrix.android.sdk.api.session.contentscanner.ScanState
|
||||
import org.matrix.android.sdk.internal.network.executeRequest
|
||||
|
@ -38,13 +40,13 @@ internal class DefaultScanMediaTask @Inject constructor(
|
|||
|
||||
override suspend fun execute(params: ScanMediaTask.Params): ScanResponse {
|
||||
// "mxc://server.org/QNDpzLopkoQYNikJfoZCQuCXJ"
|
||||
if (!params.mxcUrl.startsWith("mxc://")) {
|
||||
if (!params.mxcUrl.isMxcUrl()) {
|
||||
throw IllegalAccessException("Invalid mxc url")
|
||||
}
|
||||
val scannerUrl = contentScannerStore.getScannerUrl()
|
||||
contentScannerStore.updateStateForContent(params.mxcUrl, ScanState.IN_PROGRESS, scannerUrl)
|
||||
|
||||
var serverAndMediaId = params.mxcUrl.removePrefix("mxc://")
|
||||
var serverAndMediaId = params.mxcUrl.removeMxcPrefix()
|
||||
val fragmentOffset = serverAndMediaId.indexOf("#")
|
||||
if (fragmentOffset >= 0) {
|
||||
serverAndMediaId = serverAndMediaId.substring(0, fragmentOffset)
|
||||
|
|
Loading…
Reference in New Issue