Setting up of incoming message receiver now in separate function

This commit is contained in:
ChronosX88 2019-05-21 23:20:55 +04:00
parent 9033d250ef
commit aea3ca1542

View File

@ -13,7 +13,6 @@ import io.github.chronosx88.influence.contracts.CoreContracts
import io.github.chronosx88.influence.helpers.AppHelper import io.github.chronosx88.influence.helpers.AppHelper
import io.github.chronosx88.influence.helpers.LocalDBWrapper import io.github.chronosx88.influence.helpers.LocalDBWrapper
import io.github.chronosx88.influence.logic.ChatLogic import io.github.chronosx88.influence.logic.ChatLogic
import io.github.chronosx88.influence.models.GenericDialog
import io.github.chronosx88.influence.models.GenericMessage import io.github.chronosx88.influence.models.GenericMessage
import io.github.chronosx88.influence.models.roomEntities.ChatEntity import io.github.chronosx88.influence.models.roomEntities.ChatEntity
import io.github.chronosx88.influence.models.roomEntities.MessageEntity import io.github.chronosx88.influence.models.roomEntities.MessageEntity
@ -23,7 +22,7 @@ class ChatPresenter(private val view: CoreContracts.IChatViewContract, private v
private val chatEntity: ChatEntity? private val chatEntity: ChatEntity?
private val gson: Gson private val gson: Gson
private val chatAdapter: MessagesListAdapter<GenericMessage> private val chatAdapter: MessagesListAdapter<GenericMessage>
private val newMessageReceiver: BroadcastReceiver private lateinit var newMessageReceiver: BroadcastReceiver
init { init {
this.logic = ChatLogic(LocalDBWrapper.getChatByChatID(chatID)!!) this.logic = ChatLogic(LocalDBWrapper.getChatByChatID(chatID)!!)
@ -32,17 +31,7 @@ class ChatPresenter(private val view: CoreContracts.IChatViewContract, private v
chatAdapter = MessagesListAdapter(AppHelper.getJid(), ImageLoader { imageView, _, _ -> imageView.setImageResource(R.mipmap.ic_launcher) }) chatAdapter = MessagesListAdapter(AppHelper.getJid(), ImageLoader { imageView, _, _ -> imageView.setImageResource(R.mipmap.ic_launcher) })
view.setAdapter(chatAdapter) view.setAdapter(chatAdapter)
newMessageReceiver = object : BroadcastReceiver() { setupIncomingMessagesReceiver()
override fun onReceive(context: Context, intent: Intent) {
if(intent.getStringExtra(XMPPConnectionService.MESSAGE_CHATID).equals(chatEntity.jid)) {
val messageID = intent.getLongExtra(XMPPConnectionService.MESSAGE_ID, -1)
chatAdapter.addToStart(GenericMessage(LocalDBWrapper.getMessageByID(messageID)), true)
}
}
}
val filter = IntentFilter()
filter.addAction(XMPPConnectionService.INTENT_NEW_MESSAGE)
AppHelper.getContext().registerReceiver(newMessageReceiver, filter)
} }
override fun sendMessage(text: String): Boolean { override fun sendMessage(text: String): Boolean {
@ -70,7 +59,17 @@ class ChatPresenter(private val view: CoreContracts.IChatViewContract, private v
} }
private fun setupIncomingMessagesReceiver() { private fun setupIncomingMessagesReceiver() {
newMessageReceiver = object : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
if(intent.getStringExtra(XMPPConnectionService.MESSAGE_CHATID).equals(chatEntity!!.jid)) {
val messageID = intent.getLongExtra(XMPPConnectionService.MESSAGE_ID, -1)
chatAdapter.addToStart(GenericMessage(LocalDBWrapper.getMessageByID(messageID)), true)
}
}
}
val filter = IntentFilter()
filter.addAction(XMPPConnectionService.INTENT_NEW_MESSAGE)
AppHelper.getContext().registerReceiver(newMessageReceiver, filter)
} }
} }