forked from GitHub-Mirror/riotX-android
28 lines
1.1 KiB
Kotlin
28 lines
1.1 KiB
Kotlin
|
package im.vector.riotredesign.features.home.room.detail.timeline
|
||
|
|
||
|
import android.text.TextUtils
|
||
|
import im.vector.matrix.android.api.session.events.model.TimelineEvent
|
||
|
import im.vector.matrix.android.api.session.events.model.toModel
|
||
|
import im.vector.matrix.android.api.session.room.model.RoomTopicContent
|
||
|
import im.vector.riotredesign.R
|
||
|
import im.vector.riotredesign.core.resources.StringProvider
|
||
|
|
||
|
class RoomTopicItemFactory(private val stringProvider: StringProvider) {
|
||
|
|
||
|
fun create(event: TimelineEvent): NoticeItem? {
|
||
|
|
||
|
val content: RoomTopicContent? = event.root.content.toModel()
|
||
|
val roomMember = event.roomMember
|
||
|
if (content == null || roomMember == null) {
|
||
|
return null
|
||
|
}
|
||
|
val text = if (!TextUtils.isEmpty(content.topic)) {
|
||
|
stringProvider.getString(R.string.notice_room_topic_changed, roomMember.displayName, content.topic)
|
||
|
} else {
|
||
|
stringProvider.getString(R.string.notice_room_topic_removed, roomMember.displayName)
|
||
|
}
|
||
|
return NoticeItem(text, roomMember.avatarUrl, roomMember.displayName)
|
||
|
}
|
||
|
|
||
|
|
||
|
}
|