Fix QK Reply crash when conversation is invalid

This commit is contained in:
Moez Bhatti
2018-07-02 17:46:18 -04:00
parent 575fd6f697
commit 2d537cb0df
3 changed files with 4 additions and 4 deletions
@@ -87,7 +87,7 @@ class QkReplyActivity : QkThemedActivity(), QkReplyView {
finish()
}
threadId.onNext(state.data?.first?.id ?: 0)
threadId.onNext(state.selectedConversation)
title = state.title
@@ -25,6 +25,7 @@ import io.realm.RealmResults
data class QkReplyState(
val hasError: Boolean = false,
val selectedConversation: Long = 0,
val title: String = "",
val expanded: Boolean = false,
val data: Pair<Conversation, RealmResults<Message>>? = null,
@@ -28,7 +28,6 @@ import com.moez.QKSMS.extensions.asObservable
import com.moez.QKSMS.extensions.mapNotNull
import com.moez.QKSMS.interactor.MarkRead
import com.moez.QKSMS.interactor.SendMessage
import com.moez.QKSMS.model.Conversation
import com.moez.QKSMS.model.Message
import com.moez.QKSMS.repository.ConversationRepository
import com.moez.QKSMS.repository.MessageRepository
@@ -53,11 +52,11 @@ class QkReplyViewModel @Inject constructor(
private val navigator: Navigator,
private val sendMessage: SendMessage,
private val subscriptionManager: SubscriptionManagerCompat
) : QkViewModel<QkReplyView, QkReplyState>(QkReplyState()) {
) : QkViewModel<QkReplyView, QkReplyState>(QkReplyState(selectedConversation = threadId)) {
private val conversation by lazy {
conversationRepo.getConversationAsync(threadId)
.asObservable<Conversation>()
.asObservable()
.filter { it.isLoaded }
.filter { it.isValid }
.distinctUntilChanged()