@ -25,32 +25,75 @@ import io.element.android.libraries.matrix.api.room.RoomNotificationMode
@@ -25,32 +25,75 @@ import io.element.android.libraries.matrix.api.room.RoomNotificationMode
open class RoomListRoomSummaryProvider : PreviewParameterProvider < RoomListRoomSummary > {
override val values : Sequence < RoomListRoomSummary >
get ( ) = sequenceOf (
aRoomListRoomSummary ( ) ,
aRoomListRoomSummary ( ) . copy ( lastMessage = null ) ,
aRoomListRoomSummary ( ) . copy ( hasUnread = true , notificationMode = RoomNotificationMode . MENTIONS _AND _KEYWORDS _ONLY ) ,
aRoomListRoomSummary ( ) . copy ( timestamp = " 88:88 " , notificationMode = RoomNotificationMode . MENTIONS _AND _KEYWORDS _ONLY ) ,
aRoomListRoomSummary ( ) . copy ( timestamp = " 88:88 " , notificationMode = RoomNotificationMode . MUTE ) ,
aRoomListRoomSummary ( ) . copy ( timestamp = " 88:88 " , hasUnread = true ) ,
aRoomListRoomSummary ( ) . copy ( isPlaceholder = true , timestamp = " 88:88 " ) ,
aRoomListRoomSummary ( ) . copy (
name = " A very long room name that should be truncated " ,
lastMessage = " Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt " +
" ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea com " +
" modo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. " ,
timestamp = " yesterday " ,
hasUnread = true ,
listOf (
aRoomListRoomSummary ( isPlaceholder = true ) ,
aRoomListRoomSummary ( timestamp = null ) ,
aRoomListRoomSummary ( lastMessage = " Last message " ) ,
aRoomListRoomSummary (
name = " A very long room name that should be truncated " ,
lastMessage = " Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt " +
" ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea com " +
" modo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. " ,
timestamp = " yesterday " ,
numUnreadMessages = 1 ,
) ,
) ,
aRoomListRoomSummary ( ) . copy ( hasUnread = true , hasOngoingCall = true ) ,
)
listOf ( false , true ) . map { hasCall ->
listOf (
RoomNotificationMode . ALL _MESSAGES ,
RoomNotificationMode . MENTIONS _AND _KEYWORDS _ONLY ,
RoomNotificationMode . MUTE ,
) . map { roomNotificationMode ->
listOf (
aRoomListRoomSummary (
name = roomNotificationMode . name ,
lastMessage = " No activity " + if ( hasCall ) " , call " else " " ,
notificationMode = roomNotificationMode ,
numUnreadMessages = 0 ,
numUnreadMentions = 0 ,
hasOngoingCall = hasCall ,
) ,
aRoomListRoomSummary (
name = roomNotificationMode . name ,
lastMessage = " New messages " + if ( hasCall ) " , call " else " " ,
notificationMode = roomNotificationMode ,
numUnreadMessages = 1 ,
numUnreadMentions = 0 ,
hasOngoingCall = hasCall ,
) ,
aRoomListRoomSummary (
name = roomNotificationMode . name ,
lastMessage = " New messages, mentions " + if ( hasCall ) " , call " else " " ,
notificationMode = roomNotificationMode ,
numUnreadMessages = 1 ,
numUnreadMentions = 1 ,
hasOngoingCall = hasCall ,
) ,
)
} . flatten ( )
} . flatten ( ) ,
) . flatten ( )
}
fun aRoomListRoomSummary ( ) = RoomListRoomSummary (
fun aRoomListRoomSummary (
lastMessage : String ? = null ,
notificationMode : RoomNotificationMode ? = null ,
numUnreadMessages : Int = 0 ,
numUnreadMentions : Int = 0 ,
timestamp : String ? = " 88:88 " ,
hasOngoingCall : Boolean = false ,
isPlaceholder : Boolean = false ,
name : String = " Room name " ,
) = RoomListRoomSummary (
id = " !roomId " ,
roomId = RoomId ( " !roomId:domain " ) ,
name = " Room name " ,
hasUnread = false ,
timestamp = null ,
lastMessage = " Last message " ,
name = name ,
numUnreadMessages = numUnreadMessages ,
numUnreadMentions = numUnreadMentions ,
timestamp = timestamp ,
lastMessage = lastMessage ,
avatarData = AvatarData ( " !roomId " , " Room name " , size = AvatarSize . RoomListItem ) ,
isPlaceholder = false ,
isPlaceholder = isPlaceholder ,
userDefinedNotificationMode = notificationMode ,
hasRoomCall = hasOngoingCall ,
)