Skip to content

Commit b3dd6a2

Browse files
committed
Reduce number of previews of MessagesView and create preview dedicated to MessagesViewTopBar.
1 parent 8d3a6d3 commit b3dd6a2

File tree

2 files changed

+70
-9
lines changed

2 files changed

+70
-9
lines changed

features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesStateProvider.kt

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -60,31 +60,22 @@ open class MessagesStateProvider : PreviewParameterProvider<MessagesState> {
6060
aMessagesState(composerState = aMessageComposerState(showAttachmentSourcePicker = true)),
6161
aMessagesState(userEventPermissions = aUserEventPermissions(canSendMessage = false)),
6262
aMessagesState(showReinvitePrompt = true),
63-
aMessagesState(roomName = null),
6463
aMessagesState(composerState = aMessageComposerState(showTextFormatting = true)),
6564
aMessagesState(
6665
voiceMessageComposerState = aVoiceMessageComposerState(showPermissionRationaleDialog = true),
6766
),
68-
aMessagesState(
69-
roomCallState = anOngoingCallState(),
70-
),
7167
aMessagesState(
7268
voiceMessageComposerState = aVoiceMessageComposerState(
7369
voiceMessageState = aVoiceMessagePreviewState(),
7470
showSendFailureDialog = true
7571
),
7672
),
77-
aMessagesState(
78-
roomCallState = aStandByCallState(canStartCall = false),
79-
),
8073
aMessagesState(
8174
pinnedMessagesBannerState = aLoadedPinnedMessagesBannerState(
8275
knownPinnedMessagesCount = 4,
8376
currentPinnedMessageIndex = 0,
8477
),
8578
),
86-
aMessagesState(roomName = "A DM with a very looong name", dmUserVerificationState = IdentityState.Verified),
87-
aMessagesState(roomName = "A DM with a very looong name", dmUserVerificationState = IdentityState.VerificationViolation),
8879
aMessagesState(successorRoom = SuccessorRoom(RoomId("!id:domain"), null)),
8980
aMessagesState(timelineState = aTimelineState(
9081
timelineMode = Timeline.Mode.Thread(threadRootId = ThreadId("\$a-thread-id")),

features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/topbars/MessagesViewTopBar.kt

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ package io.element.android.features.messages.impl.topbars
99

1010
import androidx.compose.foundation.clickable
1111
import androidx.compose.foundation.layout.Arrangement
12+
import androidx.compose.foundation.layout.Column
1213
import androidx.compose.foundation.layout.Row
1314
import androidx.compose.foundation.layout.Spacer
1415
import androidx.compose.foundation.layout.WindowInsets
@@ -30,16 +31,25 @@ import io.element.android.compound.theme.ElementTheme
3031
import io.element.android.compound.tokens.generated.CompoundIcons
3132
import io.element.android.features.messages.impl.timeline.components.CallMenuItem
3233
import io.element.android.features.roomcall.api.RoomCallState
34+
import io.element.android.features.roomcall.api.aStandByCallState
35+
import io.element.android.features.roomcall.api.anOngoingCallState
3336
import io.element.android.libraries.designsystem.components.avatar.Avatar
3437
import io.element.android.libraries.designsystem.components.avatar.AvatarData
38+
import io.element.android.libraries.designsystem.components.avatar.AvatarSize
3539
import io.element.android.libraries.designsystem.components.avatar.AvatarType
3640
import io.element.android.libraries.designsystem.components.button.BackButton
41+
import io.element.android.libraries.designsystem.preview.ElementPreview
42+
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
43+
import io.element.android.libraries.designsystem.theme.components.HorizontalDivider
3744
import io.element.android.libraries.designsystem.theme.components.Icon
3845
import io.element.android.libraries.designsystem.theme.components.Text
3946
import io.element.android.libraries.designsystem.theme.components.TopAppBar
4047
import io.element.android.libraries.matrix.api.encryption.identity.IdentityState
48+
import io.element.android.libraries.matrix.ui.components.aMatrixUserList
49+
import io.element.android.libraries.matrix.ui.model.getAvatarData
4150
import io.element.android.libraries.ui.strings.CommonStrings
4251
import kotlinx.collections.immutable.ImmutableList
52+
import kotlinx.collections.immutable.toImmutableList
4353

4454
@OptIn(ExperimentalMaterial3Api::class)
4555
@Composable
@@ -141,3 +151,63 @@ private fun RoomAvatarAndNameRow(
141151
)
142152
}
143153
}
154+
155+
@PreviewsDayNight
156+
@Composable
157+
internal fun MessagesViewTopBarPreview() = ElementPreview {
158+
@Composable
159+
fun AMessagesViewTopBar(
160+
roomName: String? = "Room name",
161+
roomAvatar: AvatarData = AvatarData(
162+
id = "id",
163+
name = "Room name",
164+
url = null,
165+
size = AvatarSize.TimelineRoom,
166+
),
167+
isTombstoned: Boolean = false,
168+
heroes: List<AvatarData> = emptyList(),
169+
roomCallState: RoomCallState = RoomCallState.Unavailable,
170+
dmUserIdentityState: IdentityState? = null,
171+
) = MessagesViewTopBar(
172+
roomName = roomName,
173+
roomAvatar = roomAvatar,
174+
isTombstoned = isTombstoned,
175+
heroes = heroes.toImmutableList(),
176+
roomCallState = roomCallState,
177+
dmUserIdentityState = dmUserIdentityState,
178+
onRoomDetailsClick = {},
179+
onJoinCallClick = {},
180+
onBackClick = {},
181+
)
182+
Column {
183+
AMessagesViewTopBar()
184+
HorizontalDivider()
185+
AMessagesViewTopBar(
186+
heroes = aMatrixUserList().map { it.getAvatarData(AvatarSize.TimelineRoom) },
187+
roomCallState = anOngoingCallState(),
188+
)
189+
HorizontalDivider()
190+
AMessagesViewTopBar(
191+
roomName = null,
192+
roomCallState = anOngoingCallState(canJoinCall = false),
193+
)
194+
HorizontalDivider()
195+
AMessagesViewTopBar(
196+
roomName = "A DM with a very very very long name",
197+
roomAvatar = AvatarData(
198+
id = "id",
199+
name = "Room name",
200+
url = null,
201+
size = AvatarSize.TimelineRoom,
202+
).copy(url = "https://some-avatar.jpg"),
203+
roomCallState = aStandByCallState(canStartCall = false),
204+
dmUserIdentityState = IdentityState.Verified
205+
)
206+
HorizontalDivider()
207+
AMessagesViewTopBar(
208+
roomName = "A DM with a very very very long name",
209+
isTombstoned = true,
210+
dmUserIdentityState = IdentityState.VerificationViolation
211+
)
212+
}
213+
}

0 commit comments

Comments
 (0)