diff --git a/vector-config/src/main/java/im/vector/app/config/Config.kt b/vector-config/src/main/java/im/vector/app/config/Config.kt index ae7af83053..758d4e2a43 100644 --- a/vector-config/src/main/java/im/vector/app/config/Config.kt +++ b/vector-config/src/main/java/im/vector/app/config/Config.kt @@ -42,8 +42,10 @@ object Config { const val ENABLE_LOCATION_SHARING = true const val LOCATION_MAP_TILER_KEY = "fU3vlMsMn4Jb6dnEIFsx" - /// Whether to read the `io.element.functional_members` state event - // and exclude any service members when computing a room's name and avatar. + /** + * Whether to read the `io.element.functional_members` state event + * and exclude any service members when computing a room's name and avatar. + */ const val SUPPORT_FUNCTIONAL_MEMBERS = true /** diff --git a/vector/src/main/java/im/vector/app/features/room/FunctionalMembersState.kt b/vector/src/main/java/im/vector/app/features/room/FunctionalMembersState.kt index 56c2ac26c5..821acf948c 100644 --- a/vector/src/main/java/im/vector/app/features/room/FunctionalMembersState.kt +++ b/vector/src/main/java/im/vector/app/features/room/FunctionalMembersState.kt @@ -26,11 +26,13 @@ private const val FUNCTIONAL_MEMBERS_STATE_EVENT_TYPE = "io.element.functional_m @JsonClass(generateAdapter = true) data class FunctionalMembersContent( - @Json(name = "service_members") val userIds: List + @Json(name = "service_members") val userIds: List? = null ) fun StateService.getFunctionalMembers(): List { - return getStateEvent(FUNCTIONAL_MEMBERS_STATE_EVENT_TYPE, QueryStringValue.IsEmpty)?.let { - it.content.toModel()?.userIds - }.orEmpty() + return getStateEvent(FUNCTIONAL_MEMBERS_STATE_EVENT_TYPE, QueryStringValue.IsEmpty) + ?.content + ?.toModel() + ?.userIds + .orEmpty() } diff --git a/vector/src/main/java/im/vector/app/features/room/VectorRoomDisplayNameFallbackProvider.kt b/vector/src/main/java/im/vector/app/features/room/VectorRoomDisplayNameFallbackProvider.kt index 9606d1492d..57967d7a05 100644 --- a/vector/src/main/java/im/vector/app/features/room/VectorRoomDisplayNameFallbackProvider.kt +++ b/vector/src/main/java/im/vector/app/features/room/VectorRoomDisplayNameFallbackProvider.kt @@ -32,10 +32,12 @@ class VectorRoomDisplayNameFallbackProvider @Inject constructor( override fun excludedUserIds(roomId: String): List { if (!Config.SUPPORT_FUNCTIONAL_MEMBERS) return emptyList() - return activeSessionHolder.get().getSafeActiveSession() - ?.getRoom(roomId)?.let { room -> - room.stateService().getFunctionalMembers() - }.orEmpty() + return activeSessionHolder.get() + .getSafeActiveSession() + ?.getRoom(roomId) + ?.stateService() + ?.getFunctionalMembers() + .orEmpty() } override fun getNameForRoomInvite(): String {