Improve conversation class

* make it serializable
* provide either first unread or last message as extract
This commit is contained in:
Christian Basler 2018-03-12 19:41:56 +01:00
parent 81fc50ec37
commit c7c285a2c1

View File

@ -816,13 +816,17 @@ class Plaintext private constructor(
} }
} }
data class Conversation(val id: UUID, val subject: String, val messages: List<Plaintext>) { data class Conversation(val id: UUID, val subject: String, val messages: List<Plaintext>) : Serializable {
val participants = messages val participants = messages
.map { it.from } .map { it.from }
.filter { it.privateKey == null || it.isChan } .filter { it.privateKey == null || it.isChan }
.distinct() .distinct()
val extract: String by lazy { messages.lastOrNull()?.text ?: "" } val extract: String by lazy {
messages.firstOrNull { m -> m.labels.any { l -> l.type==Label.Type.UNREAD } }?.text
?: messages.lastOrNull()?.text
?: ""
}
fun hasUnread() = messages.any { it.isUnread() } fun hasUnread() = messages.any { it.isUnread() }
} }