Commit caf38042 authored by Lucio Maciel's avatar Lucio Maciel

Just ignore the response from sendMessage and use the message on the stream..

parent 9d59c945
......@@ -34,6 +34,7 @@ class ChatRoomPresenter @Inject constructor(private val view: ChatRoomView,
}
view.showMessages(messages, serverInteractor.get()!!)
} catch (ex: Exception) {
ex.printStackTrace()
ex.message?.let {
view.showMessage(it)
}.ifNull {
......@@ -47,18 +48,20 @@ class ChatRoomPresenter @Inject constructor(private val view: ChatRoomView,
fun sendMessage(chatRoomId: String, text: String) {
launchUI(strategy) {
view.disableMessageInput()
try {
val message = client.sendMessage(chatRoomId, text)
synchronized(roomMessages) {
roomMessages.add(0, message)
}
view.showNewMessage(message)
// ignore message for now, will receive it on the stream
view.enableMessageInput(clear = true)
} catch (ex: Exception) {
ex.printStackTrace()
ex.message?.let {
view.showMessage(it)
}.ifNull {
view.showGenericErrorMessage()
}
view.enableMessageInput()
}
}
}
......
......@@ -34,4 +34,8 @@ interface ChatRoomView : LoadingView, MessageView {
* @param index The index of the changed message
*/
fun dispatchUpdateMessage(index: Int, message: Message)
fun disableMessageInput()
fun enableMessageInput(clear: Boolean = false)
}
\ No newline at end of file
......@@ -39,6 +39,7 @@ private const val BUNDLE_CHAT_ROOM_TYPE = "chat_room_type"
private const val BUNDLE_IS_CHAT_ROOM_READ_ONLY = "is_chat_room_read_only"
class ChatRoomFragment : Fragment(), ChatRoomView {
@Inject lateinit var presenter: ChatRoomPresenter
private lateinit var chatRoomId: String
private lateinit var chatRoomName: String
......@@ -108,6 +109,17 @@ class ChatRoomFragment : Fragment(), ChatRoomView {
recycler_view.smoothScrollToPosition(0)
}
override fun disableMessageInput() {
text_send.isEnabled = false
text_message.isEnabled = false
}
override fun enableMessageInput(clear: Boolean) {
text_send.isEnabled = true
text_message.isEnabled = true
if (clear) text_message.textContent = ""
}
override fun dispatchUpdateMessage(index: Int, message: Message) {
adapter.updateItem(index, message)
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment