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 { interface AliasService {
/** /**
* Get list of local alias of the room * 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> suspend fun getRoomAliases(): List<String>
/** /**
* Add local alias to the room * 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) 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.di.UserId
import org.matrix.android.sdk.internal.network.executeRequest import org.matrix.android.sdk.internal.network.executeRequest
import org.matrix.android.sdk.internal.session.directory.DirectoryAPI 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 org.matrix.android.sdk.internal.task.Task
import javax.inject.Inject import javax.inject.Inject
internal interface AddRoomAliasTask : Task<AddRoomAliasTask.Params, Unit> { internal interface AddRoomAliasTask : Task<AddRoomAliasTask.Params, Unit> {
data class Params( data class Params(
val roomId: String, 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 val aliasLocalPart: String
) )
} }
@ -43,7 +47,7 @@ internal class DefaultAddRoomAliasTask @Inject constructor(
executeRequest<Unit>(eventBus) { executeRequest<Unit>(eventBus) {
apiCall = directoryAPI.addRoomAlias( apiCall = directoryAPI.addRoomAlias(
roomAlias = params.aliasLocalPart.toFullAlias(userId), roomAlias = params.aliasLocalPart.toFullLocalAlias(userId),
body = AddRoomAliasBody( body = AddRoomAliasBody(
roomId = params.roomId roomId = params.roomId
) )

View File

@ -29,13 +29,17 @@ internal class RoomAliasAvailabilityChecker @Inject constructor(
private val directoryAPI: DirectoryAPI, private val directoryAPI: DirectoryAPI,
private val eventBus: EventBus 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) @Throws(RoomAliasError::class)
suspend fun check(aliasLocalPart: String?) { suspend fun check(aliasLocalPart: String?) {
if (aliasLocalPart.isNullOrEmpty()) { if (aliasLocalPart.isNullOrEmpty()) {
throw RoomAliasError.AliasEmpty throw RoomAliasError.AliasEmpty
} }
// Check alias availability // Check alias availability
val fullAlias = aliasLocalPart.toFullAlias(userId) val fullAlias = aliasLocalPart.toFullLocalAlias(userId)
try { try {
executeRequest<RoomAliasDescription>(eventBus) { executeRequest<RoomAliasDescription>(eventBus) {
apiCall = directoryAPI.getRoomIdByAlias(fullAlias) apiCall = directoryAPI.getRoomIdByAlias(fullAlias)
@ -56,6 +60,6 @@ internal class RoomAliasAvailabilityChecker @Inject constructor(
} }
companion object { 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 { interface Callback {
fun toggleManualPublishForm() fun toggleManualPublishForm()
fun setNewAlias(value: String) fun setNewAlias(alias: String)
fun addAlias() fun addAlias()
fun setRoomDirectoryVisibility(roomDirectoryVisibility: RoomDirectoryVisibility) fun setRoomDirectoryVisibility(roomDirectoryVisibility: RoomDirectoryVisibility)
fun toggleLocalAliasForm() fun toggleLocalAliasForm()
fun setNewLocalAliasLocalPart(value: String) fun setNewLocalAliasLocalPart(aliasLocalPart: String)
fun addLocalAlias() fun addLocalAlias()
fun openAliasDetail(alias: String) fun openAliasDetail(alias: String)
} }

View File

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