mirror of
https://github.com/Novaloop-AG/element-x-android.git
synced 2026-11-07 20:36:05 +00:00
Merge pull request #6740 from element-hq/feature/bma/uiSample
Introduce UI sample
This commit is contained in:
+4
-2
@@ -9,6 +9,8 @@ package io.element.android.features.call.impl.ui
|
|||||||
|
|
||||||
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||||
import io.element.android.features.call.impl.notifications.CallNotificationData
|
import io.element.android.features.call.impl.notifications.CallNotificationData
|
||||||
|
import io.element.android.libraries.designsystem.preview.ROOM_NAME
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_BOB
|
||||||
import io.element.android.libraries.matrix.api.core.EventId
|
import io.element.android.libraries.matrix.api.core.EventId
|
||||||
import io.element.android.libraries.matrix.api.core.RoomId
|
import io.element.android.libraries.matrix.api.core.RoomId
|
||||||
import io.element.android.libraries.matrix.api.core.SessionId
|
import io.element.android.libraries.matrix.api.core.SessionId
|
||||||
@@ -34,8 +36,8 @@ internal fun aCallNotificationData(
|
|||||||
roomId = RoomId("!1234:matrix.org"),
|
roomId = RoomId("!1234:matrix.org"),
|
||||||
eventId = EventId("\$asdadadsad:matrix.org"),
|
eventId = EventId("\$asdadadsad:matrix.org"),
|
||||||
senderId = UserId("@bob:matrix.org"),
|
senderId = UserId("@bob:matrix.org"),
|
||||||
roomName = "A room",
|
roomName = ROOM_NAME,
|
||||||
senderName = "Bob",
|
senderName = USER_NAME_BOB,
|
||||||
avatarUrl = null,
|
avatarUrl = null,
|
||||||
notificationChannelId = "incoming_call",
|
notificationChannelId = "incoming_call",
|
||||||
timestamp = 0L,
|
timestamp = 0L,
|
||||||
|
|||||||
+6
-5
@@ -57,6 +57,7 @@ import io.element.android.libraries.designsystem.components.avatar.AvatarType
|
|||||||
import io.element.android.libraries.designsystem.modifiers.backgroundVerticalGradient
|
import io.element.android.libraries.designsystem.modifiers.backgroundVerticalGradient
|
||||||
import io.element.android.libraries.designsystem.preview.ElementPreview
|
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_ALICE
|
||||||
import io.element.android.libraries.designsystem.theme.aliasScreenTitle
|
import io.element.android.libraries.designsystem.theme.aliasScreenTitle
|
||||||
import io.element.android.libraries.designsystem.theme.components.DropdownMenu
|
import io.element.android.libraries.designsystem.theme.components.DropdownMenu
|
||||||
import io.element.android.libraries.designsystem.theme.components.DropdownMenuItem
|
import io.element.android.libraries.designsystem.theme.components.DropdownMenuItem
|
||||||
@@ -65,8 +66,8 @@ import io.element.android.libraries.designsystem.theme.components.IconButton
|
|||||||
import io.element.android.libraries.designsystem.theme.components.Text
|
import io.element.android.libraries.designsystem.theme.components.Text
|
||||||
import io.element.android.libraries.designsystem.theme.components.TopAppBar
|
import io.element.android.libraries.designsystem.theme.components.TopAppBar
|
||||||
import io.element.android.libraries.matrix.api.core.SessionId
|
import io.element.android.libraries.matrix.api.core.SessionId
|
||||||
import io.element.android.libraries.matrix.api.core.UserId
|
|
||||||
import io.element.android.libraries.matrix.api.user.MatrixUser
|
import io.element.android.libraries.matrix.api.user.MatrixUser
|
||||||
|
import io.element.android.libraries.matrix.ui.components.aMatrixUser
|
||||||
import io.element.android.libraries.matrix.ui.components.aMatrixUserList
|
import io.element.android.libraries.matrix.ui.components.aMatrixUserList
|
||||||
import io.element.android.libraries.matrix.ui.model.getAvatarData
|
import io.element.android.libraries.matrix.ui.model.getAvatarData
|
||||||
import io.element.android.libraries.testtags.TestTags
|
import io.element.android.libraries.testtags.TestTags
|
||||||
@@ -346,7 +347,7 @@ private fun AccountIcon(
|
|||||||
internal fun HomeTopBarPreview() = ElementPreview {
|
internal fun HomeTopBarPreview() = ElementPreview {
|
||||||
HomeTopBar(
|
HomeTopBar(
|
||||||
selectedNavigationItem = HomeNavigationBarItem.Chats,
|
selectedNavigationItem = HomeNavigationBarItem.Chats,
|
||||||
currentUserAndNeighbors = persistentListOf(MatrixUser(UserId("@id:domain"), "Alice")),
|
currentUserAndNeighbors = persistentListOf(aMatrixUser(id = "@id:domain", displayName = USER_NAME_ALICE)),
|
||||||
showAvatarIndicator = false,
|
showAvatarIndicator = false,
|
||||||
areSearchResultsDisplayed = false,
|
areSearchResultsDisplayed = false,
|
||||||
scrollBehavior = TopAppBarDefaults.pinnedScrollBehavior(rememberTopAppBarState()),
|
scrollBehavior = TopAppBarDefaults.pinnedScrollBehavior(rememberTopAppBarState()),
|
||||||
@@ -367,7 +368,7 @@ internal fun HomeTopBarPreview() = ElementPreview {
|
|||||||
internal fun HomeTopBarSpaceFiltersSelectedPreview() = ElementPreview {
|
internal fun HomeTopBarSpaceFiltersSelectedPreview() = ElementPreview {
|
||||||
HomeTopBar(
|
HomeTopBar(
|
||||||
selectedNavigationItem = HomeNavigationBarItem.Chats,
|
selectedNavigationItem = HomeNavigationBarItem.Chats,
|
||||||
currentUserAndNeighbors = persistentListOf(MatrixUser(UserId("@id:domain"), "Alice")),
|
currentUserAndNeighbors = persistentListOf(aMatrixUser(id = "@id:domain", displayName = USER_NAME_ALICE)),
|
||||||
showAvatarIndicator = false,
|
showAvatarIndicator = false,
|
||||||
areSearchResultsDisplayed = false,
|
areSearchResultsDisplayed = false,
|
||||||
scrollBehavior = TopAppBarDefaults.pinnedScrollBehavior(rememberTopAppBarState()),
|
scrollBehavior = TopAppBarDefaults.pinnedScrollBehavior(rememberTopAppBarState()),
|
||||||
@@ -388,7 +389,7 @@ internal fun HomeTopBarSpaceFiltersSelectedPreview() = ElementPreview {
|
|||||||
internal fun HomeTopBarSpacesPreview() = ElementPreview {
|
internal fun HomeTopBarSpacesPreview() = ElementPreview {
|
||||||
HomeTopBar(
|
HomeTopBar(
|
||||||
selectedNavigationItem = HomeNavigationBarItem.Spaces,
|
selectedNavigationItem = HomeNavigationBarItem.Spaces,
|
||||||
currentUserAndNeighbors = persistentListOf(MatrixUser(UserId("@id:domain"), "Alice")),
|
currentUserAndNeighbors = persistentListOf(aMatrixUser(id = "@id:domain", displayName = USER_NAME_ALICE)),
|
||||||
showAvatarIndicator = false,
|
showAvatarIndicator = false,
|
||||||
areSearchResultsDisplayed = false,
|
areSearchResultsDisplayed = false,
|
||||||
scrollBehavior = TopAppBarDefaults.pinnedScrollBehavior(rememberTopAppBarState()),
|
scrollBehavior = TopAppBarDefaults.pinnedScrollBehavior(rememberTopAppBarState()),
|
||||||
@@ -409,7 +410,7 @@ internal fun HomeTopBarSpacesPreview() = ElementPreview {
|
|||||||
internal fun HomeTopBarWithIndicatorPreview() = ElementPreview {
|
internal fun HomeTopBarWithIndicatorPreview() = ElementPreview {
|
||||||
HomeTopBar(
|
HomeTopBar(
|
||||||
selectedNavigationItem = HomeNavigationBarItem.Chats,
|
selectedNavigationItem = HomeNavigationBarItem.Chats,
|
||||||
currentUserAndNeighbors = persistentListOf(MatrixUser(UserId("@id:domain"), "Alice")),
|
currentUserAndNeighbors = persistentListOf(aMatrixUser(id = "@id:domain", displayName = USER_NAME_ALICE)),
|
||||||
showAvatarIndicator = true,
|
showAvatarIndicator = true,
|
||||||
areSearchResultsDisplayed = false,
|
areSearchResultsDisplayed = false,
|
||||||
scrollBehavior = TopAppBarDefaults.pinnedScrollBehavior(rememberTopAppBarState()),
|
scrollBehavior = TopAppBarDefaults.pinnedScrollBehavior(rememberTopAppBarState()),
|
||||||
|
|||||||
+12
-8
@@ -11,6 +11,10 @@ package io.element.android.features.home.impl.model
|
|||||||
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||||
import io.element.android.libraries.designsystem.components.avatar.AvatarData
|
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.AvatarSize
|
||||||
|
import io.element.android.libraries.designsystem.preview.LAST_MESSAGE
|
||||||
|
import io.element.android.libraries.designsystem.preview.ROOM_NAME
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_ALICE
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_BOB
|
||||||
import io.element.android.libraries.matrix.api.core.RoomAlias
|
import io.element.android.libraries.matrix.api.core.RoomAlias
|
||||||
import io.element.android.libraries.matrix.api.core.RoomId
|
import io.element.android.libraries.matrix.api.core.RoomId
|
||||||
import io.element.android.libraries.matrix.api.core.UserId
|
import io.element.android.libraries.matrix.api.core.UserId
|
||||||
@@ -85,16 +89,16 @@ open class RoomListRoomSummaryProvider : PreviewParameterProvider<RoomListRoomSu
|
|||||||
displayType = RoomSummaryDisplayType.INVITE,
|
displayType = RoomSummaryDisplayType.INVITE,
|
||||||
inviteSender = anInviteSender(
|
inviteSender = anInviteSender(
|
||||||
userId = UserId("@alice:matrix.org"),
|
userId = UserId("@alice:matrix.org"),
|
||||||
displayName = "Alice",
|
displayName = USER_NAME_ALICE,
|
||||||
),
|
),
|
||||||
canonicalAlias = RoomAlias("#alias:matrix.org"),
|
canonicalAlias = RoomAlias("#alias:matrix.org"),
|
||||||
),
|
),
|
||||||
aRoomListRoomSummary(
|
aRoomListRoomSummary(
|
||||||
name = "Bob",
|
name = USER_NAME_BOB,
|
||||||
displayType = RoomSummaryDisplayType.INVITE,
|
displayType = RoomSummaryDisplayType.INVITE,
|
||||||
inviteSender = anInviteSender(
|
inviteSender = anInviteSender(
|
||||||
userId = UserId("@bob:matrix.org"),
|
userId = UserId("@bob:matrix.org"),
|
||||||
displayName = "Bob",
|
displayName = USER_NAME_BOB,
|
||||||
),
|
),
|
||||||
isDm = true,
|
isDm = true,
|
||||||
),
|
),
|
||||||
@@ -103,7 +107,7 @@ open class RoomListRoomSummaryProvider : PreviewParameterProvider<RoomListRoomSu
|
|||||||
displayType = RoomSummaryDisplayType.INVITE,
|
displayType = RoomSummaryDisplayType.INVITE,
|
||||||
inviteSender = anInviteSender(
|
inviteSender = anInviteSender(
|
||||||
userId = UserId("@bob:matrix.org"),
|
userId = UserId("@bob:matrix.org"),
|
||||||
displayName = "Bob",
|
displayName = USER_NAME_BOB,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
aRoomListRoomSummary(
|
aRoomListRoomSummary(
|
||||||
@@ -111,7 +115,7 @@ open class RoomListRoomSummaryProvider : PreviewParameterProvider<RoomListRoomSu
|
|||||||
displayType = RoomSummaryDisplayType.INVITE,
|
displayType = RoomSummaryDisplayType.INVITE,
|
||||||
inviteSender = anInviteSender(
|
inviteSender = anInviteSender(
|
||||||
userId = UserId("@bob:matrix.org"),
|
userId = UserId("@bob:matrix.org"),
|
||||||
displayName = "Bob",
|
displayName = USER_NAME_BOB,
|
||||||
),
|
),
|
||||||
isSpace = true
|
isSpace = true
|
||||||
),
|
),
|
||||||
@@ -147,7 +151,7 @@ open class RoomListRoomSummaryProvider : PreviewParameterProvider<RoomListRoomSu
|
|||||||
|
|
||||||
internal fun anInviteSender(
|
internal fun anInviteSender(
|
||||||
userId: UserId = UserId("@bob:domain"),
|
userId: UserId = UserId("@bob:domain"),
|
||||||
displayName: String = "Bob",
|
displayName: String = USER_NAME_BOB,
|
||||||
avatarData: AvatarData = AvatarData(userId.value, displayName, size = AvatarSize.InviteSender),
|
avatarData: AvatarData = AvatarData(userId.value, displayName, size = AvatarSize.InviteSender),
|
||||||
) = InviteSender(
|
) = InviteSender(
|
||||||
userId = userId,
|
userId = userId,
|
||||||
@@ -158,12 +162,12 @@ internal fun anInviteSender(
|
|||||||
|
|
||||||
internal fun aRoomListRoomSummary(
|
internal fun aRoomListRoomSummary(
|
||||||
id: String = "!roomId:domain",
|
id: String = "!roomId:domain",
|
||||||
name: String? = "Room name",
|
name: String? = ROOM_NAME,
|
||||||
numberOfUnreadMessages: Long = 0,
|
numberOfUnreadMessages: Long = 0,
|
||||||
numberOfUnreadMentions: Long = 0,
|
numberOfUnreadMentions: Long = 0,
|
||||||
numberOfUnreadNotifications: Long = 0,
|
numberOfUnreadNotifications: Long = 0,
|
||||||
isMarkedUnread: Boolean = false,
|
isMarkedUnread: Boolean = false,
|
||||||
latestEvent: LatestEvent = LatestEvent.Synced("Last message"),
|
latestEvent: LatestEvent = LatestEvent.Synced(LAST_MESSAGE),
|
||||||
timestamp: String? = latestEvent.takeIf { it !is LatestEvent.None }?.let { "88:88" },
|
timestamp: String? = latestEvent.takeIf { it !is LatestEvent.None }?.let { "88:88" },
|
||||||
notificationMode: RoomNotificationMode? = null,
|
notificationMode: RoomNotificationMode? = null,
|
||||||
hasRoomCall: Boolean = false,
|
hasRoomCall: Boolean = false,
|
||||||
|
|||||||
+3
-2
@@ -15,6 +15,7 @@ import io.element.android.features.invite.api.acceptdecline.ConfirmingDeclineInv
|
|||||||
import io.element.android.features.invite.api.acceptdecline.anAcceptDeclineInviteState
|
import io.element.android.features.invite.api.acceptdecline.anAcceptDeclineInviteState
|
||||||
import io.element.android.features.invite.impl.AcceptInvite
|
import io.element.android.features.invite.impl.AcceptInvite
|
||||||
import io.element.android.libraries.architecture.AsyncAction
|
import io.element.android.libraries.architecture.AsyncAction
|
||||||
|
import io.element.android.libraries.designsystem.preview.ROOM_NAME
|
||||||
import io.element.android.libraries.matrix.api.core.RoomId
|
import io.element.android.libraries.matrix.api.core.RoomId
|
||||||
|
|
||||||
open class AcceptDeclineInviteStateProvider : PreviewParameterProvider<AcceptDeclineInviteState> {
|
open class AcceptDeclineInviteStateProvider : PreviewParameterProvider<AcceptDeclineInviteState> {
|
||||||
@@ -26,7 +27,7 @@ open class AcceptDeclineInviteStateProvider : PreviewParameterProvider<AcceptDec
|
|||||||
InviteData(
|
InviteData(
|
||||||
roomId = RoomId("!room:matrix.org"),
|
roomId = RoomId("!room:matrix.org"),
|
||||||
isDm = true,
|
isDm = true,
|
||||||
roomName = "Alice"
|
roomName = ROOM_NAME,
|
||||||
),
|
),
|
||||||
blockUser = false,
|
blockUser = false,
|
||||||
),
|
),
|
||||||
@@ -36,7 +37,7 @@ open class AcceptDeclineInviteStateProvider : PreviewParameterProvider<AcceptDec
|
|||||||
InviteData(
|
InviteData(
|
||||||
roomId = RoomId("!room:matrix.org"),
|
roomId = RoomId("!room:matrix.org"),
|
||||||
isDm = true,
|
isDm = true,
|
||||||
roomName = "Alice"
|
roomName = ROOM_NAME,
|
||||||
),
|
),
|
||||||
blockUser = true,
|
blockUser = true,
|
||||||
),
|
),
|
||||||
|
|||||||
+20
-13
@@ -12,6 +12,11 @@ import androidx.compose.foundation.text.input.TextFieldState
|
|||||||
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||||
import io.element.android.libraries.architecture.AsyncAction
|
import io.element.android.libraries.architecture.AsyncAction
|
||||||
import io.element.android.libraries.architecture.AsyncData
|
import io.element.android.libraries.architecture.AsyncData
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_ALICE
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_BOB
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_CAROL
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_EVE
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_JUSTIN
|
||||||
import io.element.android.libraries.designsystem.theme.components.SearchBarResultState
|
import io.element.android.libraries.designsystem.theme.components.SearchBarResultState
|
||||||
import io.element.android.libraries.matrix.api.user.MatrixUser
|
import io.element.android.libraries.matrix.api.user.MatrixUser
|
||||||
import io.element.android.libraries.matrix.ui.components.aMatrixUser
|
import io.element.android.libraries.matrix.ui.components.aMatrixUser
|
||||||
@@ -33,15 +38,15 @@ internal class DefaultInvitePeopleStateProvider : PreviewParameterProvider<Defau
|
|||||||
canInvite = true,
|
canInvite = true,
|
||||||
searchQuery = "some query",
|
searchQuery = "some query",
|
||||||
selectedUsers = persistentListOf(
|
selectedUsers = persistentListOf(
|
||||||
aMatrixUser("@carol:server.org", "Carol")
|
aMatrixUser(displayName = USER_NAME_CAROL)
|
||||||
),
|
),
|
||||||
searchResults = SearchBarResultState.Results(
|
searchResults = SearchBarResultState.Results(
|
||||||
persistentListOf(
|
persistentListOf(
|
||||||
anInvitableUser(aMatrixUser("@alice:server.org")),
|
anInvitableUser(aMatrixUser(displayName = USER_NAME_ALICE)),
|
||||||
anInvitableUser(aMatrixUser("@bob:server.org", "Bob")),
|
anInvitableUser(aMatrixUser(displayName = USER_NAME_BOB)),
|
||||||
anInvitableUser(aMatrixUser("@carol:server.org", "Carol"), isSelected = true),
|
anInvitableUser(aMatrixUser(displayName = USER_NAME_CAROL), isSelected = true),
|
||||||
anInvitableUser(aMatrixUser("@eve:server.org", "Eve"), isSelected = true, isAlreadyJoined = true),
|
anInvitableUser(aMatrixUser(displayName = USER_NAME_EVE), isSelected = true, isAlreadyJoined = true),
|
||||||
anInvitableUser(aMatrixUser("@justin:server.org", "Justin"), isSelected = true, isAlreadyInvited = true),
|
anInvitableUser(aMatrixUser(displayName = USER_NAME_JUSTIN), isSelected = true, isAlreadyInvited = true),
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
@@ -50,12 +55,12 @@ internal class DefaultInvitePeopleStateProvider : PreviewParameterProvider<Defau
|
|||||||
canInvite = true,
|
canInvite = true,
|
||||||
searchQuery = "@alice:server.org",
|
searchQuery = "@alice:server.org",
|
||||||
selectedUsers = persistentListOf(
|
selectedUsers = persistentListOf(
|
||||||
aMatrixUser("@carol:server.org", "Carol")
|
aMatrixUser(displayName = USER_NAME_CAROL)
|
||||||
),
|
),
|
||||||
searchResults = SearchBarResultState.Results(
|
searchResults = SearchBarResultState.Results(
|
||||||
persistentListOf(
|
persistentListOf(
|
||||||
anInvitableUser(aMatrixUser("@alice:server.org"), isUnresolved = true),
|
anInvitableUser(aMatrixUser(displayName = USER_NAME_ALICE), isUnresolved = true),
|
||||||
anInvitableUser(aMatrixUser("@bob:server.org", "Bob")),
|
anInvitableUser(aMatrixUser(displayName = USER_NAME_BOB)),
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
@@ -65,7 +70,7 @@ internal class DefaultInvitePeopleStateProvider : PreviewParameterProvider<Defau
|
|||||||
searchQuery = "@alice:server.org",
|
searchQuery = "@alice:server.org",
|
||||||
searchResults = SearchBarResultState.Results(
|
searchResults = SearchBarResultState.Results(
|
||||||
persistentListOf(
|
persistentListOf(
|
||||||
anInvitableUser(aMatrixUser("@alice:server.org"), isUnresolved = true),
|
anInvitableUser(aMatrixUser(displayName = USER_NAME_ALICE), isUnresolved = true),
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
showSearchLoader = true,
|
showSearchLoader = true,
|
||||||
@@ -77,9 +82,11 @@ internal class DefaultInvitePeopleStateProvider : PreviewParameterProvider<Defau
|
|||||||
sendInvitesAction = AsyncAction.Loading,
|
sendInvitesAction = AsyncAction.Loading,
|
||||||
),
|
),
|
||||||
aDefaultInvitePeopleState(
|
aDefaultInvitePeopleState(
|
||||||
sendInvitesAction = ConfirmingUnknownUserInvitation(persistentListOf(
|
sendInvitesAction = ConfirmingUnknownUserInvitation(
|
||||||
aMatrixUser("@alice:server.org")
|
persistentListOf(
|
||||||
))
|
aMatrixUser(),
|
||||||
|
)
|
||||||
|
)
|
||||||
),
|
),
|
||||||
aDefaultInvitePeopleState(
|
aDefaultInvitePeopleState(
|
||||||
sendInvitesAction = ConfirmingUnknownUserInvitation(
|
sendInvitesAction = ConfirmingUnknownUserInvitation(
|
||||||
|
|||||||
+2
-2
@@ -320,7 +320,7 @@ internal class DefaultInvitePeoplePresenterTest {
|
|||||||
val initialState = awaitItemAsDefault()
|
val initialState = awaitItemAsDefault()
|
||||||
skipItems(1)
|
skipItems(1)
|
||||||
|
|
||||||
val selectedUser = aMatrixUser()
|
val selectedUser = aMatrixUser(displayName = "John Doe")
|
||||||
|
|
||||||
initialState.eventSink(DefaultInvitePeopleEvents.ToggleUser(selectedUser))
|
initialState.eventSink(DefaultInvitePeopleEvents.ToggleUser(selectedUser))
|
||||||
|
|
||||||
@@ -358,7 +358,7 @@ internal class DefaultInvitePeoplePresenterTest {
|
|||||||
val initialState = awaitItemAsDefault()
|
val initialState = awaitItemAsDefault()
|
||||||
skipItems(1)
|
skipItems(1)
|
||||||
|
|
||||||
val selectedUser = aMatrixUser()
|
val selectedUser = aMatrixUser(displayName = "John Doe")
|
||||||
|
|
||||||
// Given a query is made
|
// Given a query is made
|
||||||
initialState.searchQuery.setTextAndPlaceCursorAtEnd("some query")
|
initialState.searchQuery.setTextAndPlaceCursorAtEnd("some query")
|
||||||
|
|||||||
+7
-4
@@ -15,6 +15,9 @@ import io.element.android.features.invite.api.acceptdecline.anAcceptDeclineInvit
|
|||||||
import io.element.android.libraries.architecture.AsyncAction
|
import io.element.android.libraries.architecture.AsyncAction
|
||||||
import io.element.android.libraries.designsystem.components.avatar.AvatarData
|
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.AvatarSize
|
||||||
|
import io.element.android.libraries.designsystem.preview.ROOM_NAME
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_ALICE
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_BOB
|
||||||
import io.element.android.libraries.matrix.api.core.RoomAlias
|
import io.element.android.libraries.matrix.api.core.RoomAlias
|
||||||
import io.element.android.libraries.matrix.api.core.RoomId
|
import io.element.android.libraries.matrix.api.core.RoomId
|
||||||
import io.element.android.libraries.matrix.api.core.RoomIdOrAlias
|
import io.element.android.libraries.matrix.api.core.RoomIdOrAlias
|
||||||
@@ -134,8 +137,8 @@ open class JoinRoomStateProvider : PreviewParameterProvider<JoinRoomState> {
|
|||||||
joinAuthorisationStatus = JoinAuthorisationStatus.IsBanned(
|
joinAuthorisationStatus = JoinAuthorisationStatus.IsBanned(
|
||||||
banSender = InviteSender(
|
banSender = InviteSender(
|
||||||
userId = UserId("@alice:domain"),
|
userId = UserId("@alice:domain"),
|
||||||
displayName = "Alice",
|
displayName = USER_NAME_ALICE,
|
||||||
avatarData = AvatarData("alice", "Alice", size = AvatarSize.InviteSender),
|
avatarData = AvatarData("alice", USER_NAME_ALICE, size = AvatarSize.InviteSender),
|
||||||
membershipChangeReason = "spamming"
|
membershipChangeReason = "spamming"
|
||||||
),
|
),
|
||||||
reason = "spamming",
|
reason = "spamming",
|
||||||
@@ -222,7 +225,7 @@ fun aJoinRoomState(
|
|||||||
|
|
||||||
internal fun anInviteSender(
|
internal fun anInviteSender(
|
||||||
userId: UserId = UserId("@bob:domain"),
|
userId: UserId = UserId("@bob:domain"),
|
||||||
displayName: String = "Bob",
|
displayName: String = USER_NAME_BOB,
|
||||||
avatarData: AvatarData = AvatarData(userId.value, displayName, size = AvatarSize.InviteSender),
|
avatarData: AvatarData = AvatarData(userId.value, displayName, size = AvatarSize.InviteSender),
|
||||||
membershipChangeReason: String? = null,
|
membershipChangeReason: String? = null,
|
||||||
) = InviteSender(
|
) = InviteSender(
|
||||||
@@ -234,7 +237,7 @@ internal fun anInviteSender(
|
|||||||
|
|
||||||
internal fun anInviteData(
|
internal fun anInviteData(
|
||||||
roomId: RoomId = A_ROOM_ID,
|
roomId: RoomId = A_ROOM_ID,
|
||||||
roomName: String = "Room name",
|
roomName: String = ROOM_NAME,
|
||||||
isDm: Boolean = false,
|
isDm: Boolean = false,
|
||||||
) = InviteData(
|
) = InviteData(
|
||||||
roomId = roomId,
|
roomId = roomId,
|
||||||
|
|||||||
+7
-4
@@ -11,6 +11,9 @@ package io.element.android.features.knockrequests.impl.banner
|
|||||||
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||||
import io.element.android.features.knockrequests.impl.data.KnockRequestPresentable
|
import io.element.android.features.knockrequests.impl.data.KnockRequestPresentable
|
||||||
import io.element.android.features.knockrequests.impl.data.aKnockRequestPresentable
|
import io.element.android.features.knockrequests.impl.data.aKnockRequestPresentable
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_ALICE
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_BOB
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_CHARLIE
|
||||||
import kotlinx.collections.immutable.toImmutableList
|
import kotlinx.collections.immutable.toImmutableList
|
||||||
|
|
||||||
class KnockRequestsBannerStateProvider : PreviewParameterProvider<KnockRequestsBannerState> {
|
class KnockRequestsBannerStateProvider : PreviewParameterProvider<KnockRequestsBannerState> {
|
||||||
@@ -29,15 +32,15 @@ class KnockRequestsBannerStateProvider : PreviewParameterProvider<KnockRequestsB
|
|||||||
aKnockRequestsBannerState(
|
aKnockRequestsBannerState(
|
||||||
knockRequests = listOf(
|
knockRequests = listOf(
|
||||||
aKnockRequestPresentable(),
|
aKnockRequestPresentable(),
|
||||||
aKnockRequestPresentable(displayName = "Alice")
|
aKnockRequestPresentable(displayName = USER_NAME_ALICE)
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
aKnockRequestsBannerState(
|
aKnockRequestsBannerState(
|
||||||
knockRequests = listOf(
|
knockRequests = listOf(
|
||||||
aKnockRequestPresentable(),
|
aKnockRequestPresentable(),
|
||||||
aKnockRequestPresentable(displayName = "Alice"),
|
aKnockRequestPresentable(displayName = USER_NAME_ALICE),
|
||||||
aKnockRequestPresentable(displayName = "Bob"),
|
aKnockRequestPresentable(displayName = USER_NAME_BOB),
|
||||||
aKnockRequestPresentable(displayName = "Charlie")
|
aKnockRequestPresentable(displayName = USER_NAME_CHARLIE)
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
aKnockRequestsBannerState(
|
aKnockRequestsBannerState(
|
||||||
|
|||||||
+6
-4
@@ -31,6 +31,8 @@ import io.element.android.libraries.designsystem.components.avatar.AvatarSize
|
|||||||
import io.element.android.libraries.designsystem.components.avatar.AvatarType
|
import io.element.android.libraries.designsystem.components.avatar.AvatarType
|
||||||
import io.element.android.libraries.designsystem.preview.ElementPreview
|
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_ALICE
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_BOB
|
||||||
import io.element.android.libraries.designsystem.theme.components.Icon
|
import io.element.android.libraries.designsystem.theme.components.Icon
|
||||||
import io.element.android.libraries.designsystem.theme.components.IconButton
|
import io.element.android.libraries.designsystem.theme.components.IconButton
|
||||||
import io.element.android.libraries.designsystem.theme.components.Text
|
import io.element.android.libraries.designsystem.theme.components.Text
|
||||||
@@ -116,10 +118,10 @@ internal fun LocationShareRowPreview() = ElementPreview {
|
|||||||
LocationShareRow(
|
LocationShareRow(
|
||||||
item = LocationShareItem(
|
item = LocationShareItem(
|
||||||
userId = UserId("@alice:matrix.org"),
|
userId = UserId("@alice:matrix.org"),
|
||||||
displayName = "Alice",
|
displayName = USER_NAME_ALICE,
|
||||||
avatarData = AvatarData(
|
avatarData = AvatarData(
|
||||||
id = "@alice:matrix.org",
|
id = "@alice:matrix.org",
|
||||||
name = "Alice",
|
name = USER_NAME_ALICE,
|
||||||
url = null,
|
url = null,
|
||||||
size = AvatarSize.UserListItem,
|
size = AvatarSize.UserListItem,
|
||||||
),
|
),
|
||||||
@@ -133,10 +135,10 @@ internal fun LocationShareRowPreview() = ElementPreview {
|
|||||||
LocationShareRow(
|
LocationShareRow(
|
||||||
item = LocationShareItem(
|
item = LocationShareItem(
|
||||||
userId = UserId("@bob:matrix.org"),
|
userId = UserId("@bob:matrix.org"),
|
||||||
displayName = "Bob",
|
displayName = USER_NAME_BOB,
|
||||||
avatarData = AvatarData(
|
avatarData = AvatarData(
|
||||||
id = "@bob:matrix.org",
|
id = "@bob:matrix.org",
|
||||||
name = "Bob",
|
name = USER_NAME_BOB,
|
||||||
url = null,
|
url = null,
|
||||||
size = AvatarSize.UserListItem,
|
size = AvatarSize.UserListItem,
|
||||||
),
|
),
|
||||||
|
|||||||
+2
-1
@@ -13,6 +13,7 @@ import io.element.android.features.location.api.Location
|
|||||||
import io.element.android.features.location.impl.common.ui.LocationConstraintsDialogState
|
import io.element.android.features.location.impl.common.ui.LocationConstraintsDialogState
|
||||||
import io.element.android.libraries.designsystem.components.avatar.AvatarData
|
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.AvatarSize
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_ALICE
|
||||||
import io.element.android.libraries.matrix.api.core.UserId
|
import io.element.android.libraries.matrix.api.core.UserId
|
||||||
import io.element.android.libraries.matrix.api.room.location.AssetType
|
import io.element.android.libraries.matrix.api.room.location.AssetType
|
||||||
import kotlinx.collections.immutable.toImmutableList
|
import kotlinx.collections.immutable.toImmutableList
|
||||||
@@ -69,7 +70,7 @@ fun aShowLocationState(
|
|||||||
|
|
||||||
fun aLocationShareItem(
|
fun aLocationShareItem(
|
||||||
userId: UserId = UserId("@alice:matrix.org"),
|
userId: UserId = UserId("@alice:matrix.org"),
|
||||||
displayName: String = "Alice",
|
displayName: String = USER_NAME_ALICE,
|
||||||
avatarData: AvatarData = AvatarData(
|
avatarData: AvatarData = AvatarData(
|
||||||
id = userId.value,
|
id = userId.value,
|
||||||
name = displayName,
|
name = displayName,
|
||||||
|
|||||||
+2
-1
@@ -12,13 +12,14 @@ import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
|||||||
import io.element.android.features.login.impl.login.LoginMode
|
import io.element.android.features.login.impl.login.LoginMode
|
||||||
import io.element.android.libraries.architecture.AsyncAction
|
import io.element.android.libraries.architecture.AsyncAction
|
||||||
import io.element.android.libraries.architecture.AsyncData
|
import io.element.android.libraries.architecture.AsyncData
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_ALICE
|
||||||
import io.element.android.libraries.matrix.api.core.UserId
|
import io.element.android.libraries.matrix.api.core.UserId
|
||||||
|
|
||||||
open class LoginWithClassicStateProvider : PreviewParameterProvider<LoginWithClassicState> {
|
open class LoginWithClassicStateProvider : PreviewParameterProvider<LoginWithClassicState> {
|
||||||
override val values: Sequence<LoginWithClassicState>
|
override val values: Sequence<LoginWithClassicState>
|
||||||
get() = sequenceOf(
|
get() = sequenceOf(
|
||||||
aLoginWithClassicState(),
|
aLoginWithClassicState(),
|
||||||
aLoginWithClassicState(isElementPro = true, displayName = "Alice"),
|
aLoginWithClassicState(isElementPro = true, displayName = USER_NAME_ALICE),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+3
-2
@@ -44,6 +44,7 @@ import io.element.android.features.roommembermoderation.api.RoomMemberModeration
|
|||||||
import io.element.android.libraries.architecture.AsyncData
|
import io.element.android.libraries.architecture.AsyncData
|
||||||
import io.element.android.libraries.designsystem.components.avatar.AvatarData
|
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.AvatarSize
|
||||||
|
import io.element.android.libraries.designsystem.preview.ROOM_NAME
|
||||||
import io.element.android.libraries.matrix.api.core.RoomId
|
import io.element.android.libraries.matrix.api.core.RoomId
|
||||||
import io.element.android.libraries.matrix.api.core.ThreadId
|
import io.element.android.libraries.matrix.api.core.ThreadId
|
||||||
import io.element.android.libraries.matrix.api.encryption.identity.IdentityState
|
import io.element.android.libraries.matrix.api.encryption.identity.IdentityState
|
||||||
@@ -94,8 +95,8 @@ open class MessagesStateProvider : PreviewParameterProvider<MessagesState> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun aMessagesState(
|
fun aMessagesState(
|
||||||
roomName: String? = "Room name",
|
roomName: String? = ROOM_NAME,
|
||||||
roomAvatar: AvatarData = AvatarData("!id:domain", "Room name", size = AvatarSize.TimelineRoom),
|
roomAvatar: AvatarData = AvatarData("!id:domain", ROOM_NAME, size = AvatarSize.TimelineRoom),
|
||||||
userEventPermissions: UserEventPermissions = aUserEventPermissions(),
|
userEventPermissions: UserEventPermissions = aUserEventPermissions(),
|
||||||
composerState: MessageComposerState = aMessageComposerState(
|
composerState: MessageComposerState = aMessageComposerState(
|
||||||
textEditorState = aTextEditorStateRich(initialText = "Hello", initialFocus = true),
|
textEditorState = aTextEditorStateRich(initialText = "Hello", initialFocus = true),
|
||||||
|
|||||||
+2
-1
@@ -11,6 +11,7 @@ package io.element.android.features.messages.impl.crypto.identity
|
|||||||
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||||
import io.element.android.libraries.designsystem.components.avatar.AvatarData
|
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.AvatarSize
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_ALICE
|
||||||
import io.element.android.libraries.matrix.api.core.UserId
|
import io.element.android.libraries.matrix.api.core.UserId
|
||||||
import io.element.android.libraries.matrix.api.encryption.identity.IdentityState
|
import io.element.android.libraries.matrix.api.encryption.identity.IdentityState
|
||||||
import io.element.android.libraries.matrix.ui.room.IdentityRoomMember
|
import io.element.android.libraries.matrix.ui.room.IdentityRoomMember
|
||||||
@@ -32,7 +33,7 @@ class IdentityChangeStateProvider : PreviewParameterProvider<IdentityChangeState
|
|||||||
anIdentityChangeState(
|
anIdentityChangeState(
|
||||||
roomMemberIdentityStateChanges = listOf(
|
roomMemberIdentityStateChanges = listOf(
|
||||||
aRoomMemberIdentityStateChange(
|
aRoomMemberIdentityStateChange(
|
||||||
identityRoomMember = anIdentityRoomMember(displayNameOrDefault = "Alice"),
|
identityRoomMember = anIdentityRoomMember(displayNameOrDefault = USER_NAME_ALICE),
|
||||||
identityState = IdentityState.VerificationViolation,
|
identityState = IdentityState.VerificationViolation,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
+3
-2
@@ -11,6 +11,7 @@ package io.element.android.features.messages.impl.crypto.sendfailure.resolve
|
|||||||
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||||
import io.element.android.features.messages.impl.crypto.sendfailure.VerifiedUserSendFailure
|
import io.element.android.features.messages.impl.crypto.sendfailure.VerifiedUserSendFailure
|
||||||
import io.element.android.libraries.architecture.AsyncAction
|
import io.element.android.libraries.architecture.AsyncAction
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_ALICE
|
||||||
|
|
||||||
open class ResolveVerifiedUserSendFailureStateProvider : PreviewParameterProvider<ResolveVerifiedUserSendFailureState> {
|
open class ResolveVerifiedUserSendFailureStateProvider : PreviewParameterProvider<ResolveVerifiedUserSendFailureState> {
|
||||||
override val values: Sequence<ResolveVerifiedUserSendFailureState>
|
override val values: Sequence<ResolveVerifiedUserSendFailureState>
|
||||||
@@ -37,10 +38,10 @@ fun aResolveVerifiedUserSendFailureState(
|
|||||||
eventSink = eventSink
|
eventSink = eventSink
|
||||||
)
|
)
|
||||||
|
|
||||||
fun anUnsignedDeviceSendFailure(userDisplayName: String = "Alice") = VerifiedUserSendFailure.UnsignedDevice.FromOther(
|
fun anUnsignedDeviceSendFailure(userDisplayName: String = USER_NAME_ALICE) = VerifiedUserSendFailure.UnsignedDevice.FromOther(
|
||||||
userDisplayName = userDisplayName,
|
userDisplayName = userDisplayName,
|
||||||
)
|
)
|
||||||
|
|
||||||
fun aChangedIdentitySendFailure(userDisplayName: String = "Alice") = VerifiedUserSendFailure.ChangedIdentity(
|
fun aChangedIdentitySendFailure(userDisplayName: String = USER_NAME_ALICE) = VerifiedUserSendFailure.ChangedIdentity(
|
||||||
userDisplayName = userDisplayName,
|
userDisplayName = userDisplayName,
|
||||||
)
|
)
|
||||||
|
|||||||
+2
-1
@@ -33,6 +33,7 @@ import io.element.android.libraries.designsystem.components.avatar.AvatarType.Ro
|
|||||||
import io.element.android.libraries.designsystem.components.avatar.anAvatarData
|
import io.element.android.libraries.designsystem.components.avatar.anAvatarData
|
||||||
import io.element.android.libraries.designsystem.preview.ElementPreview
|
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_BOB
|
||||||
import io.element.android.libraries.designsystem.theme.components.HorizontalDivider
|
import io.element.android.libraries.designsystem.theme.components.HorizontalDivider
|
||||||
import io.element.android.libraries.designsystem.theme.components.Text
|
import io.element.android.libraries.designsystem.theme.components.Text
|
||||||
import io.element.android.libraries.matrix.api.core.RoomAlias
|
import io.element.android.libraries.matrix.api.core.RoomAlias
|
||||||
@@ -198,7 +199,7 @@ internal fun SuggestionsPickerViewPreview() {
|
|||||||
suggestions = persistentListOf(
|
suggestions = persistentListOf(
|
||||||
ResolvedSuggestion.AtRoom,
|
ResolvedSuggestion.AtRoom,
|
||||||
ResolvedSuggestion.Member(roomMember),
|
ResolvedSuggestion.Member(roomMember),
|
||||||
ResolvedSuggestion.Member(roomMember.copy(userId = UserId("@bob:server.org"), displayName = "Bob")),
|
ResolvedSuggestion.Member(roomMember.copy(userId = UserId("@bob:server.org"), displayName = USER_NAME_BOB)),
|
||||||
ResolvedSuggestion.Alias(
|
ResolvedSuggestion.Alias(
|
||||||
roomAlias = anAlias,
|
roomAlias = anAlias,
|
||||||
roomId = RoomId("!room:matrix.org"),
|
roomId = RoomId("!room:matrix.org"),
|
||||||
|
|||||||
+4
-2
@@ -43,6 +43,8 @@ import io.element.android.libraries.designsystem.components.avatar.AvatarType
|
|||||||
import io.element.android.libraries.designsystem.components.button.BackButton
|
import io.element.android.libraries.designsystem.components.button.BackButton
|
||||||
import io.element.android.libraries.designsystem.preview.ElementPreview
|
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||||
|
import io.element.android.libraries.designsystem.preview.ROOM_NAME
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_ALICE
|
||||||
import io.element.android.libraries.designsystem.theme.components.HorizontalDivider
|
import io.element.android.libraries.designsystem.theme.components.HorizontalDivider
|
||||||
import io.element.android.libraries.designsystem.theme.components.Icon
|
import io.element.android.libraries.designsystem.theme.components.Icon
|
||||||
import io.element.android.libraries.designsystem.theme.components.Scaffold
|
import io.element.android.libraries.designsystem.theme.components.Scaffold
|
||||||
@@ -303,7 +305,7 @@ internal fun ThreadsListViewPreview() {
|
|||||||
ThreadsListView(
|
ThreadsListView(
|
||||||
state = ThreadsListState(
|
state = ThreadsListState(
|
||||||
roomId = RoomId("!room-id:server"),
|
roomId = RoomId("!room-id:server"),
|
||||||
roomName = "Room name",
|
roomName = ROOM_NAME,
|
||||||
roomAvatarUrl = null,
|
roomAvatarUrl = null,
|
||||||
threads = List(10) { aThreadListRowItem(threadId = ThreadId("\$thread-$it")) }.toImmutableList(),
|
threads = List(10) { aThreadListRowItem(threadId = ThreadId("\$thread-$it")) }.toImmutableList(),
|
||||||
isRoomTombstoned = false,
|
isRoomTombstoned = false,
|
||||||
@@ -360,7 +362,7 @@ fun aThreadListItem(
|
|||||||
fun aThreadListItemEvent(
|
fun aThreadListItemEvent(
|
||||||
threadId: ThreadId = ThreadId("\$a-thread-id"),
|
threadId: ThreadId = ThreadId("\$a-thread-id"),
|
||||||
senderId: UserId = UserId("@a-user-id:server"),
|
senderId: UserId = UserId("@a-user-id:server"),
|
||||||
senderProfile: ProfileDetails = ProfileDetails.Ready(displayName = "Alice", displayNameAmbiguous = false, avatarUrl = null),
|
senderProfile: ProfileDetails = ProfileDetails.Ready(displayName = USER_NAME_ALICE, displayNameAmbiguous = false, avatarUrl = null),
|
||||||
isOwn: Boolean = false,
|
isOwn: Boolean = false,
|
||||||
content: EventContent = MessageContent(
|
content: EventContent = MessageContent(
|
||||||
body = "Hello world!",
|
body = "Hello world!",
|
||||||
|
|||||||
+5
-3
@@ -29,6 +29,8 @@ import io.element.android.features.messages.impl.typing.aTypingNotificationState
|
|||||||
import io.element.android.features.roomcall.api.aStandByCallState
|
import io.element.android.features.roomcall.api.aStandByCallState
|
||||||
import io.element.android.libraries.designsystem.components.avatar.AvatarData
|
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.AvatarSize
|
||||||
|
import io.element.android.libraries.designsystem.preview.ROOM_NAME
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_SENDER
|
||||||
import io.element.android.libraries.matrix.api.core.EventId
|
import io.element.android.libraries.matrix.api.core.EventId
|
||||||
import io.element.android.libraries.matrix.api.core.TransactionId
|
import io.element.android.libraries.matrix.api.core.TransactionId
|
||||||
import io.element.android.libraries.matrix.api.core.UniqueId
|
import io.element.android.libraries.matrix.api.core.UniqueId
|
||||||
@@ -143,7 +145,7 @@ internal fun aTimelineItemEvent(
|
|||||||
isMine: Boolean = false,
|
isMine: Boolean = false,
|
||||||
isEditable: Boolean = false,
|
isEditable: Boolean = false,
|
||||||
canBeRepliedTo: Boolean = false,
|
canBeRepliedTo: Boolean = false,
|
||||||
senderDisplayName: String = "Sender",
|
senderDisplayName: String = USER_NAME_SENDER,
|
||||||
displayNameAmbiguous: Boolean = false,
|
displayNameAmbiguous: Boolean = false,
|
||||||
content: TimelineItemEventContent = aTimelineItemTextContent(),
|
content: TimelineItemEventContent = aTimelineItemTextContent(),
|
||||||
groupPosition: TimelineItemGroupPosition = TimelineItemGroupPosition.None,
|
groupPosition: TimelineItemGroupPosition = TimelineItemGroupPosition.None,
|
||||||
@@ -160,7 +162,7 @@ internal fun aTimelineItemEvent(
|
|||||||
eventId = eventId,
|
eventId = eventId,
|
||||||
transactionId = transactionId,
|
transactionId = transactionId,
|
||||||
senderId = UserId("@senderId:domain"),
|
senderId = UserId("@senderId:domain"),
|
||||||
senderAvatar = AvatarData("@senderId:domain", "sender", size = AvatarSize.TimelineSender),
|
senderAvatar = AvatarData("@senderId:domain", USER_NAME_SENDER, size = AvatarSize.TimelineSender),
|
||||||
content = content,
|
content = content,
|
||||||
reactionsState = timelineItemReactions,
|
reactionsState = timelineItemReactions,
|
||||||
readReceiptState = readReceiptState,
|
readReceiptState = readReceiptState,
|
||||||
@@ -253,7 +255,7 @@ internal fun aGroupedEvents(
|
|||||||
}
|
}
|
||||||
|
|
||||||
internal fun aTimelineRoomInfo(
|
internal fun aTimelineRoomInfo(
|
||||||
name: String = "Room name",
|
name: String = ROOM_NAME,
|
||||||
isDm: Boolean = false,
|
isDm: Boolean = false,
|
||||||
userHasPermissionToSendMessage: Boolean = true,
|
userHasPermissionToSendMessage: Boolean = true,
|
||||||
pinnedEventIds: List<EventId> = emptyList(),
|
pinnedEventIds: List<EventId> = emptyList(),
|
||||||
|
|||||||
+2
-1
@@ -26,6 +26,7 @@ import io.element.android.compound.tokens.generated.CompoundIcons
|
|||||||
import io.element.android.features.messages.impl.R
|
import io.element.android.features.messages.impl.R
|
||||||
import io.element.android.libraries.designsystem.preview.ElementPreview
|
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_ALICE
|
||||||
import io.element.android.libraries.designsystem.theme.components.Icon
|
import io.element.android.libraries.designsystem.theme.components.Icon
|
||||||
import io.element.android.libraries.designsystem.theme.components.Text
|
import io.element.android.libraries.designsystem.theme.components.Text
|
||||||
import io.element.android.libraries.matrix.api.core.UserId
|
import io.element.android.libraries.matrix.api.core.UserId
|
||||||
@@ -162,7 +163,7 @@ internal fun MessageShieldViewPreview() {
|
|||||||
MessageShield.AuthenticityNotGuaranteed(false),
|
MessageShield.AuthenticityNotGuaranteed(false),
|
||||||
forwarder = UserId("@alice:example.com"),
|
forwarder = UserId("@alice:example.com"),
|
||||||
forwarderProfile = ProfileDetails.Ready(
|
forwarderProfile = ProfileDetails.Ready(
|
||||||
displayName = "Alice",
|
displayName = USER_NAME_ALICE,
|
||||||
displayNameAmbiguous = false,
|
displayNameAmbiguous = false,
|
||||||
avatarUrl = null,
|
avatarUrl = null,
|
||||||
),
|
),
|
||||||
|
|||||||
+3
-2
@@ -92,6 +92,7 @@ import io.element.android.libraries.designsystem.components.avatar.AvatarType
|
|||||||
import io.element.android.libraries.designsystem.modifiers.niceClickable
|
import io.element.android.libraries.designsystem.modifiers.niceClickable
|
||||||
import io.element.android.libraries.designsystem.preview.ElementPreview
|
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_ALICE
|
||||||
import io.element.android.libraries.designsystem.swipe.SwipeableActionsState
|
import io.element.android.libraries.designsystem.swipe.SwipeableActionsState
|
||||||
import io.element.android.libraries.designsystem.swipe.rememberSwipeableActionsState
|
import io.element.android.libraries.designsystem.swipe.rememberSwipeableActionsState
|
||||||
import io.element.android.libraries.designsystem.text.toPx
|
import io.element.android.libraries.designsystem.text.toPx
|
||||||
@@ -863,7 +864,7 @@ internal fun TimelineItemEventRowWithThreadSummaryPreview() = ElementPreview {
|
|||||||
),
|
),
|
||||||
senderId = UserId("@user:id"),
|
senderId = UserId("@user:id"),
|
||||||
senderProfile = ProfileDetails.Ready(
|
senderProfile = ProfileDetails.Ready(
|
||||||
displayName = "Alice",
|
displayName = USER_NAME_ALICE,
|
||||||
avatarUrl = null,
|
avatarUrl = null,
|
||||||
displayNameAmbiguous = false,
|
displayNameAmbiguous = false,
|
||||||
),
|
),
|
||||||
@@ -898,7 +899,7 @@ internal fun ThreadSummaryViewPreview() {
|
|||||||
),
|
),
|
||||||
senderId = UserId("@user:id"),
|
senderId = UserId("@user:id"),
|
||||||
senderProfile = ProfileDetails.Ready(
|
senderProfile = ProfileDetails.Ready(
|
||||||
displayName = "Alice",
|
displayName = USER_NAME_ALICE,
|
||||||
avatarUrl = null,
|
avatarUrl = null,
|
||||||
displayNameAmbiguous = true,
|
displayNameAmbiguous = true,
|
||||||
),
|
),
|
||||||
|
|||||||
+5
-3
@@ -16,6 +16,8 @@ import io.element.android.features.messages.impl.timeline.model.TimelineItemGrou
|
|||||||
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemEncryptedContent
|
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemEncryptedContent
|
||||||
import io.element.android.libraries.designsystem.preview.ElementPreview
|
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_ALICE
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_BOB
|
||||||
import io.element.android.libraries.matrix.api.timeline.item.event.UnableToDecryptContent
|
import io.element.android.libraries.matrix.api.timeline.item.event.UnableToDecryptContent
|
||||||
import io.element.android.libraries.matrix.api.timeline.item.event.UtdCause
|
import io.element.android.libraries.matrix.api.timeline.item.event.UtdCause
|
||||||
|
|
||||||
@@ -25,7 +27,7 @@ internal fun TimelineItemEventRowUtdPreview() = ElementPreview {
|
|||||||
Column {
|
Column {
|
||||||
ATimelineItemEventRow(
|
ATimelineItemEventRow(
|
||||||
event = aTimelineItemEvent(
|
event = aTimelineItemEvent(
|
||||||
senderDisplayName = "Alice",
|
senderDisplayName = USER_NAME_ALICE,
|
||||||
isMine = false,
|
isMine = false,
|
||||||
content = TimelineItemEncryptedContent(
|
content = TimelineItemEncryptedContent(
|
||||||
data = UnableToDecryptContent.Data.MegolmV1AesSha2(
|
data = UnableToDecryptContent.Data.MegolmV1AesSha2(
|
||||||
@@ -39,7 +41,7 @@ internal fun TimelineItemEventRowUtdPreview() = ElementPreview {
|
|||||||
)
|
)
|
||||||
ATimelineItemEventRow(
|
ATimelineItemEventRow(
|
||||||
event = aTimelineItemEvent(
|
event = aTimelineItemEvent(
|
||||||
senderDisplayName = "Bob",
|
senderDisplayName = USER_NAME_BOB,
|
||||||
isMine = false,
|
isMine = false,
|
||||||
content = TimelineItemEncryptedContent(
|
content = TimelineItemEncryptedContent(
|
||||||
data = UnableToDecryptContent.Data.MegolmV1AesSha2(
|
data = UnableToDecryptContent.Data.MegolmV1AesSha2(
|
||||||
@@ -54,7 +56,7 @@ internal fun TimelineItemEventRowUtdPreview() = ElementPreview {
|
|||||||
|
|
||||||
ATimelineItemEventRow(
|
ATimelineItemEventRow(
|
||||||
event = aTimelineItemEvent(
|
event = aTimelineItemEvent(
|
||||||
senderDisplayName = "Bob",
|
senderDisplayName = USER_NAME_BOB,
|
||||||
isMine = false,
|
isMine = false,
|
||||||
content = TimelineItemEncryptedContent(
|
content = TimelineItemEncryptedContent(
|
||||||
data = UnableToDecryptContent.Data.MegolmV1AesSha2(
|
data = UnableToDecryptContent.Data.MegolmV1AesSha2(
|
||||||
|
|||||||
+3
-2
@@ -24,6 +24,7 @@ import io.element.android.features.messages.impl.R
|
|||||||
import io.element.android.libraries.designsystem.atomic.molecules.ComposerAlertMolecule
|
import io.element.android.libraries.designsystem.atomic.molecules.ComposerAlertMolecule
|
||||||
import io.element.android.libraries.designsystem.preview.ElementPreview
|
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||||
|
import io.element.android.libraries.designsystem.preview.ROOM_NAME
|
||||||
import io.element.android.libraries.designsystem.text.toAnnotatedString
|
import io.element.android.libraries.designsystem.text.toAnnotatedString
|
||||||
import io.element.android.libraries.designsystem.theme.components.Text
|
import io.element.android.libraries.designsystem.theme.components.Text
|
||||||
import io.element.android.libraries.designsystem.utils.allBooleans
|
import io.element.android.libraries.designsystem.utils.allBooleans
|
||||||
@@ -86,13 +87,13 @@ internal fun TimelineItemRoomBeginningViewPreview() = ElementPreview {
|
|||||||
)
|
)
|
||||||
TimelineItemRoomBeginningView(
|
TimelineItemRoomBeginningView(
|
||||||
predecessorRoom = null,
|
predecessorRoom = null,
|
||||||
roomName = "Room Name",
|
roomName = ROOM_NAME,
|
||||||
isDm = isDm,
|
isDm = isDm,
|
||||||
onPredecessorRoomClick = {},
|
onPredecessorRoomClick = {},
|
||||||
)
|
)
|
||||||
TimelineItemRoomBeginningView(
|
TimelineItemRoomBeginningView(
|
||||||
predecessorRoom = PredecessorRoom(RoomId("!roomId:matrix.org")),
|
predecessorRoom = PredecessorRoom(RoomId("!roomId:matrix.org")),
|
||||||
roomName = "Room Name",
|
roomName = ROOM_NAME,
|
||||||
isDm = isDm,
|
isDm = isDm,
|
||||||
onPredecessorRoomClick = {},
|
onPredecessorRoomClick = {},
|
||||||
)
|
)
|
||||||
|
|||||||
+3
-2
@@ -43,6 +43,7 @@ import io.element.android.libraries.designsystem.components.avatar.anAvatarData
|
|||||||
import io.element.android.libraries.designsystem.components.button.BackButton
|
import io.element.android.libraries.designsystem.components.button.BackButton
|
||||||
import io.element.android.libraries.designsystem.preview.ElementPreview
|
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||||
|
import io.element.android.libraries.designsystem.preview.ROOM_NAME
|
||||||
import io.element.android.libraries.designsystem.theme.components.HorizontalDivider
|
import io.element.android.libraries.designsystem.theme.components.HorizontalDivider
|
||||||
import io.element.android.libraries.designsystem.theme.components.Icon
|
import io.element.android.libraries.designsystem.theme.components.Icon
|
||||||
import io.element.android.libraries.designsystem.theme.components.Text
|
import io.element.android.libraries.designsystem.theme.components.Text
|
||||||
@@ -175,9 +176,9 @@ private fun RoomAvatarAndNameRow(
|
|||||||
internal fun MessagesViewTopBarPreview() = ElementPreview {
|
internal fun MessagesViewTopBarPreview() = ElementPreview {
|
||||||
@Composable
|
@Composable
|
||||||
fun AMessagesViewTopBar(
|
fun AMessagesViewTopBar(
|
||||||
roomName: String? = "Room name",
|
roomName: String? = ROOM_NAME,
|
||||||
roomAvatar: AvatarData = anAvatarData(
|
roomAvatar: AvatarData = anAvatarData(
|
||||||
name = "Room name",
|
name = ROOM_NAME,
|
||||||
size = AvatarSize.TimelineRoom,
|
size = AvatarSize.TimelineRoom,
|
||||||
),
|
),
|
||||||
isTombstoned: Boolean = false,
|
isTombstoned: Boolean = false,
|
||||||
|
|||||||
+4
-3
@@ -31,6 +31,7 @@ import io.element.android.libraries.designsystem.components.avatar.anAvatarData
|
|||||||
import io.element.android.libraries.designsystem.components.button.BackButton
|
import io.element.android.libraries.designsystem.components.button.BackButton
|
||||||
import io.element.android.libraries.designsystem.preview.ElementPreview
|
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||||
|
import io.element.android.libraries.designsystem.preview.ROOM_NAME
|
||||||
import io.element.android.libraries.designsystem.theme.components.HorizontalDivider
|
import io.element.android.libraries.designsystem.theme.components.HorizontalDivider
|
||||||
import io.element.android.libraries.designsystem.theme.components.Text
|
import io.element.android.libraries.designsystem.theme.components.Text
|
||||||
import io.element.android.libraries.designsystem.theme.components.TopAppBar
|
import io.element.android.libraries.designsystem.theme.components.TopAppBar
|
||||||
@@ -96,9 +97,9 @@ internal fun ThreadTopBar(
|
|||||||
internal fun ThreadTopBarPreview() = ElementPreview {
|
internal fun ThreadTopBarPreview() = ElementPreview {
|
||||||
@Composable
|
@Composable
|
||||||
fun AThreadTopBar(
|
fun AThreadTopBar(
|
||||||
roomName: String? = "Room name",
|
roomName: String? = ROOM_NAME,
|
||||||
roomAvatarData: AvatarData = anAvatarData(
|
roomAvatarData: AvatarData = anAvatarData(
|
||||||
name = "Room name",
|
name = ROOM_NAME,
|
||||||
size = AvatarSize.TimelineRoom,
|
size = AvatarSize.TimelineRoom,
|
||||||
),
|
),
|
||||||
isTombstoned: Boolean = false,
|
isTombstoned: Boolean = false,
|
||||||
@@ -123,7 +124,7 @@ internal fun ThreadTopBarPreview() = ElementPreview {
|
|||||||
HorizontalDivider()
|
HorizontalDivider()
|
||||||
AThreadTopBar(
|
AThreadTopBar(
|
||||||
roomAvatarData = anAvatarData(
|
roomAvatarData = anAvatarData(
|
||||||
name = "Room name",
|
name = ROOM_NAME,
|
||||||
url = "https://some-avatar.jpg",
|
url = "https://some-avatar.jpg",
|
||||||
size = AvatarSize.TimelineRoom,
|
size = AvatarSize.TimelineRoom,
|
||||||
),
|
),
|
||||||
|
|||||||
+16
-11
@@ -9,6 +9,11 @@
|
|||||||
package io.element.android.features.messages.impl.typing
|
package io.element.android.features.messages.impl.typing
|
||||||
|
|
||||||
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_ALICE
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_BOB
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_CHARLIE
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_DAVID
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_EVE
|
||||||
import kotlinx.collections.immutable.toImmutableList
|
import kotlinx.collections.immutable.toImmutableList
|
||||||
|
|
||||||
class TypingNotificationStateProvider : PreviewParameterProvider<TypingNotificationState> {
|
class TypingNotificationStateProvider : PreviewParameterProvider<TypingNotificationState> {
|
||||||
@@ -22,7 +27,7 @@ class TypingNotificationStateProvider : PreviewParameterProvider<TypingNotificat
|
|||||||
),
|
),
|
||||||
aTypingNotificationState(
|
aTypingNotificationState(
|
||||||
typingMembers = listOf(
|
typingMembers = listOf(
|
||||||
aTypingRoomMember(disambiguatedDisplayName = "Alice"),
|
aTypingRoomMember(disambiguatedDisplayName = USER_NAME_ALICE),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
aTypingNotificationState(
|
aTypingNotificationState(
|
||||||
@@ -32,24 +37,24 @@ class TypingNotificationStateProvider : PreviewParameterProvider<TypingNotificat
|
|||||||
),
|
),
|
||||||
aTypingNotificationState(
|
aTypingNotificationState(
|
||||||
typingMembers = listOf(
|
typingMembers = listOf(
|
||||||
aTypingRoomMember(disambiguatedDisplayName = "Alice"),
|
aTypingRoomMember(disambiguatedDisplayName = USER_NAME_ALICE),
|
||||||
aTypingRoomMember(disambiguatedDisplayName = "Bob"),
|
aTypingRoomMember(disambiguatedDisplayName = USER_NAME_BOB),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
aTypingNotificationState(
|
aTypingNotificationState(
|
||||||
typingMembers = listOf(
|
typingMembers = listOf(
|
||||||
aTypingRoomMember(disambiguatedDisplayName = "Alice"),
|
aTypingRoomMember(disambiguatedDisplayName = USER_NAME_ALICE),
|
||||||
aTypingRoomMember(disambiguatedDisplayName = "Bob"),
|
aTypingRoomMember(disambiguatedDisplayName = USER_NAME_BOB),
|
||||||
aTypingRoomMember(disambiguatedDisplayName = "Charlie"),
|
aTypingRoomMember(disambiguatedDisplayName = USER_NAME_CHARLIE),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
aTypingNotificationState(
|
aTypingNotificationState(
|
||||||
typingMembers = listOf(
|
typingMembers = listOf(
|
||||||
aTypingRoomMember(disambiguatedDisplayName = "Alice"),
|
aTypingRoomMember(disambiguatedDisplayName = USER_NAME_ALICE),
|
||||||
aTypingRoomMember(disambiguatedDisplayName = "Bob"),
|
aTypingRoomMember(disambiguatedDisplayName = USER_NAME_BOB),
|
||||||
aTypingRoomMember(disambiguatedDisplayName = "Charlie"),
|
aTypingRoomMember(disambiguatedDisplayName = USER_NAME_CHARLIE),
|
||||||
aTypingRoomMember(disambiguatedDisplayName = "Dan"),
|
aTypingRoomMember(disambiguatedDisplayName = USER_NAME_DAVID),
|
||||||
aTypingRoomMember(disambiguatedDisplayName = "Eve"),
|
aTypingRoomMember(disambiguatedDisplayName = USER_NAME_EVE),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
aTypingNotificationState(
|
aTypingNotificationState(
|
||||||
|
|||||||
+2
-1
@@ -10,6 +10,7 @@ package io.element.android.features.preferences.impl.user.editprofile
|
|||||||
|
|
||||||
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||||
import io.element.android.libraries.architecture.AsyncAction
|
import io.element.android.libraries.architecture.AsyncAction
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_JOHN_DOE
|
||||||
import io.element.android.libraries.matrix.api.core.UserId
|
import io.element.android.libraries.matrix.api.core.UserId
|
||||||
import io.element.android.libraries.matrix.ui.media.AvatarAction
|
import io.element.android.libraries.matrix.ui.media.AvatarAction
|
||||||
import io.element.android.libraries.permissions.api.PermissionsState
|
import io.element.android.libraries.permissions.api.PermissionsState
|
||||||
@@ -28,7 +29,7 @@ open class EditUserProfileStateProvider : PreviewParameterProvider<EditUserProfi
|
|||||||
|
|
||||||
fun aEditUserProfileState(
|
fun aEditUserProfileState(
|
||||||
userId: UserId = UserId("@john.doe:matrix.org"),
|
userId: UserId = UserId("@john.doe:matrix.org"),
|
||||||
displayName: String = "John Doe",
|
displayName: String = USER_NAME_JOHN_DOE,
|
||||||
userAvatarUrl: String? = null,
|
userAvatarUrl: String? = null,
|
||||||
avatarActions: List<AvatarAction> = emptyList(),
|
avatarActions: List<AvatarAction> = emptyList(),
|
||||||
saveButtonEnabled: Boolean = true,
|
saveButtonEnabled: Boolean = true,
|
||||||
|
|||||||
+11
-7
@@ -11,6 +11,10 @@ package io.element.android.features.rolesandpermissions.impl.roles
|
|||||||
import androidx.compose.foundation.text.input.TextFieldState
|
import androidx.compose.foundation.text.input.TextFieldState
|
||||||
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||||
import io.element.android.libraries.architecture.AsyncAction
|
import io.element.android.libraries.architecture.AsyncAction
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_ALICE
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_BOB
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_CAROL
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_DAVID
|
||||||
import io.element.android.libraries.designsystem.theme.components.SearchBarResultState
|
import io.element.android.libraries.designsystem.theme.components.SearchBarResultState
|
||||||
import io.element.android.libraries.matrix.api.core.UserId
|
import io.element.android.libraries.matrix.api.core.UserId
|
||||||
import io.element.android.libraries.matrix.api.room.RoomMember
|
import io.element.android.libraries.matrix.api.room.RoomMember
|
||||||
@@ -103,9 +107,9 @@ internal fun aChangeRolesStateWithSelectedUsers() = aChangeRolesState(
|
|||||||
internal fun aChangeRolesStateWithOwners(
|
internal fun aChangeRolesStateWithOwners(
|
||||||
role: RoomMember.Role = RoomMember.Role.Admin,
|
role: RoomMember.Role = RoomMember.Role.Admin,
|
||||||
selectedUsers: List<MatrixUser> = listOf(
|
selectedUsers: List<MatrixUser> = listOf(
|
||||||
aMatrixUser(id = "@alice:server.org", displayName = "Alice"),
|
aMatrixUser(displayName = USER_NAME_ALICE),
|
||||||
aMatrixUser(id = "@bob:server.org", displayName = "Bob"),
|
aMatrixUser(displayName = USER_NAME_BOB),
|
||||||
aMatrixUser(id = "@carol:server.org", displayName = "Carol"),
|
aMatrixUser(displayName = USER_NAME_CAROL),
|
||||||
),
|
),
|
||||||
) = aChangeRolesState(
|
) = aChangeRolesState(
|
||||||
role = role,
|
role = role,
|
||||||
@@ -114,22 +118,22 @@ internal fun aChangeRolesStateWithOwners(
|
|||||||
members = persistentListOf(
|
members = persistentListOf(
|
||||||
aRoomMember(
|
aRoomMember(
|
||||||
userId = UserId("@alice:server.org"),
|
userId = UserId("@alice:server.org"),
|
||||||
displayName = "Alice",
|
displayName = USER_NAME_ALICE,
|
||||||
role = RoomMember.Role.Owner(isCreator = true),
|
role = RoomMember.Role.Owner(isCreator = true),
|
||||||
),
|
),
|
||||||
aRoomMember(
|
aRoomMember(
|
||||||
userId = UserId("@bob:server.org"),
|
userId = UserId("@bob:server.org"),
|
||||||
displayName = "Bob",
|
displayName = USER_NAME_BOB,
|
||||||
role = RoomMember.Role.Owner(isCreator = false),
|
role = RoomMember.Role.Owner(isCreator = false),
|
||||||
),
|
),
|
||||||
aRoomMember(
|
aRoomMember(
|
||||||
userId = UserId("@carol:server.org"),
|
userId = UserId("@carol:server.org"),
|
||||||
displayName = "Carol",
|
displayName = USER_NAME_CAROL,
|
||||||
role = RoomMember.Role.Admin,
|
role = RoomMember.Role.Admin,
|
||||||
),
|
),
|
||||||
aRoomMember(
|
aRoomMember(
|
||||||
userId = UserId("@david:server.org"),
|
userId = UserId("@david:server.org"),
|
||||||
displayName = "David",
|
displayName = USER_NAME_DAVID,
|
||||||
role = RoomMember.Role.User,
|
role = RoomMember.Role.User,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
+18
-9
@@ -15,6 +15,15 @@ import io.element.android.features.roommembermoderation.api.RoomMemberModeration
|
|||||||
import io.element.android.features.roommembermoderation.api.RoomMemberModerationState
|
import io.element.android.features.roommembermoderation.api.RoomMemberModerationState
|
||||||
import io.element.android.libraries.architecture.AsyncData
|
import io.element.android.libraries.architecture.AsyncData
|
||||||
import io.element.android.libraries.architecture.map
|
import io.element.android.libraries.architecture.map
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_ALICE
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_BOB
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_CAROL
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_DAVID
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_EVE
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_MALLORY
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_SUSIE
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_VICTOR
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_WALTER
|
||||||
import io.element.android.libraries.matrix.api.core.UserId
|
import io.element.android.libraries.matrix.api.core.UserId
|
||||||
import io.element.android.libraries.matrix.api.encryption.identity.IdentityState
|
import io.element.android.libraries.matrix.api.encryption.identity.IdentityState
|
||||||
import io.element.android.libraries.matrix.api.room.RoomMember
|
import io.element.android.libraries.matrix.api.room.RoomMember
|
||||||
@@ -143,21 +152,21 @@ fun aRoomMemberList() = persistentListOf(
|
|||||||
aBannedMallory(),
|
aBannedMallory(),
|
||||||
)
|
)
|
||||||
|
|
||||||
fun anEve(): RoomMember = aRoomMember(UserId("@eve:server.org"), "Eve")
|
fun anEve(): RoomMember = aRoomMember(UserId("@eve:server.org"), USER_NAME_EVE)
|
||||||
|
|
||||||
fun aDavid(): RoomMember = aRoomMember(UserId("@david:server.org"), "David")
|
fun aDavid(): RoomMember = aRoomMember(UserId("@david:server.org"), USER_NAME_DAVID)
|
||||||
|
|
||||||
fun aCarol(): RoomMember = aRoomMember(UserId("@carol:server.org"), "Carol")
|
fun aCarol(): RoomMember = aRoomMember(UserId("@carol:server.org"), USER_NAME_CAROL)
|
||||||
|
|
||||||
fun anAlice() = aRoomMember(UserId("@alice:server.org"), "Alice", role = RoomMember.Role.Admin)
|
fun anAlice() = aRoomMember(UserId("@alice:server.org"), USER_NAME_ALICE, role = RoomMember.Role.Admin)
|
||||||
fun aBob() = aRoomMember(UserId("@bob:server.org"), "Bob", role = RoomMember.Role.Moderator)
|
fun aBob() = aRoomMember(UserId("@bob:server.org"), USER_NAME_BOB, role = RoomMember.Role.Moderator)
|
||||||
|
|
||||||
fun anInvitedVictor() = aRoomMember(UserId("@victor:server.org"), "Victor", membership = RoomMembershipState.INVITE)
|
fun anInvitedVictor() = aRoomMember(UserId("@victor:server.org"), USER_NAME_VICTOR, membership = RoomMembershipState.INVITE)
|
||||||
|
|
||||||
fun anInvitedWalter() = aRoomMember(UserId("@walter:server.org"), "Walter", membership = RoomMembershipState.INVITE)
|
fun anInvitedWalter() = aRoomMember(UserId("@walter:server.org"), USER_NAME_WALTER, membership = RoomMembershipState.INVITE)
|
||||||
|
|
||||||
fun aBannedSusie(): RoomMember = aRoomMember(UserId("@susie:server.org"), "Susie", membership = RoomMembershipState.BAN)
|
fun aBannedSusie(): RoomMember = aRoomMember(UserId("@susie:server.org"), USER_NAME_SUSIE, membership = RoomMembershipState.BAN)
|
||||||
|
|
||||||
fun aBannedMallory(): RoomMember = aRoomMember(UserId("@mallory:server.org"), "Mallory", membership = RoomMembershipState.BAN)
|
fun aBannedMallory(): RoomMember = aRoomMember(UserId("@mallory:server.org"), USER_NAME_MALLORY, membership = RoomMembershipState.BAN)
|
||||||
|
|
||||||
private fun RoomMember.withIdentity(identityState: IdentityState? = null) = RoomMemberWithIdentityState(this, identityState)
|
private fun RoomMember.withIdentity(identityState: IdentityState? = null) = RoomMemberWithIdentityState(this, identityState)
|
||||||
|
|||||||
+3
-2
@@ -14,6 +14,7 @@ import io.element.android.features.roommembermoderation.api.ModerationActionStat
|
|||||||
import io.element.android.features.roommembermoderation.api.RoomMemberModerationEvents
|
import io.element.android.features.roommembermoderation.api.RoomMemberModerationEvents
|
||||||
import io.element.android.features.roommembermoderation.api.RoomMemberModerationPermissions
|
import io.element.android.features.roommembermoderation.api.RoomMemberModerationPermissions
|
||||||
import io.element.android.libraries.architecture.AsyncAction
|
import io.element.android.libraries.architecture.AsyncAction
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_ALICE
|
||||||
import io.element.android.libraries.matrix.api.core.UserId
|
import io.element.android.libraries.matrix.api.core.UserId
|
||||||
import io.element.android.libraries.matrix.api.user.MatrixUser
|
import io.element.android.libraries.matrix.api.user.MatrixUser
|
||||||
import kotlinx.collections.immutable.toImmutableList
|
import kotlinx.collections.immutable.toImmutableList
|
||||||
@@ -78,8 +79,8 @@ class InternalRoomMemberModerationStateProvider : PreviewParameterProvider<Inter
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun anAlice() = MatrixUser(
|
fun anAlice() = MatrixUser(
|
||||||
UserId(value = "@alice:server.org"),
|
userId = UserId(value = "@alice:server.org"),
|
||||||
displayName = "Alice",
|
displayName = USER_NAME_ALICE,
|
||||||
avatarUrl = null,
|
avatarUrl = null,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
+2
-1
@@ -11,6 +11,7 @@ package io.element.android.features.space.impl.leave
|
|||||||
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||||
import io.element.android.libraries.architecture.AsyncAction
|
import io.element.android.libraries.architecture.AsyncAction
|
||||||
import io.element.android.libraries.architecture.AsyncData
|
import io.element.android.libraries.architecture.AsyncData
|
||||||
|
import io.element.android.libraries.designsystem.preview.SPACE_NAME
|
||||||
import io.element.android.libraries.matrix.api.room.join.JoinRule
|
import io.element.android.libraries.matrix.api.room.join.JoinRule
|
||||||
import io.element.android.libraries.matrix.api.spaces.SpaceRoom
|
import io.element.android.libraries.matrix.api.spaces.SpaceRoom
|
||||||
import io.element.android.libraries.previewutils.room.aSpaceRoom
|
import io.element.android.libraries.previewutils.room.aSpaceRoom
|
||||||
@@ -117,7 +118,7 @@ class LeaveSpaceStateProvider : PreviewParameterProvider<LeaveSpaceState> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun aLeaveSpaceState(
|
fun aLeaveSpaceState(
|
||||||
spaceName: String? = "Space name",
|
spaceName: String? = SPACE_NAME,
|
||||||
isLastOwner: Boolean = false,
|
isLastOwner: Boolean = false,
|
||||||
areCreatorsPrivileged: Boolean = false,
|
areCreatorsPrivileged: Boolean = false,
|
||||||
selectableSpaceRooms: AsyncData<ImmutableList<SelectableSpaceRoom>> = AsyncData.Uninitialized,
|
selectableSpaceRooms: AsyncData<ImmutableList<SelectableSpaceRoom>> = AsyncData.Uninitialized,
|
||||||
|
|||||||
+2
-1
@@ -9,6 +9,7 @@
|
|||||||
package io.element.android.features.space.impl.settings
|
package io.element.android.features.space.impl.settings
|
||||||
|
|
||||||
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||||
|
import io.element.android.libraries.designsystem.preview.SPACE_NAME
|
||||||
import io.element.android.libraries.matrix.api.core.RoomAlias
|
import io.element.android.libraries.matrix.api.core.RoomAlias
|
||||||
import io.element.android.libraries.matrix.api.core.RoomId
|
import io.element.android.libraries.matrix.api.core.RoomId
|
||||||
|
|
||||||
@@ -24,7 +25,7 @@ open class SpaceSettingsStateProvider : PreviewParameterProvider<SpaceSettingsSt
|
|||||||
|
|
||||||
fun aSpaceSettingsState(
|
fun aSpaceSettingsState(
|
||||||
roomId: RoomId = RoomId("!aRoomId:element.io"),
|
roomId: RoomId = RoomId("!aRoomId:element.io"),
|
||||||
name: String = "Space name",
|
name: String = SPACE_NAME,
|
||||||
alias: RoomAlias? = RoomAlias("#spacename:element.io"),
|
alias: RoomAlias? = RoomAlias("#spacename:element.io"),
|
||||||
avatarUrl: String? = null,
|
avatarUrl: String? = null,
|
||||||
memberCount: Long = 100,
|
memberCount: Long = 100,
|
||||||
|
|||||||
+3
-2
@@ -37,6 +37,7 @@ import io.element.android.libraries.designsystem.components.avatar.AvatarType
|
|||||||
import io.element.android.libraries.designsystem.modifiers.niceClickable
|
import io.element.android.libraries.designsystem.modifiers.niceClickable
|
||||||
import io.element.android.libraries.designsystem.preview.ElementPreview
|
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_ALICE
|
||||||
import io.element.android.libraries.designsystem.theme.components.ButtonSize
|
import io.element.android.libraries.designsystem.theme.components.ButtonSize
|
||||||
import io.element.android.libraries.designsystem.theme.components.OutlinedButton
|
import io.element.android.libraries.designsystem.theme.components.OutlinedButton
|
||||||
import io.element.android.libraries.designsystem.theme.components.Text
|
import io.element.android.libraries.designsystem.theme.components.Text
|
||||||
@@ -140,7 +141,7 @@ internal fun UserProfileHeaderSectionPreview() = ElementPreview {
|
|||||||
UserProfileHeaderSection(
|
UserProfileHeaderSection(
|
||||||
avatarUrl = null,
|
avatarUrl = null,
|
||||||
userId = UserId("@alice:example.com"),
|
userId = UserId("@alice:example.com"),
|
||||||
userName = "Alice",
|
userName = USER_NAME_ALICE,
|
||||||
verificationState = UserProfileVerificationState.VERIFIED,
|
verificationState = UserProfileVerificationState.VERIFIED,
|
||||||
openAvatarPreview = {},
|
openAvatarPreview = {},
|
||||||
onUserIdClick = {},
|
onUserIdClick = {},
|
||||||
@@ -154,7 +155,7 @@ internal fun UserProfileHeaderSectionWithVerificationViolationPreview() = Elemen
|
|||||||
UserProfileHeaderSection(
|
UserProfileHeaderSection(
|
||||||
avatarUrl = null,
|
avatarUrl = null,
|
||||||
userId = UserId("@alice:example.com"),
|
userId = UserId("@alice:example.com"),
|
||||||
userName = "Alice",
|
userName = USER_NAME_ALICE,
|
||||||
verificationState = UserProfileVerificationState.VERIFICATION_VIOLATION,
|
verificationState = UserProfileVerificationState.VERIFICATION_VIOLATION,
|
||||||
openAvatarPreview = {},
|
openAvatarPreview = {},
|
||||||
onUserIdClick = {},
|
onUserIdClick = {},
|
||||||
|
|||||||
+3
-2
@@ -12,6 +12,7 @@ import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
|||||||
import io.element.android.features.verifysession.impl.incoming.IncomingVerificationState.Step
|
import io.element.android.features.verifysession.impl.incoming.IncomingVerificationState.Step
|
||||||
import io.element.android.features.verifysession.impl.ui.aDecimalsSessionVerificationData
|
import io.element.android.features.verifysession.impl.ui.aDecimalsSessionVerificationData
|
||||||
import io.element.android.features.verifysession.impl.ui.aEmojisSessionVerificationData
|
import io.element.android.features.verifysession.impl.ui.aEmojisSessionVerificationData
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_ALICE
|
||||||
import io.element.android.libraries.matrix.api.core.DeviceId
|
import io.element.android.libraries.matrix.api.core.DeviceId
|
||||||
import io.element.android.libraries.matrix.api.core.FlowId
|
import io.element.android.libraries.matrix.api.core.FlowId
|
||||||
import io.element.android.libraries.matrix.api.core.UserId
|
import io.element.android.libraries.matrix.api.core.UserId
|
||||||
@@ -59,7 +60,7 @@ internal fun anIncomingSessionVerificationRequest() = VerificationRequest.Incomi
|
|||||||
details = SessionVerificationRequestDetails(
|
details = SessionVerificationRequestDetails(
|
||||||
senderProfile = MatrixUser(
|
senderProfile = MatrixUser(
|
||||||
userId = UserId("@alice:example.com"),
|
userId = UserId("@alice:example.com"),
|
||||||
displayName = "Alice",
|
displayName = USER_NAME_ALICE,
|
||||||
avatarUrl = null,
|
avatarUrl = null,
|
||||||
),
|
),
|
||||||
flowId = FlowId("1234"),
|
flowId = FlowId("1234"),
|
||||||
@@ -73,7 +74,7 @@ internal fun anIncomingUserVerificationRequest() = VerificationRequest.Incoming.
|
|||||||
details = SessionVerificationRequestDetails(
|
details = SessionVerificationRequestDetails(
|
||||||
senderProfile = MatrixUser(
|
senderProfile = MatrixUser(
|
||||||
userId = UserId("@alice:example.com"),
|
userId = UserId("@alice:example.com"),
|
||||||
displayName = "Alice",
|
displayName = USER_NAME_ALICE,
|
||||||
avatarUrl = null,
|
avatarUrl = null,
|
||||||
),
|
),
|
||||||
flowId = FlowId("1234"),
|
flowId = FlowId("1234"),
|
||||||
|
|||||||
+2
-1
@@ -29,6 +29,7 @@ import io.element.android.libraries.designsystem.components.avatar.AvatarSize
|
|||||||
import io.element.android.libraries.designsystem.components.avatar.AvatarType
|
import io.element.android.libraries.designsystem.components.avatar.AvatarType
|
||||||
import io.element.android.libraries.designsystem.preview.ElementPreview
|
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_ALICE
|
||||||
import io.element.android.libraries.designsystem.theme.components.Text
|
import io.element.android.libraries.designsystem.theme.components.Text
|
||||||
import io.element.android.libraries.designsystem.utils.CommonDrawables
|
import io.element.android.libraries.designsystem.utils.CommonDrawables
|
||||||
import io.element.android.libraries.matrix.api.core.UserId
|
import io.element.android.libraries.matrix.api.core.UserId
|
||||||
@@ -86,7 +87,7 @@ internal fun VerificationUserProfileContentPreview() = ElementPreview(
|
|||||||
VerificationUserProfileContent(
|
VerificationUserProfileContent(
|
||||||
user = MatrixUser(
|
user = MatrixUser(
|
||||||
userId = UserId("@alice:example.com"),
|
userId = UserId("@alice:example.com"),
|
||||||
displayName = "Alice",
|
displayName = USER_NAME_ALICE,
|
||||||
avatarUrl = "https://example.com/avatar.png",
|
avatarUrl = "https://example.com/avatar.png",
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|||||||
+2
-1
@@ -54,6 +54,7 @@ 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.AvatarSize
|
||||||
import io.element.android.libraries.designsystem.preview.ElementPreview
|
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_ALICE
|
||||||
import io.element.android.libraries.designsystem.utils.CommonDrawables
|
import io.element.android.libraries.designsystem.utils.CommonDrawables
|
||||||
|
|
||||||
private val PIN_WIDTH = 42.dp
|
private val PIN_WIDTH = 42.dp
|
||||||
@@ -395,7 +396,7 @@ private object LocationPinRenderer {
|
|||||||
internal fun LocationPinPreview() = ElementPreview {
|
internal fun LocationPinPreview() = ElementPreview {
|
||||||
val sampleAvatarData = AvatarData(
|
val sampleAvatarData = AvatarData(
|
||||||
id = "@alice:matrix.org",
|
id = "@alice:matrix.org",
|
||||||
name = "Alice",
|
name = USER_NAME_ALICE,
|
||||||
url = null,
|
url = null,
|
||||||
size = AvatarSize.SelectedUser
|
size = AvatarSize.SelectedUser
|
||||||
)
|
)
|
||||||
|
|||||||
+4
-2
@@ -8,10 +8,12 @@
|
|||||||
|
|
||||||
package io.element.android.libraries.designsystem.components.avatar
|
package io.element.android.libraries.designsystem.components.avatar
|
||||||
|
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_ALICE
|
||||||
|
|
||||||
fun anAvatarData(
|
fun anAvatarData(
|
||||||
// Let's the id not start with a 'a'.
|
// Let the id not start with a 'a'.
|
||||||
id: String = "@id_of_alice:server.org",
|
id: String = "@id_of_alice:server.org",
|
||||||
name: String? = "Alice",
|
name: String? = USER_NAME_ALICE,
|
||||||
url: String? = null,
|
url: String? = null,
|
||||||
size: AvatarSize = AvatarSize.RoomListItem,
|
size: AvatarSize = AvatarSize.RoomListItem,
|
||||||
) = AvatarData(
|
) = AvatarData(
|
||||||
|
|||||||
+4
-2
@@ -29,6 +29,8 @@ import androidx.compose.ui.tooling.preview.Preview
|
|||||||
import androidx.compose.ui.unit.LayoutDirection
|
import androidx.compose.ui.unit.LayoutDirection
|
||||||
import io.element.android.libraries.designsystem.preview.ElementThemedPreview
|
import io.element.android.libraries.designsystem.preview.ElementThemedPreview
|
||||||
import io.element.android.libraries.designsystem.preview.PreviewGroup
|
import io.element.android.libraries.designsystem.preview.PreviewGroup
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_ALICE
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_BOB
|
||||||
import io.element.android.libraries.designsystem.text.toPx
|
import io.element.android.libraries.designsystem.text.toPx
|
||||||
import io.element.android.libraries.testtags.TestTags
|
import io.element.android.libraries.testtags.TestTags
|
||||||
import io.element.android.libraries.testtags.testTag
|
import io.element.android.libraries.testtags.testTag
|
||||||
@@ -116,12 +118,12 @@ internal fun DmAvatarsPreview() = ElementThemedPreview {
|
|||||||
DmAvatars(
|
DmAvatars(
|
||||||
userAvatarData = anAvatarData(
|
userAvatarData = anAvatarData(
|
||||||
id = "Alice",
|
id = "Alice",
|
||||||
name = "Alice",
|
name = USER_NAME_ALICE,
|
||||||
size = size,
|
size = size,
|
||||||
),
|
),
|
||||||
otherUserAvatarData = anAvatarData(
|
otherUserAvatarData = anAvatarData(
|
||||||
id = "Bob",
|
id = "Bob",
|
||||||
name = "Bob",
|
name = USER_NAME_BOB,
|
||||||
size = size,
|
size = size,
|
||||||
),
|
),
|
||||||
openAvatarPreview = {},
|
openAvatarPreview = {},
|
||||||
|
|||||||
+27
@@ -0,0 +1,27 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2026 Element Creations Ltd.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial.
|
||||||
|
* Please see LICENSE files in the repository root for full details.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package io.element.android.libraries.designsystem.preview
|
||||||
|
|
||||||
|
const val USER_NAME_ALICE = "Alice"
|
||||||
|
const val USER_NAME_BOB = "Bob"
|
||||||
|
const val USER_NAME_CHARLIE = "Charlie"
|
||||||
|
const val USER_NAME_CAROL = "Carol"
|
||||||
|
const val USER_NAME_DAVID = "David"
|
||||||
|
const val USER_NAME_EVE = "Eve"
|
||||||
|
const val USER_NAME_JOHN_DOE = "John Doe"
|
||||||
|
const val USER_NAME_JUSTIN = "Justin"
|
||||||
|
const val USER_NAME_MALLORY = "Mallory"
|
||||||
|
const val USER_NAME_SENDER = "Sender"
|
||||||
|
const val USER_NAME_SUSIE = "Susie"
|
||||||
|
const val USER_NAME_VICTOR = "Victor"
|
||||||
|
const val USER_NAME_WALTER = "Walter"
|
||||||
|
|
||||||
|
const val ROOM_NAME = "Room name"
|
||||||
|
const val SPACE_NAME = "Space name"
|
||||||
|
|
||||||
|
const val LAST_MESSAGE = "Last message"
|
||||||
+3
-2
@@ -22,6 +22,7 @@ import io.element.android.libraries.designsystem.components.avatar.AvatarSize
|
|||||||
import io.element.android.libraries.designsystem.components.avatar.AvatarType
|
import io.element.android.libraries.designsystem.components.avatar.AvatarType
|
||||||
import io.element.android.libraries.designsystem.preview.ElementPreview
|
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_BOB
|
||||||
import io.element.android.libraries.designsystem.theme.components.Text
|
import io.element.android.libraries.designsystem.theme.components.Text
|
||||||
import io.element.android.libraries.matrix.api.core.UserId
|
import io.element.android.libraries.matrix.api.core.UserId
|
||||||
import io.element.android.libraries.matrix.ui.model.InviteSender
|
import io.element.android.libraries.matrix.ui.model.InviteSender
|
||||||
@@ -57,10 +58,10 @@ internal fun InviteSenderViewPreview() = ElementPreview {
|
|||||||
InviteSenderView(
|
InviteSenderView(
|
||||||
inviteSender = InviteSender(
|
inviteSender = InviteSender(
|
||||||
userId = UserId("@bob:example.com"),
|
userId = UserId("@bob:example.com"),
|
||||||
displayName = "Bob",
|
displayName = USER_NAME_BOB,
|
||||||
avatarData = AvatarData(
|
avatarData = AvatarData(
|
||||||
id = "@bob:example.com",
|
id = "@bob:example.com",
|
||||||
name = "Bob",
|
name = USER_NAME_BOB,
|
||||||
url = null,
|
url = null,
|
||||||
size = AvatarSize.InviteSender,
|
size = AvatarSize.InviteSender,
|
||||||
),
|
),
|
||||||
|
|||||||
+26
-15
@@ -9,6 +9,17 @@
|
|||||||
package io.element.android.libraries.matrix.ui.components
|
package io.element.android.libraries.matrix.ui.components
|
||||||
|
|
||||||
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_ALICE
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_BOB
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_CAROL
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_DAVID
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_EVE
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_JOHN_DOE
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_JUSTIN
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_MALLORY
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_SUSIE
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_VICTOR
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_WALTER
|
||||||
import io.element.android.libraries.matrix.api.core.UserId
|
import io.element.android.libraries.matrix.api.core.UserId
|
||||||
import io.element.android.libraries.matrix.api.user.MatrixUser
|
import io.element.android.libraries.matrix.api.user.MatrixUser
|
||||||
|
|
||||||
@@ -23,30 +34,30 @@ open class MatrixUserProvider : PreviewParameterProvider<MatrixUser> {
|
|||||||
open class MatrixUserWithAvatarProvider : PreviewParameterProvider<MatrixUser?> {
|
open class MatrixUserWithAvatarProvider : PreviewParameterProvider<MatrixUser?> {
|
||||||
override val values: Sequence<MatrixUser?>
|
override val values: Sequence<MatrixUser?>
|
||||||
get() = sequenceOf(
|
get() = sequenceOf(
|
||||||
aMatrixUser(displayName = "John Doe"),
|
aMatrixUser(displayName = USER_NAME_JOHN_DOE),
|
||||||
aMatrixUser(displayName = "John Doe", avatarUrl = "anUrl"),
|
aMatrixUser(displayName = USER_NAME_JOHN_DOE, avatarUrl = "anUrl"),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun aMatrixUser(
|
fun aMatrixUser(
|
||||||
id: String = "@id_of_alice:server.org",
|
id: String? = null,
|
||||||
displayName: String? = "Alice",
|
displayName: String? = USER_NAME_ALICE,
|
||||||
avatarUrl: String? = null,
|
avatarUrl: String? = null,
|
||||||
) = MatrixUser(
|
) = MatrixUser(
|
||||||
userId = UserId(id),
|
userId = UserId(id ?: "@${displayName?.lowercase()?.replace(" ", "_") ?: "id"}:server.org"),
|
||||||
displayName = displayName,
|
displayName = displayName,
|
||||||
avatarUrl = avatarUrl,
|
avatarUrl = avatarUrl,
|
||||||
)
|
)
|
||||||
|
|
||||||
fun aMatrixUserList() = listOf(
|
fun aMatrixUserList() = listOf(
|
||||||
aMatrixUser("@alice:server.org", "Alice"),
|
aMatrixUser(displayName = USER_NAME_ALICE),
|
||||||
aMatrixUser("@bob:server.org", "Bob"),
|
aMatrixUser(displayName = USER_NAME_BOB),
|
||||||
aMatrixUser("@carol:server.org", "Carol"),
|
aMatrixUser(displayName = USER_NAME_CAROL),
|
||||||
aMatrixUser("@david:server.org", "David"),
|
aMatrixUser(displayName = USER_NAME_DAVID),
|
||||||
aMatrixUser("@eve:server.org", "Eve"),
|
aMatrixUser(displayName = USER_NAME_EVE),
|
||||||
aMatrixUser("@justin:server.org", "Justin"),
|
aMatrixUser(displayName = USER_NAME_JUSTIN),
|
||||||
aMatrixUser("@mallory:server.org", "Mallory"),
|
aMatrixUser(displayName = USER_NAME_MALLORY),
|
||||||
aMatrixUser("@susie:server.org", "Susie"),
|
aMatrixUser(displayName = USER_NAME_SUSIE),
|
||||||
aMatrixUser("@victor:server.org", "Victor"),
|
aMatrixUser(displayName = USER_NAME_VICTOR),
|
||||||
aMatrixUser("@walter:server.org", "Walter"),
|
aMatrixUser(displayName = USER_NAME_WALTER),
|
||||||
)
|
)
|
||||||
|
|||||||
+2
-1
@@ -27,6 +27,7 @@ import io.element.android.libraries.designsystem.components.avatar.AvatarType
|
|||||||
import io.element.android.libraries.designsystem.components.avatar.anAvatarData
|
import io.element.android.libraries.designsystem.components.avatar.anAvatarData
|
||||||
import io.element.android.libraries.designsystem.preview.ElementPreview
|
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||||
|
import io.element.android.libraries.designsystem.preview.SPACE_NAME
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Ref: https://www.figma.com/design/G1xy0HDZKJf5TCRFmKb5d5/Compound-Android-Components?node-id=3643-2048&m=dev
|
* Ref: https://www.figma.com/design/G1xy0HDZKJf5TCRFmKb5d5/Compound-Android-Components?node-id=3643-2048&m=dev
|
||||||
@@ -72,7 +73,7 @@ internal fun OrganizationHeaderPreview() = ElementPreview {
|
|||||||
url = "anUrl",
|
url = "anUrl",
|
||||||
size = AvatarSize.OrganizationHeader,
|
size = AvatarSize.OrganizationHeader,
|
||||||
),
|
),
|
||||||
name = "Space name",
|
name = SPACE_NAME,
|
||||||
numberOfSpaces = 9,
|
numberOfSpaces = 9,
|
||||||
numberOfRooms = 88,
|
numberOfRooms = 88,
|
||||||
)
|
)
|
||||||
|
|||||||
+2
-1
@@ -18,6 +18,7 @@ import io.element.android.libraries.designsystem.components.avatar.AvatarSize
|
|||||||
import io.element.android.libraries.designsystem.components.avatar.AvatarType
|
import io.element.android.libraries.designsystem.components.avatar.AvatarType
|
||||||
import io.element.android.libraries.designsystem.preview.ElementPreview
|
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_JOHN_DOE
|
||||||
import io.element.android.libraries.matrix.api.user.MatrixUser
|
import io.element.android.libraries.matrix.api.user.MatrixUser
|
||||||
import io.element.android.libraries.matrix.ui.model.getAvatarData
|
import io.element.android.libraries.matrix.ui.model.getAvatarData
|
||||||
import io.element.android.libraries.matrix.ui.model.getBestName
|
import io.element.android.libraries.matrix.ui.model.getBestName
|
||||||
@@ -58,7 +59,7 @@ internal fun SelectedUserRtlPreview() = CompositionLocalProvider(
|
|||||||
) {
|
) {
|
||||||
ElementPreview {
|
ElementPreview {
|
||||||
SelectedUser(
|
SelectedUser(
|
||||||
matrixUser = aMatrixUser(displayName = "John Doe"),
|
matrixUser = aMatrixUser(displayName = USER_NAME_JOHN_DOE),
|
||||||
canRemove = true,
|
canRemove = true,
|
||||||
onUserRemove = {},
|
onUserRemove = {},
|
||||||
)
|
)
|
||||||
|
|||||||
+10
-5
@@ -30,6 +30,11 @@ import io.element.android.libraries.designsystem.components.avatar.AvatarType
|
|||||||
import io.element.android.libraries.designsystem.components.avatar.anAvatarData
|
import io.element.android.libraries.designsystem.components.avatar.anAvatarData
|
||||||
import io.element.android.libraries.designsystem.preview.ElementPreview
|
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||||
|
import io.element.android.libraries.designsystem.preview.SPACE_NAME
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_ALICE
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_BOB
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_CHARLIE
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_DAVID
|
||||||
import io.element.android.libraries.matrix.api.core.RoomAlias
|
import io.element.android.libraries.matrix.api.core.RoomAlias
|
||||||
import io.element.android.libraries.matrix.api.spaces.SpaceRoomVisibility
|
import io.element.android.libraries.matrix.api.spaces.SpaceRoomVisibility
|
||||||
import io.element.android.libraries.matrix.api.user.MatrixUser
|
import io.element.android.libraries.matrix.api.user.MatrixUser
|
||||||
@@ -115,15 +120,15 @@ internal fun SpaceHeaderViewPreview() = ElementPreview {
|
|||||||
size = AvatarSize.SpaceHeader,
|
size = AvatarSize.SpaceHeader,
|
||||||
),
|
),
|
||||||
alias = RoomAlias("#spaceAlias:matrix.org"),
|
alias = RoomAlias("#spaceAlias:matrix.org"),
|
||||||
name = "Space name",
|
name = SPACE_NAME,
|
||||||
topic = "Space topic: " + LoremIpsum(40).values.first(),
|
topic = "Space topic: " + LoremIpsum(40).values.first(),
|
||||||
topicMaxLines = 2,
|
topicMaxLines = 2,
|
||||||
visibility = SpaceRoomVisibility.Public,
|
visibility = SpaceRoomVisibility.Public,
|
||||||
heroes = persistentListOf(
|
heroes = persistentListOf(
|
||||||
aMatrixUser(id = "@1:d", displayName = "Alice", avatarUrl = "aUrl"),
|
aMatrixUser(id = "@1:d", displayName = USER_NAME_ALICE, avatarUrl = "aUrl"),
|
||||||
aMatrixUser(id = "@2:d", displayName = "Bob"),
|
aMatrixUser(id = "@2:d", displayName = USER_NAME_BOB),
|
||||||
aMatrixUser(id = "@3:d", displayName = "Charlie", avatarUrl = "aUrl"),
|
aMatrixUser(id = "@3:d", displayName = USER_NAME_CHARLIE, avatarUrl = "aUrl"),
|
||||||
aMatrixUser(id = "@4:d", displayName = "Dave"),
|
aMatrixUser(id = "@4:d", displayName = USER_NAME_DAVID),
|
||||||
),
|
),
|
||||||
numberOfMembers = 999,
|
numberOfMembers = 999,
|
||||||
)
|
)
|
||||||
|
|||||||
+8
-4
@@ -22,6 +22,10 @@ import io.element.android.libraries.designsystem.components.avatar.AvatarSize
|
|||||||
import io.element.android.libraries.designsystem.components.avatar.AvatarType
|
import io.element.android.libraries.designsystem.components.avatar.AvatarType
|
||||||
import io.element.android.libraries.designsystem.preview.ElementPreview
|
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_ALICE
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_BOB
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_CHARLIE
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_DAVID
|
||||||
import io.element.android.libraries.designsystem.theme.components.Text
|
import io.element.android.libraries.designsystem.theme.components.Text
|
||||||
import io.element.android.libraries.designsystem.utils.CommonDrawables
|
import io.element.android.libraries.designsystem.utils.CommonDrawables
|
||||||
import io.element.android.libraries.matrix.api.user.MatrixUser
|
import io.element.android.libraries.matrix.api.user.MatrixUser
|
||||||
@@ -98,10 +102,10 @@ internal fun SpaceMembersViewPreview() = ElementPreview(
|
|||||||
) {
|
) {
|
||||||
SpaceMembersView(
|
SpaceMembersView(
|
||||||
heroes = persistentListOf(
|
heroes = persistentListOf(
|
||||||
aMatrixUser(id = "@1:d", displayName = "Alice", avatarUrl = "aUrl"),
|
aMatrixUser(id = "@1:d", displayName = USER_NAME_ALICE, avatarUrl = "aUrl"),
|
||||||
aMatrixUser(id = "@2:d", displayName = "Bob"),
|
aMatrixUser(id = "@2:d", displayName = USER_NAME_BOB),
|
||||||
aMatrixUser(id = "@3:d", displayName = "Charlie", avatarUrl = "aUrl"),
|
aMatrixUser(id = "@3:d", displayName = USER_NAME_CHARLIE, avatarUrl = "aUrl"),
|
||||||
aMatrixUser(id = "@4:d", displayName = "Dave"),
|
aMatrixUser(id = "@4:d", displayName = USER_NAME_DAVID),
|
||||||
),
|
),
|
||||||
numberOfMembers = 123,
|
numberOfMembers = 123,
|
||||||
)
|
)
|
||||||
|
|||||||
+6
-4
@@ -9,6 +9,8 @@
|
|||||||
package io.element.android.libraries.matrix.ui.components
|
package io.element.android.libraries.matrix.ui.components
|
||||||
|
|
||||||
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||||
|
import io.element.android.libraries.designsystem.preview.SPACE_NAME
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_ALICE
|
||||||
import io.element.android.libraries.matrix.api.core.RoomId
|
import io.element.android.libraries.matrix.api.core.RoomId
|
||||||
import io.element.android.libraries.matrix.api.room.CurrentUserMembership
|
import io.element.android.libraries.matrix.api.room.CurrentUserMembership
|
||||||
import io.element.android.libraries.matrix.api.room.RoomType
|
import io.element.android.libraries.matrix.api.room.RoomType
|
||||||
@@ -28,10 +30,10 @@ class SpaceRoomProvider : PreviewParameterProvider<SpaceRoom> {
|
|||||||
state = CurrentUserMembership.LEFT,
|
state = CurrentUserMembership.LEFT,
|
||||||
),
|
),
|
||||||
aSpaceRoom(
|
aSpaceRoom(
|
||||||
displayName = "Alice",
|
displayName = SPACE_NAME,
|
||||||
roomType = RoomType.Room,
|
roomType = RoomType.Room,
|
||||||
isDirect = true,
|
isDirect = true,
|
||||||
heroes = listOf(aMatrixUser(displayName = "Alice")),
|
heroes = listOf(aMatrixUser(displayName = USER_NAME_ALICE)),
|
||||||
state = CurrentUserMembership.JOINED,
|
state = CurrentUserMembership.JOINED,
|
||||||
numJoinedMembers = 2,
|
numJoinedMembers = 2,
|
||||||
),
|
),
|
||||||
@@ -69,9 +71,9 @@ class SpaceRoomProvider : PreviewParameterProvider<SpaceRoom> {
|
|||||||
state = CurrentUserMembership.INVITED,
|
state = CurrentUserMembership.INVITED,
|
||||||
),
|
),
|
||||||
aSpaceRoom(
|
aSpaceRoom(
|
||||||
displayName = "Alice",
|
displayName = SPACE_NAME,
|
||||||
roomType = RoomType.Space,
|
roomType = RoomType.Space,
|
||||||
heroes = listOf(aMatrixUser(displayName = "Alice")),
|
heroes = listOf(aMatrixUser(displayName = USER_NAME_ALICE)),
|
||||||
state = CurrentUserMembership.JOINED,
|
state = CurrentUserMembership.JOINED,
|
||||||
numJoinedMembers = 2,
|
numJoinedMembers = 2,
|
||||||
),
|
),
|
||||||
|
|||||||
+2
-1
@@ -9,6 +9,7 @@
|
|||||||
package io.element.android.libraries.matrix.ui.messages.reply
|
package io.element.android.libraries.matrix.ui.messages.reply
|
||||||
|
|
||||||
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_SENDER
|
||||||
import io.element.android.libraries.matrix.api.core.EventId
|
import io.element.android.libraries.matrix.api.core.EventId
|
||||||
import io.element.android.libraries.matrix.api.core.UserId
|
import io.element.android.libraries.matrix.api.core.UserId
|
||||||
import io.element.android.libraries.matrix.api.media.MediaSource
|
import io.element.android.libraries.matrix.api.media.MediaSource
|
||||||
@@ -159,7 +160,7 @@ private fun aInReplyToDetails(
|
|||||||
)
|
)
|
||||||
|
|
||||||
fun aProfileDetailsReady(
|
fun aProfileDetailsReady(
|
||||||
displayName: String? = "Sender",
|
displayName: String? = USER_NAME_SENDER,
|
||||||
displayNameAmbiguous: Boolean = false,
|
displayNameAmbiguous: Boolean = false,
|
||||||
avatarUrl: String? = null,
|
avatarUrl: String? = null,
|
||||||
) = ProfileDetails.Ready(
|
) = ProfileDetails.Ready(
|
||||||
|
|||||||
+2
-1
@@ -9,6 +9,7 @@
|
|||||||
package io.element.android.libraries.mediaviewer.impl.details
|
package io.element.android.libraries.mediaviewer.impl.details
|
||||||
|
|
||||||
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_ALICE
|
||||||
import io.element.android.libraries.matrix.api.core.EventId
|
import io.element.android.libraries.matrix.api.core.EventId
|
||||||
import io.element.android.libraries.matrix.api.media.MediaSource
|
import io.element.android.libraries.matrix.api.media.MediaSource
|
||||||
import io.element.android.libraries.mediaviewer.api.MediaInfo
|
import io.element.android.libraries.mediaviewer.api.MediaInfo
|
||||||
@@ -26,7 +27,7 @@ open class MediaBottomSheetStateDeleteConfirmationProvider : PreviewParameterPro
|
|||||||
|
|
||||||
fun aMediaBottomSheetStateDeleteConfirmation(
|
fun aMediaBottomSheetStateDeleteConfirmation(
|
||||||
mediaInfo: MediaInfo = anImageMediaInfo(
|
mediaInfo: MediaInfo = anImageMediaInfo(
|
||||||
senderName = "Alice",
|
senderName = USER_NAME_ALICE,
|
||||||
),
|
),
|
||||||
thumbnailSource: MediaSource? = null,
|
thumbnailSource: MediaSource? = null,
|
||||||
) = MediaBottomSheetState.DeleteConfirmation(
|
) = MediaBottomSheetState.DeleteConfirmation(
|
||||||
|
|||||||
+2
-1
@@ -8,6 +8,7 @@
|
|||||||
package io.element.android.libraries.mediaviewer.impl.details
|
package io.element.android.libraries.mediaviewer.impl.details
|
||||||
|
|
||||||
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_ALICE
|
||||||
import io.element.android.libraries.matrix.api.core.EventId
|
import io.element.android.libraries.matrix.api.core.EventId
|
||||||
import io.element.android.libraries.mediaviewer.api.MediaInfo
|
import io.element.android.libraries.mediaviewer.api.MediaInfo
|
||||||
import io.element.android.libraries.mediaviewer.api.anApkMediaInfo
|
import io.element.android.libraries.mediaviewer.api.anApkMediaInfo
|
||||||
@@ -35,7 +36,7 @@ fun aMediaBottomSheetStateDetails(
|
|||||||
eventId: EventId? = EventId($$"$eventId"),
|
eventId: EventId? = EventId($$"$eventId"),
|
||||||
canDelete: Boolean = true,
|
canDelete: Boolean = true,
|
||||||
mediaInfo: MediaInfo = anImageMediaInfo(
|
mediaInfo: MediaInfo = anImageMediaInfo(
|
||||||
senderName = "Alice",
|
senderName = USER_NAME_ALICE,
|
||||||
dateSentFull = "December 6, 2024 at 12:59",
|
dateSentFull = "December 6, 2024 at 12:59",
|
||||||
),
|
),
|
||||||
) = MediaBottomSheetState.Details(
|
) = MediaBottomSheetState.Details(
|
||||||
|
|||||||
+2
-1
@@ -11,6 +11,7 @@ package io.element.android.libraries.mediaviewer.impl.gallery
|
|||||||
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||||
import io.element.android.libraries.architecture.AsyncData
|
import io.element.android.libraries.architecture.AsyncData
|
||||||
import io.element.android.libraries.designsystem.components.media.WaveFormSamples
|
import io.element.android.libraries.designsystem.components.media.WaveFormSamples
|
||||||
|
import io.element.android.libraries.designsystem.preview.ROOM_NAME
|
||||||
import io.element.android.libraries.matrix.api.core.UniqueId
|
import io.element.android.libraries.matrix.api.core.UniqueId
|
||||||
import io.element.android.libraries.mediaviewer.impl.details.MediaBottomSheetState
|
import io.element.android.libraries.mediaviewer.impl.details.MediaBottomSheetState
|
||||||
import io.element.android.libraries.mediaviewer.impl.details.aMediaBottomSheetStateDetails
|
import io.element.android.libraries.mediaviewer.impl.details.aMediaBottomSheetStateDetails
|
||||||
@@ -112,7 +113,7 @@ open class MediaGalleryStateProvider : PreviewParameterProvider<MediaGalleryStat
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun aMediaGalleryState(
|
private fun aMediaGalleryState(
|
||||||
roomName: String = "Room name",
|
roomName: String = ROOM_NAME,
|
||||||
mode: MediaGalleryMode = MediaGalleryMode.Images,
|
mode: MediaGalleryMode = MediaGalleryMode.Images,
|
||||||
groupedMediaItems: AsyncData<GroupedMediaItems> = AsyncData.Uninitialized,
|
groupedMediaItems: AsyncData<GroupedMediaItems> = AsyncData.Uninitialized,
|
||||||
mediaBottomSheetState: MediaBottomSheetState = MediaBottomSheetState.Hidden,
|
mediaBottomSheetState: MediaBottomSheetState = MediaBottomSheetState.Hidden,
|
||||||
|
|||||||
+2
-1
@@ -13,6 +13,7 @@ import androidx.compose.runtime.mutableStateOf
|
|||||||
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||||
import io.element.android.libraries.architecture.AsyncData
|
import io.element.android.libraries.architecture.AsyncData
|
||||||
import io.element.android.libraries.designsystem.components.media.WaveFormSamples
|
import io.element.android.libraries.designsystem.components.media.WaveFormSamples
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_ALICE
|
||||||
import io.element.android.libraries.matrix.api.core.EventId
|
import io.element.android.libraries.matrix.api.core.EventId
|
||||||
import io.element.android.libraries.matrix.api.media.MediaSource
|
import io.element.android.libraries.matrix.api.media.MediaSource
|
||||||
import io.element.android.libraries.matrix.api.timeline.Timeline
|
import io.element.android.libraries.matrix.api.timeline.Timeline
|
||||||
@@ -179,7 +180,7 @@ open class MediaViewerStateProvider : PreviewParameterProvider<MediaViewerState>
|
|||||||
)
|
)
|
||||||
),
|
),
|
||||||
anImageMediaInfo(
|
anImageMediaInfo(
|
||||||
senderName = "Alice",
|
senderName = USER_NAME_ALICE,
|
||||||
dateSent = "21 NOV, 2024",
|
dateSent = "21 NOV, 2024",
|
||||||
caption = LONG_CAPTION,
|
caption = LONG_CAPTION,
|
||||||
).let {
|
).let {
|
||||||
|
|||||||
+20
-10
@@ -8,6 +8,16 @@
|
|||||||
|
|
||||||
package io.element.android.libraries.previewutils.room
|
package io.element.android.libraries.previewutils.room
|
||||||
|
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_ALICE
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_BOB
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_CAROL
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_DAVID
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_EVE
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_JUSTIN
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_MALLORY
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_SUSIE
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_VICTOR
|
||||||
|
import io.element.android.libraries.designsystem.preview.USER_NAME_WALTER
|
||||||
import io.element.android.libraries.matrix.api.core.UserId
|
import io.element.android.libraries.matrix.api.core.UserId
|
||||||
import io.element.android.libraries.matrix.api.room.RoomMember
|
import io.element.android.libraries.matrix.api.room.RoomMember
|
||||||
import io.element.android.libraries.matrix.api.room.RoomMembershipState
|
import io.element.android.libraries.matrix.api.room.RoomMembershipState
|
||||||
@@ -38,27 +48,27 @@ fun aRoomMember(
|
|||||||
fun aRoomMemberList() = persistentListOf(
|
fun aRoomMemberList() = persistentListOf(
|
||||||
anAlice(),
|
anAlice(),
|
||||||
aBob(),
|
aBob(),
|
||||||
aRoomMember(UserId("@carol:server.org"), "Carol"),
|
aRoomMember(UserId("@carol:server.org"), USER_NAME_CAROL),
|
||||||
aRoomMember(UserId("@david:server.org"), "David"),
|
aRoomMember(UserId("@david:server.org"), USER_NAME_DAVID),
|
||||||
aRoomMember(UserId("@eve:server.org"), "Eve"),
|
aRoomMember(UserId("@eve:server.org"), USER_NAME_EVE),
|
||||||
aRoomMember(UserId("@justin:server.org"), "Justin"),
|
aRoomMember(UserId("@justin:server.org"), USER_NAME_JUSTIN),
|
||||||
aRoomMember(UserId("@mallory:server.org"), "Mallory"),
|
aRoomMember(UserId("@mallory:server.org"), USER_NAME_MALLORY),
|
||||||
aRoomMember(UserId("@susie:server.org"), "Susie"),
|
aRoomMember(UserId("@susie:server.org"), USER_NAME_SUSIE),
|
||||||
aVictor(),
|
aVictor(),
|
||||||
aWalter(),
|
aWalter(),
|
||||||
)
|
)
|
||||||
|
|
||||||
fun anAlice() = aRoomMember(UserId("@alice:server.org"), "Alice", role = RoomMember.Role.Admin)
|
fun anAlice() = aRoomMember(UserId("@alice:server.org"), USER_NAME_ALICE, role = RoomMember.Role.Admin)
|
||||||
fun aBob() = aRoomMember(UserId("@bob:server.org"), "Bob", role = RoomMember.Role.Moderator)
|
fun aBob() = aRoomMember(UserId("@bob:server.org"), USER_NAME_BOB, role = RoomMember.Role.Moderator)
|
||||||
|
|
||||||
fun aVictor() = aRoomMember(
|
fun aVictor() = aRoomMember(
|
||||||
UserId("@victor:server.org"),
|
UserId("@victor:server.org"),
|
||||||
"Victor",
|
USER_NAME_VICTOR,
|
||||||
membership = RoomMembershipState.INVITE
|
membership = RoomMembershipState.INVITE
|
||||||
)
|
)
|
||||||
|
|
||||||
fun aWalter() = aRoomMember(
|
fun aWalter() = aRoomMember(
|
||||||
UserId("@walter:server.org"),
|
UserId("@walter:server.org"),
|
||||||
"Walter",
|
USER_NAME_WALTER,
|
||||||
membership = RoomMembershipState.INVITE
|
membership = RoomMembershipState.INVITE
|
||||||
)
|
)
|
||||||
|
|||||||
+2
-1
@@ -8,6 +8,7 @@
|
|||||||
|
|
||||||
package io.element.android.libraries.previewutils.room
|
package io.element.android.libraries.previewutils.room
|
||||||
|
|
||||||
|
import io.element.android.libraries.designsystem.preview.SPACE_NAME
|
||||||
import io.element.android.libraries.matrix.api.core.RoomAlias
|
import io.element.android.libraries.matrix.api.core.RoomAlias
|
||||||
import io.element.android.libraries.matrix.api.core.RoomId
|
import io.element.android.libraries.matrix.api.core.RoomId
|
||||||
import io.element.android.libraries.matrix.api.room.CurrentUserMembership
|
import io.element.android.libraries.matrix.api.room.CurrentUserMembership
|
||||||
@@ -19,7 +20,7 @@ import kotlinx.collections.immutable.toImmutableList
|
|||||||
|
|
||||||
fun aSpaceRoom(
|
fun aSpaceRoom(
|
||||||
rawName: String? = null,
|
rawName: String? = null,
|
||||||
displayName: String = "Space name",
|
displayName: String = SPACE_NAME,
|
||||||
avatarUrl: String? = null,
|
avatarUrl: String? = null,
|
||||||
canonicalAlias: RoomAlias? = null,
|
canonicalAlias: RoomAlias? = null,
|
||||||
childrenCount: Int = 0,
|
childrenCount: Int = 0,
|
||||||
|
|||||||
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:1da26fc2ffe2216cda7aa1b6b92ba587c9d0bb56aa54586b3073befee96d29b6
|
oid sha256:e83c8d052ce340010f97c4ef2750e4b921a129639a0004bd951f71c7348622bf
|
||||||
size 40956
|
size 40597
|
||||||
|
|||||||
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:be4cbe72c73d76252f902e122bd62ba51ff89cf2cb20ddd61ed6615e983c65cf
|
oid sha256:0a6ddec2c9743976674657e454cb14bb479d774f1aa13882a34ceb89ff75b179
|
||||||
size 25153
|
size 24424
|
||||||
|
|||||||
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:1a4be2c70eb477dbd58e4e6924d0141f1c8d7205807d968b3a34221c12a301c6
|
oid sha256:95e30b24d5a6571cf42a707a01f0458cf509428c9ab8333924e1679f6d4d4f31
|
||||||
size 36176
|
size 35778
|
||||||
|
|||||||
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:9176ee2b5b78032639d9f51f7680d82f7d3ca916fb587d914f12d075382d65f0
|
oid sha256:8e54c2c665235d6b4c45161b4fcc0b8f0a96ce7620bbed9f56e04ecb71916f3e
|
||||||
size 27077
|
size 26640
|
||||||
|
|||||||
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:76caf93913c979f3327dec4331d3a5bea5027df45c5cacf55a786b8f677e3162
|
oid sha256:c2fd721612e0620c3a4eac0f0835ac1d03ffb36ec45477340bb732ff1c63cc30
|
||||||
size 27340
|
size 26921
|
||||||
|
|||||||
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:e457b722fe403205f1394e7347dedb3aba308e48c979ea002399425c9a130fd2
|
oid sha256:7c7fc020ec4bcb2f67a3a534a621e71233488b469b24e6bd6d3efa42f9f944a1
|
||||||
size 20667
|
size 20263
|
||||||
|
|||||||
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:6a0202d081e5aed85ca093239fae1c8f46d42fd6e859c818f5c0301597e5b473
|
oid sha256:a07bd9ac57c1fb6074b81134edcd169c2c7edc3dd19039766dabbfe8ccd5d8fb
|
||||||
size 41957
|
size 41621
|
||||||
|
|||||||
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:8d3a7ae9522da2911bf256273a4972020fc1677f026fbb9f17d27f549ab03ea3
|
oid sha256:fa1a7c175f6551680b1a71ddaac14014f6503ccc2928d4ad97eced8a80626ed4
|
||||||
size 25978
|
size 25158
|
||||||
|
|||||||
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:2ae20b874dba38a89a59e418bce33e748449446e0fc913b7f3ff2e87b8200c40
|
oid sha256:67bc6eac2128230323aa7dabb6896b98c4249e6fba9edb4d1769f36dbe031135
|
||||||
size 36568
|
size 36346
|
||||||
|
|||||||
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:74a4913734d0648115d5056052fa2de8a839bb5a4d2dfdaa3d8ed5f0eef2793d
|
oid sha256:a40fe5dc4a671ec2384265da36f3d42a3cadb2792823308a62dbd82423110652
|
||||||
size 27728
|
size 27552
|
||||||
|
|||||||
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:a4f8571893bf9292a7d298c7419ea2e3f0363e1c2eca8c5f6aaea7d39143039c
|
oid sha256:007aeb20270db25edcd3cf2e1ac8e4e0d714e08a043af0473c2263c1e79af452
|
||||||
size 27855
|
size 27634
|
||||||
|
|||||||
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:3d5b500d6275bc6ead5e8644b1afb1a0a829e91d4912444e5e0d431322343855
|
oid sha256:d644bc2a62596b923d782150334f60b1940730824af0b7a304d2fdfce85cd0e6
|
||||||
size 20700
|
size 20493
|
||||||
|
|||||||
LFS
BIN
Binary file not shown.
LFS
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:c8af941ad8e5b553b82aad8b39abd8b4876d67b6906acf0ee8e4715673d8b35a
|
oid sha256:80e8c8bf0bf9b34d3de0b0db7f67b84a667a9f510d6e9eefc708de25dd1ca5f8
|
||||||
size 81462
|
size 76725
|
||||||
|
|||||||
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:f776cecd5278761fe7904b63dd980804a6dc2d3e7acc37fb7ea71d6a1c1e63df
|
oid sha256:d7e8bc45d019ed73b4795f29b36c28411e8e20cd4bd231e76e8619e011b64b31
|
||||||
size 42505
|
size 40203
|
||||||
|
|||||||
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
LFS
BIN
Binary file not shown.
LFS
BIN
Binary file not shown.
LFS
BIN
Binary file not shown.
LFS
BIN
Binary file not shown.
LFS
BIN
Binary file not shown.
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:1a986526c80130e11a0ec9c6450e4cd77dc40ef4a09082a1c526eebabebf4c03
|
oid sha256:d372726c65f1887a8eba63f04301212780ef04410fd0758d314562f6899859ea
|
||||||
size 49746
|
size 46072
|
||||||
|
|||||||
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:d2ca690a89bebaa351990cab34155afcfa7a0b9f02312757fcb933ba97ab9310
|
oid sha256:ea6ea46123a211b87daadf29aa87588f4e0fa5e5c25ddc0307db490c72f865d5
|
||||||
size 101952
|
size 96925
|
||||||
|
|||||||
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_MatrixUserHeader_Day_0_en.png
LFS
BIN
Binary file not shown.
tests/uitests/src/test/snapshots/images/libraries.matrix.ui.components_MatrixUserHeader_Day_1_en.png
LFS
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
LFS
BIN
Binary file not shown.
LFS
BIN
Binary file not shown.
LFS
BIN
Binary file not shown.
LFS
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
LFS
BIN
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user