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, ...@@ -34,6 +34,7 @@ class ChatRoomPresenter @Inject constructor(private val view: ChatRoomView,
} }
view.showMessages(messages, serverInteractor.get()!!) view.showMessages(messages, serverInteractor.get()!!)
} catch (ex: Exception) { } catch (ex: Exception) {
ex.printStackTrace()
ex.message?.let { ex.message?.let {
view.showMessage(it) view.showMessage(it)
}.ifNull { }.ifNull {
...@@ -47,18 +48,20 @@ class ChatRoomPresenter @Inject constructor(private val view: ChatRoomView, ...@@ -47,18 +48,20 @@ class ChatRoomPresenter @Inject constructor(private val view: ChatRoomView,
fun sendMessage(chatRoomId: String, text: String) { fun sendMessage(chatRoomId: String, text: String) {
launchUI(strategy) { launchUI(strategy) {
view.disableMessageInput()
try { try {
val message = client.sendMessage(chatRoomId, text) val message = client.sendMessage(chatRoomId, text)
synchronized(roomMessages) { // ignore message for now, will receive it on the stream
roomMessages.add(0, message) view.enableMessageInput(clear = true)
}
view.showNewMessage(message)
} catch (ex: Exception) { } catch (ex: Exception) {
ex.printStackTrace()
ex.message?.let { ex.message?.let {
view.showMessage(it) view.showMessage(it)
}.ifNull { }.ifNull {
view.showGenericErrorMessage() view.showGenericErrorMessage()
} }
view.enableMessageInput()
} }
} }
} }
......
...@@ -34,4 +34,8 @@ interface ChatRoomView : LoadingView, MessageView { ...@@ -34,4 +34,8 @@ interface ChatRoomView : LoadingView, MessageView {
* @param index The index of the changed message * @param index The index of the changed message
*/ */
fun dispatchUpdateMessage(index: Int, message: 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" ...@@ -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" private const val BUNDLE_IS_CHAT_ROOM_READ_ONLY = "is_chat_room_read_only"
class ChatRoomFragment : Fragment(), ChatRoomView { class ChatRoomFragment : Fragment(), ChatRoomView {
@Inject lateinit var presenter: ChatRoomPresenter @Inject lateinit var presenter: ChatRoomPresenter
private lateinit var chatRoomId: String private lateinit var chatRoomId: String
private lateinit var chatRoomName: String private lateinit var chatRoomName: String
...@@ -108,6 +109,17 @@ class ChatRoomFragment : Fragment(), ChatRoomView { ...@@ -108,6 +109,17 @@ class ChatRoomFragment : Fragment(), ChatRoomView {
recycler_view.smoothScrollToPosition(0) 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) { override fun dispatchUpdateMessage(index: Int, message: Message) {
adapter.updateItem(index, 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