From 2551cc8b23804b90fad207be1f9f3d0824e54e8b Mon Sep 17 00:00:00 2001 From: Shailesh Baldaniya Date: Sun, 18 Aug 2019 12:16:23 +0530 Subject: [PATCH] fix: Only make spotlight call when in connected state --- .../chatrooms/viewmodel/ChatRoomsViewModel.kt | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/app/src/main/java/chat/rocket/android/chatrooms/viewmodel/ChatRoomsViewModel.kt b/app/src/main/java/chat/rocket/android/chatrooms/viewmodel/ChatRoomsViewModel.kt index ca98bb68e8..9e704a7d8b 100644 --- a/app/src/main/java/chat/rocket/android/chatrooms/viewmodel/ChatRoomsViewModel.kt +++ b/app/src/main/java/chat/rocket/android/chatrooms/viewmodel/ChatRoomsViewModel.kt @@ -20,6 +20,7 @@ import chat.rocket.core.model.SpotlightResult import com.shopify.livedataktx.distinct import com.shopify.livedataktx.map import com.shopify.livedataktx.nonNull +import com.shopify.livedataktx.observe import kotlinx.coroutines.async import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.GlobalScope @@ -49,6 +50,12 @@ class ChatRoomsViewModel( private var loaded = false var showLastMessage = true + private var status: State? = null + + init { + connectionManager.statusLiveData.observe { status = it } + } + fun getChatRooms(): LiveData { return Transformations.switchMap(query) { query -> @@ -62,6 +69,13 @@ class ChatRoomsViewModel( if (!coroutineContext.isActive) return@wrap val rooms = repository.search(string).let { mapper.map(it, showLastMessage = this.showLastMessage) } + + if (status !is State.Connected) { + data.postValue(rooms.toMutableList()) + connectionManager.connect() + return@wrap + } + data.postValue(rooms.toMutableList() + LoadingItemHolder()) var repoSearchRoomNames = ArrayList()