Add test on MentionSuggestionsProcessor and simplify the class.
This commit is contained in:
parent
1e30574d44
commit
97b749e2b2
2 changed files with 290 additions and 26 deletions
|
|
@ -48,35 +48,29 @@ class MentionSuggestionsProcessor @Inject constructor() {
|
|||
currentUserId: UserId,
|
||||
canSendRoomMention: suspend () -> Boolean,
|
||||
): List<ResolvedSuggestion> {
|
||||
val members = roomMembersState.roomMembers()
|
||||
return when {
|
||||
members.isNullOrEmpty() || suggestion == null -> {
|
||||
suggestion ?: return emptyList()
|
||||
return when (suggestion.type) {
|
||||
SuggestionType.Mention -> {
|
||||
// Replace suggestions
|
||||
val members = roomMembersState.roomMembers()
|
||||
val matchingMembers = getMemberSuggestions(
|
||||
query = suggestion.text,
|
||||
roomMembers = members,
|
||||
currentUserId = currentUserId,
|
||||
canSendRoomMention = canSendRoomMention()
|
||||
)
|
||||
matchingMembers
|
||||
}
|
||||
SuggestionType.Room -> {
|
||||
roomAliasSuggestions
|
||||
.filter { it.roomAlias.value.contains(suggestion.text, ignoreCase = true) }
|
||||
.map { ResolvedSuggestion.Alias(it.roomAlias, it.roomSummary) }
|
||||
}
|
||||
SuggestionType.Command,
|
||||
is SuggestionType.Custom -> {
|
||||
// Clear suggestions
|
||||
emptyList()
|
||||
}
|
||||
else -> {
|
||||
when (suggestion.type) {
|
||||
SuggestionType.Mention -> {
|
||||
// Replace suggestions
|
||||
val matchingMembers = getMemberSuggestions(
|
||||
query = suggestion.text,
|
||||
roomMembers = members,
|
||||
currentUserId = currentUserId,
|
||||
canSendRoomMention = canSendRoomMention()
|
||||
)
|
||||
matchingMembers
|
||||
}
|
||||
SuggestionType.Room -> {
|
||||
roomAliasSuggestions
|
||||
.filter { it.roomAlias.value.contains(suggestion.text, ignoreCase = true) }
|
||||
.map { ResolvedSuggestion.Alias(it.roomAlias, it.roomSummary) }
|
||||
}
|
||||
else -> {
|
||||
// Clear suggestions
|
||||
emptyList()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue