Commit e605713a authored by Leonardo Aramaki's avatar Leonardo Aramaki

Do schedule resend of failed messages whenever connection state is set to...

Do schedule resend of failed messages whenever connection state is set to connected; also fix some typos
parent c83fedd2
...@@ -220,6 +220,7 @@ class ChatRoomPresenter @Inject constructor(private val view: ChatRoomView, ...@@ -220,6 +220,7 @@ class ChatRoomPresenter @Inject constructor(private val view: ChatRoomView,
} }
if (state is State.Connected) { if (state is State.Connected) {
jobSchedulerInteractor.scheduleSendingMessages()
loadMissingMessages() loadMissingMessages()
} }
} }
......
...@@ -59,6 +59,7 @@ class MessageService : JobService() { ...@@ -59,6 +59,7 @@ class MessageService : JobService() {
alias = message.senderAlias alias = message.senderAlias
) )
messageRepository.save(message.copy(isTemporary = false)) messageRepository.save(message.copy(isTemporary = false))
Timber.d("Sent scheduled message given by id: ${message.id}")
} catch (ex: RocketChatException) { } catch (ex: RocketChatException) {
Timber.e(ex) Timber.e(ex)
if (ex.message?.contains("E11000", true) == true) { if (ex.message?.contains("E11000", true) == true) {
...@@ -72,7 +73,6 @@ class MessageService : JobService() { ...@@ -72,7 +73,6 @@ class MessageService : JobService() {
} }
companion object { companion object {
const val EXTRA_MESSAGE_ID = "extra_message_id"
const val RETRY_SEND_MESSAGE_ID = 1 const val RETRY_SEND_MESSAGE_ID = 1
} }
} }
\ No newline at end of file
...@@ -40,6 +40,7 @@ class ChatRoomsPresenter @Inject constructor(private val view: ChatRoomsView, ...@@ -40,6 +40,7 @@ class ChatRoomsPresenter @Inject constructor(private val view: ChatRoomsView,
private val saveChatRoomsInteractor: SaveChatRoomsInteractor, private val saveChatRoomsInteractor: SaveChatRoomsInteractor,
private val refreshSettingsInteractor: RefreshSettingsInteractor, private val refreshSettingsInteractor: RefreshSettingsInteractor,
private val viewModelMapper: ViewModelMapper, private val viewModelMapper: ViewModelMapper,
private val jobSchedulerInteractor: JobSchedulerInteractor,
settingsRepository: SettingsRepository, settingsRepository: SettingsRepository,
factory: ConnectionManagerFactory) { factory: ConnectionManagerFactory) {
private val manager: ConnectionManager = factory.create(serverInteractor.get()!!) private val manager: ConnectionManager = factory.create(serverInteractor.get()!!)
...@@ -258,6 +259,7 @@ class ChatRoomsPresenter @Inject constructor(private val view: ChatRoomsView, ...@@ -258,6 +259,7 @@ class ChatRoomsPresenter @Inject constructor(private val view: ChatRoomsView,
} }
if (state is State.Connected) { if (state is State.Connected) {
jobSchedulerInteractor.scheduleSendingMessages()
reloadRooms() reloadRooms()
updateRooms() updateRooms()
} }
......
...@@ -23,9 +23,7 @@ import chat.rocket.core.internal.rest.logout ...@@ -23,9 +23,7 @@ import chat.rocket.core.internal.rest.logout
import chat.rocket.core.internal.rest.me import chat.rocket.core.internal.rest.me
import chat.rocket.core.internal.rest.unregisterPushToken import chat.rocket.core.internal.rest.unregisterPushToken
import chat.rocket.core.model.Myself import chat.rocket.core.model.Myself
import kotlinx.coroutines.experimental.CommonPool
import kotlinx.coroutines.experimental.channels.Channel import kotlinx.coroutines.experimental.channels.Channel
import kotlinx.coroutines.experimental.launch
import timber.log.Timber import timber.log.Timber
import javax.inject.Inject import javax.inject.Inject
...@@ -39,7 +37,7 @@ class MainPresenter @Inject constructor( ...@@ -39,7 +37,7 @@ class MainPresenter @Inject constructor(
private val navHeaderMapper: NavHeaderViewModelMapper, private val navHeaderMapper: NavHeaderViewModelMapper,
private val saveAccountInteractor: SaveAccountInteractor, private val saveAccountInteractor: SaveAccountInteractor,
private val getAccountsInteractor: GetAccountsInteractor, private val getAccountsInteractor: GetAccountsInteractor,
private val removeAccountInterector: RemoveAccountInterector, private val removeAccountInteractor: RemoveAccountInteractor,
private val factory: RocketChatClientFactory, private val factory: RocketChatClientFactory,
getSettingsInteractor: GetSettingsInteractor, getSettingsInteractor: GetSettingsInteractor,
managerFactory: ConnectionManagerFactory managerFactory: ConnectionManagerFactory
...@@ -105,7 +103,7 @@ class MainPresenter @Inject constructor( ...@@ -105,7 +103,7 @@ class MainPresenter @Inject constructor(
try { try {
disconnect() disconnect()
removeAccountInterector.remove(currentServer) removeAccountInteractor.remove(currentServer)
tokenRepository.remove(currentServer) tokenRepository.remove(currentServer)
navigator.toNewServer() navigator.toNewServer()
} catch (ex: Exception) { } catch (ex: Exception) {
......
...@@ -2,7 +2,7 @@ package chat.rocket.android.server.domain ...@@ -2,7 +2,7 @@ package chat.rocket.android.server.domain
import javax.inject.Inject import javax.inject.Inject
class RemoveAccountInterector @Inject constructor(val repository: AccountsRepository) { class RemoveAccountInteractor @Inject constructor(val repository: AccountsRepository) {
suspend fun remove(serverUrl: String) { suspend fun remove(serverUrl: String) {
repository.remove(serverUrl) repository.remove(serverUrl)
} }
......
...@@ -3,6 +3,7 @@ package chat.rocket.android.server.infraestructure ...@@ -3,6 +3,7 @@ package chat.rocket.android.server.infraestructure
import android.app.job.JobInfo import android.app.job.JobInfo
import android.app.job.JobScheduler import android.app.job.JobScheduler
import chat.rocket.android.server.domain.JobSchedulerInteractor import chat.rocket.android.server.domain.JobSchedulerInteractor
import timber.log.Timber
import javax.inject.Inject import javax.inject.Inject
/** /**
...@@ -14,6 +15,7 @@ class JobSchedulerInteractorImpl @Inject constructor( ...@@ -14,6 +15,7 @@ class JobSchedulerInteractorImpl @Inject constructor(
) : JobSchedulerInteractor { ) : JobSchedulerInteractor {
override fun scheduleSendingMessages() { override fun scheduleSendingMessages() {
Timber.d("Scheduling unsent messages to send...")
jobScheduler.schedule(jobInfo) jobScheduler.schedule(jobInfo)
} }
} }
\ No newline at end of file
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