Add active call icon to room list summaries (#1792)

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
This commit is contained in:
Jorge Martin Espinosa
2023-11-13 16:35:11 +01:00
committed by GitHub
parent 00a750a31a
commit d29052eb47
33 changed files with 71 additions and 51 deletions

1
changelog.d/1158.feature Normal file
View File

@@ -0,0 +1 @@
Add ongoing call indicator to rooms lists items.

View File

@@ -172,14 +172,22 @@ private fun RowScope.LastMessageAndIndicatorRow(room: RoomListRoomSummary) {
// Unread
Row(
modifier = Modifier.height(16.dp),
horizontalArrangement = Arrangement.spacedBy(8.dp),
verticalAlignment = Alignment.CenterVertically,
) {
// Video call
if (room.hasOngoingCall) {
Icon(
modifier = Modifier.size(16.dp),
resourceId = CommonDrawables.ic_compound_video_call,
contentDescription = null,
tint = ElementTheme.colors.unreadIndicator,
)
}
NotificationIcon(room)
if (room.hasUnread) {
UnreadIndicatorAtom(
modifier = Modifier.padding(vertical = 3.dp),
)
UnreadIndicatorAtom()
}
}
}

View File

@@ -161,6 +161,7 @@ class RoomListDataSource @Inject constructor(
}.orEmpty(),
avatarData = avatarData,
notificationMode = roomSummary.details.notificationMode,
hasOngoingCall = roomSummary.details.hasOngoingCall,
)
}
null -> null

View File

@@ -33,4 +33,5 @@ data class RoomListRoomSummary constructor(
val avatarData: AvatarData = AvatarData(id, name, size = AvatarSize.RoomListItem),
val isPlaceholder: Boolean = false,
val notificationMode: RoomNotificationMode? = null,
val hasOngoingCall: Boolean = false,
)

View File

@@ -40,6 +40,7 @@ open class RoomListRoomSummaryProvider : PreviewParameterProvider<RoomListRoomSu
timestamp = "yesterday",
hasUnread = true,
),
aRoomListRoomSummary().copy(hasUnread = true, hasOngoingCall = true),
)
}

View File

@@ -44,4 +44,5 @@ data class RoomSummaryDetails(
val unreadNotificationCount: Int,
val inviter: RoomMember? = null,
val notificationMode: RoomNotificationMode? = null,
val hasOngoingCall: Boolean = false,
)

View File

@@ -41,6 +41,7 @@ class RoomSummaryDetailsFactory(private val roomMessageFactory: RoomMessageFacto
lastMessageTimestamp = latestRoomMessage?.originServerTs,
inviter = roomInfo.inviter?.let(RoomMemberMapper::map),
notificationMode = roomInfo.userDefinedNotificationMode?.let(RoomNotificationSettingsMapper::mapMode),
hasOngoingCall = roomInfo.hasRoomCall,
)
}
}