Merge pull request #6740 from element-hq/feature/bma/uiSample
Introduce UI sample
This commit is contained in:
commit
e6977ea85c
108 changed files with 412 additions and 274 deletions
|
|
@ -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,
|
||||||
|
|
|
||||||
|
|
@ -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()),
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -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(
|
||||||
|
|
|
||||||
|
|
@ -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")
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
|
|
|
||||||
|
|
@ -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(
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
|
|
|
||||||
|
|
@ -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),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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),
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -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"),
|
||||||
|
|
|
||||||
|
|
@ -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!",
|
||||||
|
|
|
||||||
|
|
@ -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(),
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -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(
|
||||||
|
|
|
||||||
|
|
@ -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 = {},
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -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(
|
||||||
|
|
|
||||||
|
|
@ -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,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,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
|
|
|
||||||
|
|
@ -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 = {},
|
||||||
|
|
|
||||||
|
|
@ -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"),
|
||||||
|
|
|
||||||
|
|
@ -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",
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -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(
|
||||||
|
|
|
||||||
|
|
@ -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 = {},
|
||||||
|
|
|
||||||
|
|
@ -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"
|
||||||
|
|
@ -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,
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -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),
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -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 = {},
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -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(
|
||||||
|
|
|
||||||
|
|
@ -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(
|
||||||
|
|
|
||||||
|
|
@ -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(
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
|
|
|
||||||
|
|
@ -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 {
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:95096ef9f55d57ea4774f8eaa91d92a01fd44eafd4670442d3db132ff843ede0
|
oid sha256:62fee8e8966ff4df0d951aff1d13e8578c9c5a55e89c4407dcc8077c9b1b72af
|
||||||
size 21476
|
size 22249
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:b53f36378be4b4da2608210cb3134923c6f4bf565652c80a1b45cad8216d67da
|
oid sha256:d3226560d55a9fde8175206c0ce21cb4cd90d900d357003496bf74b719281166
|
||||||
size 25485
|
size 26191
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:d549ca3000080a6d0c416d7a45d530da96c73184309048126be6304393bc74f9
|
oid sha256:643f712799406118deb87af3fab34e8838878dc04e0935b4e54dafaaebd03479
|
||||||
size 20082
|
size 20895
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:a61181eab30d30f56c5407bb42395a268ff80f7dd455ea04a468f92739e0a87f
|
oid sha256:c2638b57f0f4ab1876429f096065d121122eaca0b9b06600281526dbf51d7791
|
||||||
size 24194
|
size 24843
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:abc1526f441c218d39e44ef3f146d4fee3bbb0628c4ece25fb2ae4ef7e4100b0
|
oid sha256:13573edc4f14581b14a0238a66b6fdc040ccc02d49cd670c5e0ec1eb78b61bed
|
||||||
size 48820
|
size 48621
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:20c52bb8f44c186d3104d457c5de9c0597d99f0a5be37a9d8680fb4be35d422f
|
oid sha256:d3153640c7d5f5be8bc66424cce167c44f48497bf5d91a25963a1e2d5e506d6f
|
||||||
size 53777
|
size 53643
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:0805bac4bf9e1c5bb16b4f81b004bcc952563eef98101d8c9c6e856a414977d0
|
oid sha256:0dfea70e781debf7a293aee2967c3da314101020698fee97d3551e25f5f378d0
|
||||||
size 11219
|
size 10655
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:b61c5a72e8e63a1775d20717c78d8e68e46c7c22b8e4ab8c24154dc3d48d7d0e
|
oid sha256:33482ad6e5033800e911dab44d4ba5bec15cfa58749102c5da4e2c57a8e760e8
|
||||||
size 11428
|
size 9783
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:070163694fe10b465f2903ce2cc88f9ffc67d9489aa5a4e204cd087fd02b8642
|
oid sha256:62e127900d00756ecc806eb9d8efb6a11cd9cdcecae6b4bab643b7306a06be2b
|
||||||
size 11281
|
size 10435
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:da4e1512cd7a58ede774755b6e3ac427e90c437bbbadaea8479506af776999c3
|
oid sha256:e39bc143f7ee45c47ff57bfb53a773d7df2ba14568a9368643d8bab9dbbf4955
|
||||||
size 11323
|
size 9675
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:b094f8d20b4b946abcd95bbb0c1d64a0190a5c651b6f434dbd9aef2857a315a7
|
oid sha256:27249bb1a928cb325557c8aebf6de344b7cd7a16d3420e8711591f20a3eb36b1
|
||||||
size 19991
|
size 18947
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:a3fde1e89269c46ac8a6b4f0a05aad45bcc806f2a1b6108c09f7078209f7799c
|
oid sha256:a5f0abeb2bfbae8fc6b864ea2e6a90b4ab3bcfd3b9f5fa4a06c6a314bd194a5f
|
||||||
size 26574
|
size 25660
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:657e469b19b815ad54ef7ccd6a140d33031301de504690cb520c482f469fa8c4
|
oid sha256:4b372f9fd8570c977cd882f396004fe8fd0794ca3070a11394e0d6af6354987a
|
||||||
size 38559
|
size 38154
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:3f37ae64424323d6772fca7b43f175e8c02356833bed02bb9661acbfb102c194
|
oid sha256:c5e6a562525d8ded0fddb365beaef933d2701bcd4548e589bffd54e1bd0a3b11
|
||||||
size 19358
|
size 18087
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:d42e8795792b250696206f5f9fabcac3b7249b3709cf90d8f2503091769e5343
|
oid sha256:e22f1f07193011c1db785e3827e73d05d8bf96fd12559e3d7a744b2b978b7bf4
|
||||||
size 25324
|
size 24196
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:02a03b83eaf866a7a65ec26f57fa810a08ad7128d11d2db6ad203bf405a1bb05
|
oid sha256:a8a1a8fe51f741748817a0a1c497fc164d0e1e711ce458182a654b1fee8e5741
|
||||||
size 37097
|
size 36417
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:65446447e07a1a6cc08ed566e1aaea7a1209f1e1f5f752dec5e598819333761d
|
oid sha256:781bf8c86e88c9ee564f45de7446ee2eb554efe68ae9e708aa1b5bde7fce6d6b
|
||||||
size 34595
|
size 34137
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:e467732ff44f080bb1a698d4f6f2427480c5456980066ffd9ab6970b093c3d64
|
oid sha256:45c706bb63ab7df8e66898ec67fabbf8c227cac421b8c5eda84a2f6532c8f199
|
||||||
size 33206
|
size 32504
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:bb4d6bfb9c412de00a2b4956032dd42906b5451eb99e6ebb1880dc01f6b55af5
|
oid sha256:fbbe069eaeff3c1bfb39e4b3e3356e92864f10a57ca4ccb2029e38b5977b6f45
|
||||||
size 26077
|
size 25648
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:26bf76ccdb56d042422553f557d91d0f26d874a710f696ac106c5c2b5590d332
|
oid sha256:97e6bbc6cc6d5bb90606bc7f934258c8060d7ca5fade8da6a1aae288e8558bb4
|
||||||
size 38833
|
size 38390
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:b8c422787b67d477d3b7c8d5dee8879f33d47153dc93dd29bb3883e4ed863a41
|
oid sha256:2b14f8a5a50deb5dd4854665cd41511228f5ba47b0719bf35b4d1675d0f20ce1
|
||||||
size 25232
|
size 24527
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:8413aed02383572cfe8c481c6ba8b0db4cfb3402334c37f2d8b54a73fe4bf594
|
oid sha256:841042eabcd85626a5182108edae46b4514f84a8f22c57e324c02430536acff2
|
||||||
size 37343
|
size 36738
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:0805bac4bf9e1c5bb16b4f81b004bcc952563eef98101d8c9c6e856a414977d0
|
oid sha256:0dfea70e781debf7a293aee2967c3da314101020698fee97d3551e25f5f378d0
|
||||||
size 11219
|
size 10655
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:b61c5a72e8e63a1775d20717c78d8e68e46c7c22b8e4ab8c24154dc3d48d7d0e
|
oid sha256:33482ad6e5033800e911dab44d4ba5bec15cfa58749102c5da4e2c57a8e760e8
|
||||||
size 11428
|
size 9783
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:070163694fe10b465f2903ce2cc88f9ffc67d9489aa5a4e204cd087fd02b8642
|
oid sha256:62e127900d00756ecc806eb9d8efb6a11cd9cdcecae6b4bab643b7306a06be2b
|
||||||
size 11281
|
size 10435
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:da4e1512cd7a58ede774755b6e3ac427e90c437bbbadaea8479506af776999c3
|
oid sha256:e39bc143f7ee45c47ff57bfb53a773d7df2ba14568a9368643d8bab9dbbf4955
|
||||||
size 11323
|
size 9675
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:9aa5b37b57d1ef1f219e0c5213eab3eba3222bd0453988a5c708e15ba89d8fd4
|
oid sha256:4c37d48eb1fde1eb67cb3130505414c97486d1b40b49be9a6c0770b0ff9e50da
|
||||||
size 9772
|
size 9277
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:6a992addeb8525c7df4be04514c82e22c8c1269d7c14aa25497efaac50e844a8
|
oid sha256:00a060c5b66ee6febd8bfe145548aa3b2fa43ed0852e4224ab08a4641cfdc6b5
|
||||||
size 9410
|
size 8075
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:e850f65631de21c8cb44965f66e8ffbf0b1eecf2ed6f91e6669f0dc89ec0e4b3
|
oid sha256:4e283d48e8eb569f44576c158096ef0672146392411e2e768350ebaff9f71ee7
|
||||||
size 9784
|
size 9073
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:07b7d5515f0ca6e6634e8ff4b53c73f48b1170fe8d2488c7a8863d1568c52cdf
|
oid sha256:d23f245942d6353707c4252a05935b9d59a5a8ef380f351d0341b804413969ca
|
||||||
size 9420
|
size 8101
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:ca4b2ddcebb957944522673d20aafb967ef118ac1a8564f33a0c8745f0f7caf5
|
oid sha256:2a6797d1d45c1ef189dfffec805604b06dd7820976c834233a99fc803721b663
|
||||||
size 6268
|
size 6500
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:d56cc64425872a2dc1c12ab7d2e0d9fe43e89586e6f5f1805684350281baa6b8
|
oid sha256:acc4553e995907ecfaaf74c4e7bfdd9fd8ccf5cd6ba8396b25c110211c21975e
|
||||||
size 6744
|
size 6614
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:160abf1659329b6ddb61e9f3bbe9cc5cf4630242429093a8d2d579e0b6efd78d
|
oid sha256:2f93df7decca6ced4efe9f739d6f877b2411be874c0cf011a146a66e0ee2fb69
|
||||||
size 7687
|
size 7790
|
||||||
|
|
|
||||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue