Clarify aliasLocalPart

This commit is contained in:
Benoit Marty 2020-11-25 17:41:39 +01:00 committed by Benoit Marty
parent 50ddd3cf31
commit 9c53f0f881
5 changed files with 21 additions and 10 deletions

View File

@ -19,11 +19,14 @@ package org.matrix.android.sdk.api.session.room.alias
interface AliasService {
/**
* Get list of local alias of the room
* @return the list of the aliases (full aliases, not only the local part)
*/
suspend fun getRoomAliases(): List<String>
/**
* Add local alias to the room
* @param aliasLocalPart the local part of the alias.
* Ex: for the alias "#my_alias:example.org", the local part is "my_alias"
*/
suspend fun addAlias(aliasLocalPart: String)
}

View File

@ -20,13 +20,17 @@ import org.greenrobot.eventbus.EventBus
import org.matrix.android.sdk.internal.di.UserId
import org.matrix.android.sdk.internal.network.executeRequest
import org.matrix.android.sdk.internal.session.directory.DirectoryAPI
import org.matrix.android.sdk.internal.session.room.alias.RoomAliasAvailabilityChecker.Companion.toFullAlias
import org.matrix.android.sdk.internal.session.room.alias.RoomAliasAvailabilityChecker.Companion.toFullLocalAlias
import org.matrix.android.sdk.internal.task.Task
import javax.inject.Inject
internal interface AddRoomAliasTask : Task<AddRoomAliasTask.Params, Unit> {
data class Params(
val roomId: String,
/**
* the local part of the alias.
* Ex: for the alias "#my_alias:example.org", the local part is "my_alias"
*/
val aliasLocalPart: String
)
}
@ -43,7 +47,7 @@ internal class DefaultAddRoomAliasTask @Inject constructor(
executeRequest<Unit>(eventBus) {
apiCall = directoryAPI.addRoomAlias(
roomAlias = params.aliasLocalPart.toFullAlias(userId),
roomAlias = params.aliasLocalPart.toFullLocalAlias(userId),
body = AddRoomAliasBody(
roomId = params.roomId
)

View File

@ -29,13 +29,17 @@ internal class RoomAliasAvailabilityChecker @Inject constructor(
private val directoryAPI: DirectoryAPI,
private val eventBus: EventBus
) {
/**
* @param aliasLocalPart the local part of the alias.
* Ex: for the alias "#my_alias:example.org", the local part is "my_alias"
*/
@Throws(RoomAliasError::class)
suspend fun check(aliasLocalPart: String?) {
if (aliasLocalPart.isNullOrEmpty()) {
throw RoomAliasError.AliasEmpty
}
// Check alias availability
val fullAlias = aliasLocalPart.toFullAlias(userId)
val fullAlias = aliasLocalPart.toFullLocalAlias(userId)
try {
executeRequest<RoomAliasDescription>(eventBus) {
apiCall = directoryAPI.getRoomIdByAlias(fullAlias)
@ -56,6 +60,6 @@ internal class RoomAliasAvailabilityChecker @Inject constructor(
}
companion object {
internal fun String.toFullAlias(userId: String) = "#" + this + ":" + userId.substringAfter(":")
internal fun String.toFullLocalAlias(userId: String) = "#" + this + ":" + userId.substringAfter(":")
}
}

View File

@ -49,11 +49,11 @@ class RoomAliasController @Inject constructor(
interface Callback {
fun toggleManualPublishForm()
fun setNewAlias(value: String)
fun setNewAlias(alias: String)
fun addAlias()
fun setRoomDirectoryVisibility(roomDirectoryVisibility: RoomDirectoryVisibility)
fun toggleLocalAliasForm()
fun setNewLocalAliasLocalPart(value: String)
fun setNewLocalAliasLocalPart(aliasLocalPart: String)
fun addLocalAlias()
fun openAliasDetail(alias: String)
}

View File

@ -143,8 +143,8 @@ class RoomAliasFragment @Inject constructor(
viewModel.handle(RoomAliasAction.ToggleManualPublishForm)
}
override fun setNewAlias(value: String) {
viewModel.handle(RoomAliasAction.SetNewAlias(value))
override fun setNewAlias(alias: String) {
viewModel.handle(RoomAliasAction.SetNewAlias(alias))
}
override fun addAlias() {
@ -159,8 +159,8 @@ class RoomAliasFragment @Inject constructor(
viewModel.handle(RoomAliasAction.ToggleAddLocalAliasForm)
}
override fun setNewLocalAliasLocalPart(value: String) {
viewModel.handle(RoomAliasAction.SetNewLocalAliasLocalPart(value))
override fun setNewLocalAliasLocalPart(aliasLocalPart: String) {
viewModel.handle(RoomAliasAction.SetNewLocalAliasLocalPart(aliasLocalPart))
}
override fun addLocalAlias() {