diff --git a/vector/src/main/java/im/vector/app/features/home/room/list/RoomSummaryItemFactory.kt b/vector/src/main/java/im/vector/app/features/home/room/list/RoomSummaryItemFactory.kt
index 79c6fe3209..60ee1eda83 100644
--- a/vector/src/main/java/im/vector/app/features/home/room/list/RoomSummaryItemFactory.kt
+++ b/vector/src/main/java/im/vector/app/features/home/room/list/RoomSummaryItemFactory.kt
@@ -207,9 +207,18 @@ class RoomSummaryItemFactory @Inject constructor(
private fun getSearchResultSubtitle(roomSummary: RoomSummary): String {
val userId = roomSummary.directUserId
- val directParent = roomSummary.directParentNames.takeIf { it.isNotEmpty() }?.joinToString()
+ val directParent = joinParentNames(roomSummary)
val canonicalAlias = roomSummary.canonicalAlias
return (userId ?: directParent ?: canonicalAlias).orEmpty()
}
+
+ private fun joinParentNames(roomSummary: RoomSummary) = with(roomSummary) {
+ when (directParentNames.size) {
+ 0 -> null
+ 1 -> directParentNames.first()
+ 2 -> stringProvider.getString(R.string.search_space_two_parents, directParentNames[0], directParentNames[1])
+ else -> stringProvider.getString(R.string.search_space_multiple_parents, directParentNames.first(), directParentNames.size - 1)
+ }
+ }
}
diff --git a/vector/src/main/res/values/strings.xml b/vector/src/main/res/values/strings.xml
index 933f3f0602..f0597405d8 100644
--- a/vector/src/main/res/values/strings.xml
+++ b/vector/src/main/res/values/strings.xml
@@ -762,6 +762,8 @@
Filter room members
Filter banned users
No results
+ %1$s and %2$s
+ %1$s and %2$d others
All messages