Room list: always show who's in an active call
Sonar / Sonar Quality Checks (push) Has been cancelled
Code Quality Checks / Search for forbidden patterns (push) Has been cancelled
Code Quality Checks / Search for invalid screenshot files (push) Has been cancelled
Code Quality Checks / Compose tests (push) Has been cancelled
Code Quality Checks / Ktlint checks (push) Has been cancelled
Code Quality Checks / Check shell scripts (push) Has been cancelled
Code Quality Checks / Run zizmor (push) Has been cancelled
Test / Runs unit tests (push) Has been cancelled
Code Quality Checks / Search for invalid dependencies (push) Has been cancelled
Code Quality Checks / Konsist tests (push) Has been cancelled
Code Quality Checks / Android lint check (push) Has been cancelled
Code Quality Checks / Detekt checks (push) Has been cancelled
Code Quality Checks / Doc checks (push) Has been cancelled
Code Quality Checks / Project Check Suite (push) Has been cancelled
Create release App Bundle and APKs / Create App Bundle (Gplay) (push) Has been cancelled
Create release App Bundle and APKs / Create App Bundle Enterprise (push) Has been cancelled
Create release App Bundle and APKs / Create APKs (FDroid) (push) Has been cancelled
Post-release / post-release (push) Has been cancelled
Sonar / Sonar Quality Checks (push) Has been cancelled
Code Quality Checks / Search for forbidden patterns (push) Has been cancelled
Code Quality Checks / Search for invalid screenshot files (push) Has been cancelled
Code Quality Checks / Compose tests (push) Has been cancelled
Code Quality Checks / Ktlint checks (push) Has been cancelled
Code Quality Checks / Check shell scripts (push) Has been cancelled
Code Quality Checks / Run zizmor (push) Has been cancelled
Test / Runs unit tests (push) Has been cancelled
Code Quality Checks / Search for invalid dependencies (push) Has been cancelled
Code Quality Checks / Konsist tests (push) Has been cancelled
Code Quality Checks / Android lint check (push) Has been cancelled
Code Quality Checks / Detekt checks (push) Has been cancelled
Code Quality Checks / Doc checks (push) Has been cancelled
Code Quality Checks / Project Check Suite (push) Has been cancelled
Create release App Bundle and APKs / Create App Bundle (Gplay) (push) Has been cancelled
Create release App Bundle and APKs / Create App Bundle Enterprise (push) Has been cancelled
Create release App Bundle and APKs / Create APKs (FDroid) (push) Has been cancelled
Post-release / post-release (push) Has been cancelled
The participants row was gated on the voice-room classification, which only happens after the room's space was opened once — so live calls showed nobody. Now any room with active call participants lists them, with initial-letter avatars instead of plain dots. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
+14
-5
@@ -25,6 +25,10 @@ import androidx.compose.ui.unit.dp
|
||||
import io.element.android.compound.theme.ElementTheme
|
||||
import io.element.android.compound.tokens.generated.CompoundIcons
|
||||
import io.element.android.features.home.impl.roomlist.BlapSection
|
||||
import io.element.android.libraries.designsystem.components.avatar.Avatar
|
||||
import io.element.android.libraries.designsystem.components.avatar.AvatarData
|
||||
import io.element.android.libraries.designsystem.components.avatar.AvatarSize
|
||||
import io.element.android.libraries.designsystem.components.avatar.AvatarType
|
||||
import io.element.android.libraries.designsystem.theme.components.Icon
|
||||
import io.element.android.libraries.designsystem.theme.components.Text
|
||||
import io.element.android.libraries.matrix.api.core.UserId
|
||||
@@ -78,18 +82,23 @@ internal fun BlapVoiceMembersRow(
|
||||
) {
|
||||
Column(modifier = modifier.padding(start = 64.dp, bottom = 8.dp)) {
|
||||
participants.take(MAX_VOICE_MEMBERS_SHOWN).forEach { userId ->
|
||||
val localpart = userId.value.removePrefix("@").substringBefore(":")
|
||||
Row(
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
modifier = Modifier.padding(vertical = 2.dp),
|
||||
) {
|
||||
androidx.compose.foundation.layout.Box(
|
||||
modifier = Modifier
|
||||
.size(8.dp)
|
||||
.background(ElementTheme.colors.iconAccentPrimary, CircleShape),
|
||||
Avatar(
|
||||
avatarData = AvatarData(
|
||||
id = userId.value,
|
||||
name = localpart,
|
||||
url = null,
|
||||
size = AvatarSize.TimelineReadReceipt,
|
||||
),
|
||||
avatarType = AvatarType.User,
|
||||
)
|
||||
Spacer(modifier = Modifier.width(8.dp))
|
||||
Text(
|
||||
text = userId.value.removePrefix("@").substringBefore(":"),
|
||||
text = localpart,
|
||||
style = ElementTheme.typography.fontBodySmRegular,
|
||||
color = ElementTheme.colors.textSecondary,
|
||||
)
|
||||
|
||||
+3
-1
@@ -315,7 +315,9 @@ private fun RoomsViewList(
|
||||
onClick = onRoomClick,
|
||||
eventSink = eventSink,
|
||||
)
|
||||
if (room.roomId in state.blapVoiceRoomIds && room.activeRoomCallParticipants.isNotEmpty()) {
|
||||
// Any room with an active call shows who's in it — not just classified
|
||||
// voice rooms (classification lags until the space was opened once).
|
||||
if (room.activeRoomCallParticipants.isNotEmpty()) {
|
||||
BlapVoiceMembersRow(participants = room.activeRoomCallParticipants)
|
||||
}
|
||||
if (index != entry.rooms.lastIndex) {
|
||||
|
||||
Reference in New Issue
Block a user