Skip to content
This repository was archived by the owner on Jun 7, 2020. It is now read-only.

Commit 3d3e95e

Browse files
committed
Add fallback connect while sending message
1 parent 78340c1 commit 3d3e95e

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

app/src/main/java/chat/rocket/android/chatroom/presentation/ChatRoomPresenter.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ import chat.rocket.common.model.UserStatus
4747
import chat.rocket.common.model.roomTypeOf
4848
import chat.rocket.common.util.ifNull
4949
import chat.rocket.core.internal.realtime.setTypingStatus
50+
import chat.rocket.core.internal.realtime.socket.connect
5051
import chat.rocket.core.internal.realtime.socket.model.State
5152
import chat.rocket.core.internal.realtime.subscribeRoomMessages
5253
import chat.rocket.core.internal.realtime.subscribeTypingStatus
@@ -356,6 +357,9 @@ class ChatRoomPresenter @Inject constructor(
356357
launchUI(strategy) {
357358
try {
358359
view.disableSendMessageButton()
360+
if(client.state is State.Disconnected || client.state is State.Waiting){
361+
client.connect()
362+
}
359363
// ignore message for now, will receive it on the stream
360364
if (messageId == null) {
361365
val id = UUID.randomUUID().toString()

app/src/main/java/chat/rocket/android/chatroom/service/MessageService.kt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import chat.rocket.android.server.domain.GetAccountsInteractor
77
import chat.rocket.android.server.infrastructure.ConnectionManagerFactory
88
import chat.rocket.android.server.infrastructure.DatabaseMessageMapper
99
import chat.rocket.android.server.infrastructure.DatabaseMessagesRepository
10+
import chat.rocket.core.internal.realtime.socket.connect
1011
import chat.rocket.core.internal.rest.sendMessage
1112
import chat.rocket.core.model.Message
1213
import dagger.android.AndroidInjection
@@ -15,6 +16,8 @@ import kotlinx.coroutines.GlobalScope
1516
import kotlinx.coroutines.launch
1617
import timber.log.Timber
1718
import javax.inject.Inject
19+
import chat.rocket.core.internal.realtime.socket.model.State
20+
1821

1922
class MessageService : JobService() {
2023
@Inject
@@ -53,6 +56,9 @@ class MessageService : JobService() {
5356
val client = factory.create(serverUrl)?.client
5457
temporaryMessages.forEach { message ->
5558
try {
59+
if(client.state is State.Disconnected || client.state is State.Waiting){
60+
client.connect()
61+
}
5662
client?.sendMessage(
5763
message = message.message,
5864
messageId = message.id,
@@ -88,4 +94,4 @@ class MessageService : JobService() {
8894
companion object {
8995
const val RETRY_SEND_MESSAGE_ID = 1
9096
}
91-
}
97+
}

0 commit comments

Comments
 (0)