ursus
06/21/2019, 8:19 PMclass ChatViewModel {
init {
// ??????
}
fun editMessageClick(messageId: Long, newText: String) {
messageManager.editMessage(messageId, newText)
}
}
class MessageManager {
val eventsRelays = mapOf<Long, BehaviourRelay<Event>>()
private val disposables = CompositeDisposable()
fun editMessage(messageId, newText) {
disposables += database.update(messageId, newText, State.SENDING)
.flatMap { apiClient.editMessage(...)}
.flatMap { database.update(messageId, newText, State.SENT )}
.asEvents()
.subscribe(eventsRelay[messageId])
}
}