Introduce value class RoomAlias

This commit is contained in:
Benoit Marty 2024-04-16 10:39:45 +02:00 committed by Benoit Marty
parent 2a467bd49b
commit bd12ff737b
8 changed files with 50 additions and 12 deletions

View file

@ -23,6 +23,7 @@ import io.element.android.libraries.core.coroutine.CoroutineDispatchers
import io.element.android.libraries.core.coroutine.childScope
import io.element.android.libraries.matrix.api.MatrixClient
import io.element.android.libraries.matrix.api.core.ProgressCallback
import io.element.android.libraries.matrix.api.core.RoomAlias
import io.element.android.libraries.matrix.api.core.RoomId
import io.element.android.libraries.matrix.api.core.UserId
import io.element.android.libraries.matrix.api.createroom.CreateRoomParameters
@ -462,9 +463,9 @@ class RustMatrixClient(
}
}
override suspend fun resolveRoomAlias(roomAlias: String): Result<RoomId> = withContext(sessionDispatcher) {
override suspend fun resolveRoomAlias(roomAlias: RoomAlias): Result<RoomId> = withContext(sessionDispatcher) {
runCatching {
client.resolveRoomAlias(roomAlias).let(::RoomId)
client.resolveRoomAlias(roomAlias.value).let(::RoomId)
}
}

View file

@ -20,6 +20,7 @@ import android.net.Uri
import com.squareup.anvil.annotations.ContributesBinding
import io.element.android.libraries.di.AppScope
import io.element.android.libraries.matrix.api.core.EventId
import io.element.android.libraries.matrix.api.core.RoomAlias
import io.element.android.libraries.matrix.api.core.RoomId
import io.element.android.libraries.matrix.api.core.UserId
import io.element.android.libraries.matrix.api.permalink.MatrixToConverter
@ -67,7 +68,7 @@ class DefaultPermalinkParser @Inject constructor(
userId = UserId(id.id),
)
is MatrixId.RoomAlias -> PermalinkData.RoomAliasLink(
roomAlias = id.alias,
roomAlias = RoomAlias(id.alias),
viaParameters = viaParameters,
)
is MatrixId.EventOnRoomId -> PermalinkData.EventIdLink(
@ -76,7 +77,7 @@ class DefaultPermalinkParser @Inject constructor(
viaParameters = viaParameters,
)
is MatrixId.EventOnRoomAlias -> PermalinkData.EventIdAliasLink(
roomAlias = id.alias,
roomAlias = RoomAlias(id.alias),
eventId = EventId(id.eventId),
viaParameters = viaParameters,
)