Add support for link generated by matrix.to website.
This commit is contained in:
parent
4dfec7ac55
commit
1bcfa6034c
5 changed files with 63 additions and 2 deletions
|
|
@ -19,6 +19,7 @@ package io.element.android.libraries.matrix.impl.permalink
|
|||
import android.net.Uri
|
||||
import com.squareup.anvil.annotations.ContributesBinding
|
||||
import io.element.android.appconfig.MatrixConfiguration
|
||||
import io.element.android.libraries.core.extensions.replacePrefix
|
||||
import io.element.android.libraries.di.AppScope
|
||||
import io.element.android.libraries.matrix.api.permalink.MatrixToConverter
|
||||
import javax.inject.Inject
|
||||
|
|
@ -35,9 +36,14 @@ class DefaultMatrixToConverter @Inject constructor() : MatrixToConverter {
|
|||
* - https://riot.im/develop/#/room/#element-android:matrix.org -> https://matrix.to/#/#element-android:matrix.org
|
||||
* - https://app.element.io/#/room/#element-android:matrix.org -> https://matrix.to/#/#element-android:matrix.org
|
||||
* - https://www.example.org/#/room/#element-android:matrix.org -> https://matrix.to/#/#element-android:matrix.org
|
||||
* Also convert links coming from the matrix.to website:
|
||||
* - element://room/#element-android:matrix.org -> https://matrix.to/#/#element-android:matrix.org
|
||||
* - element://user/@alice:matrix.org -> https://matrix.to/#/@alice:matrix.org
|
||||
*/
|
||||
override fun convert(uri: Uri): Uri? {
|
||||
val uriString = uri.toString()
|
||||
// Handle links coming from the matrix.to website.
|
||||
.replacePrefix(MATRIX_TO_CUSTOM_SCHEME_BASE_URL, "https://app.element.io/#/")
|
||||
val baseUrl = MatrixConfiguration.MATRIX_TO_PERMALINK_BASE_URL
|
||||
|
||||
return when {
|
||||
|
|
@ -54,7 +60,8 @@ class DefaultMatrixToConverter @Inject constructor() : MatrixToConverter {
|
|||
}
|
||||
|
||||
companion object {
|
||||
val SUPPORTED_PATHS = listOf(
|
||||
private const val MATRIX_TO_CUSTOM_SCHEME_BASE_URL = "element://"
|
||||
private val SUPPORTED_PATHS = listOf(
|
||||
"/#/room/",
|
||||
"/#/user/",
|
||||
"/#/group/"
|
||||
|
|
|
|||
|
|
@ -53,4 +53,16 @@ class DefaultMatrixToConverterTest {
|
|||
val url = Uri.parse("https://element.io/")
|
||||
assertThat(DefaultMatrixToConverter().convert(url)).isNull()
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `converting url coming from the matrix-to website returns a matrix-to url for room case`() {
|
||||
val url = Uri.parse("element://room/#element-android:matrix.org")
|
||||
assertThat(DefaultMatrixToConverter().convert(url)).isEqualTo(Uri.parse("https://matrix.to/#/#element-android:matrix.org"))
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `converting url coming from the matrix-to website returns a matrix-to url for user case`() {
|
||||
val url = Uri.parse("element://user/@alice:matrix.org")
|
||||
assertThat(DefaultMatrixToConverter().convert(url)).isEqualTo(Uri.parse("https://matrix.to/#/@alice:matrix.org"))
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue