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

Commit eafaa8e

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

File tree

2 files changed

+9
-0
lines changed

2 files changed

+9
-0
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: 5 additions & 0 deletions
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,7 @@ 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
1820

1921
class MessageService : JobService() {
2022
@Inject
@@ -53,6 +55,9 @@ class MessageService : JobService() {
5355
val client = factory.create(serverUrl)?.client
5456
temporaryMessages.forEach { message ->
5557
try {
58+
if(client?.state is State.Disconnected || client?.state is State.Waiting){
59+
client?.connect()
60+
}
5661
client?.sendMessage(
5762
message = message.message,
5863
messageId = message.id,

0 commit comments

Comments
 (0)