Merge pull request #5824 from element-hq/feature/bma/roomListIndicators
Add room list indicators about last message
This commit is contained in:
commit
39e580284d
18 changed files with 205 additions and 67 deletions
|
|
@ -10,6 +10,7 @@ package io.element.android.libraries.eventformatter.api
|
|||
|
||||
import io.element.android.libraries.matrix.api.roomlist.LatestEventValue
|
||||
|
||||
fun interface RoomLatestEventFormatter {
|
||||
fun format(latestEvent: LatestEventValue, isDmRoom: Boolean): CharSequence?
|
||||
interface RoomLatestEventFormatter {
|
||||
fun format(latestEvent: LatestEventValue.Local, isDmRoom: Boolean): CharSequence?
|
||||
fun format(latestEvent: LatestEventValue.Remote, isDmRoom: Boolean): CharSequence?
|
||||
}
|
||||
|
|
|
|||
|
|
@ -59,25 +59,27 @@ class DefaultRoomLatestEventFormatter(
|
|||
private const val MAX_SAFE_LENGTH = 500
|
||||
}
|
||||
|
||||
override fun format(latestEvent: LatestEventValue, isDmRoom: Boolean): CharSequence? {
|
||||
return when (latestEvent) {
|
||||
LatestEventValue.None -> null
|
||||
is LatestEventValue.Local -> formatContent(
|
||||
content = latestEvent.content,
|
||||
isDmRoom = isDmRoom,
|
||||
isOutgoing = true,
|
||||
senderId = latestEvent.senderId,
|
||||
senderDisambiguatedDisplayName = latestEvent.senderProfile.getDisambiguatedDisplayName(latestEvent.senderId)
|
||||
)
|
||||
is LatestEventValue.Remote -> formatContent(
|
||||
content = latestEvent.content,
|
||||
isDmRoom = isDmRoom,
|
||||
isOutgoing = latestEvent.isOwn,
|
||||
senderId = latestEvent.senderId,
|
||||
senderDisambiguatedDisplayName = latestEvent.senderProfile.getDisambiguatedDisplayName(latestEvent.senderId)
|
||||
)
|
||||
}
|
||||
}
|
||||
override fun format(
|
||||
latestEvent: LatestEventValue.Local,
|
||||
isDmRoom: Boolean,
|
||||
): CharSequence? = formatContent(
|
||||
content = latestEvent.content,
|
||||
isDmRoom = isDmRoom,
|
||||
isOutgoing = true,
|
||||
senderId = latestEvent.senderId,
|
||||
senderDisambiguatedDisplayName = latestEvent.senderProfile.getDisambiguatedDisplayName(latestEvent.senderId)
|
||||
)
|
||||
|
||||
override fun format(
|
||||
latestEvent: LatestEventValue.Remote,
|
||||
isDmRoom: Boolean,
|
||||
): CharSequence? = formatContent(
|
||||
content = latestEvent.content,
|
||||
isDmRoom = isDmRoom,
|
||||
isOutgoing = latestEvent.isOwn,
|
||||
senderId = latestEvent.senderId,
|
||||
senderDisambiguatedDisplayName = latestEvent.senderProfile.getDisambiguatedDisplayName(latestEvent.senderId)
|
||||
)
|
||||
|
||||
private fun formatContent(
|
||||
content: EventContent,
|
||||
|
|
|
|||
|
|
@ -929,7 +929,7 @@ class DefaultRoomLatestEventFormatterTest {
|
|||
sentByYou: Boolean,
|
||||
senderDisplayName: String?,
|
||||
content: EventContent,
|
||||
): LatestEventValue {
|
||||
): LatestEventValue.Remote {
|
||||
val sender = if (sentByYou) A_USER_ID else someoneElseId
|
||||
val profile = aProfileDetails(senderDisplayName)
|
||||
return aRemoteLatestEvent(
|
||||
|
|
|
|||
|
|
@ -14,7 +14,11 @@ import io.element.android.libraries.matrix.api.roomlist.LatestEventValue
|
|||
class FakeRoomLatestEventFormatter : RoomLatestEventFormatter {
|
||||
private var result: CharSequence? = null
|
||||
|
||||
override fun format(latestEvent: LatestEventValue, isDmRoom: Boolean): CharSequence? {
|
||||
override fun format(latestEvent: LatestEventValue.Local, isDmRoom: Boolean): CharSequence? {
|
||||
return result
|
||||
}
|
||||
|
||||
override fun format(latestEvent: LatestEventValue.Remote, isDmRoom: Boolean): CharSequence? {
|
||||
return result
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -246,6 +246,7 @@ Reason: %1$s."</string>
|
|||
</plurals>
|
||||
<string name="common_message">"Message"</string>
|
||||
<string name="common_message_actions">"Message actions"</string>
|
||||
<string name="common_message_failed_to_send">"Message failed to send"</string>
|
||||
<string name="common_message_layout">"Message layout"</string>
|
||||
<string name="common_message_removed">"Message removed"</string>
|
||||
<string name="common_modern">"Modern"</string>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue