forked from upstream-mirrors/quik
Fix QK Reply crash when conversation is invalid
This commit is contained in:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user