mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-02-15 07:28:30 +00:00
Fix NoSuchMessageException when loading stories.
This commit is contained in:
committed by
Cody Henthorne
parent
518bf04e1d
commit
e57b47ec82
@@ -5,9 +5,11 @@ import io.reactivex.rxjava3.core.Completable
|
||||
import io.reactivex.rxjava3.core.Observable
|
||||
import io.reactivex.rxjava3.schedulers.Schedulers
|
||||
import org.signal.core.util.concurrent.SignalExecutors
|
||||
import org.signal.core.util.logging.Log
|
||||
import org.thoughtcrime.securesms.conversation.ConversationMessage
|
||||
import org.thoughtcrime.securesms.database.DatabaseObserver
|
||||
import org.thoughtcrime.securesms.database.MessageTable
|
||||
import org.thoughtcrime.securesms.database.NoSuchMessageException
|
||||
import org.thoughtcrime.securesms.database.RxDatabaseObserver
|
||||
import org.thoughtcrime.securesms.database.SignalDatabase
|
||||
import org.thoughtcrime.securesms.database.model.DistributionListId
|
||||
@@ -24,6 +26,10 @@ import org.thoughtcrime.securesms.sms.MessageSender
|
||||
|
||||
class StoriesLandingRepository(context: Context) {
|
||||
|
||||
companion object {
|
||||
private val TAG = Log.tag(StoriesLandingRepository::class)
|
||||
}
|
||||
|
||||
private val context = context.applicationContext
|
||||
|
||||
fun resend(story: MessageRecord): Completable {
|
||||
@@ -66,8 +72,13 @@ class StoriesLandingRepository(context: Context) {
|
||||
.sortedBy { it.messageSentTimestamp }
|
||||
.reversed()
|
||||
.take(if (recipient.isMyStory) 2 else 1)
|
||||
.map {
|
||||
SignalDatabase.messages.getMessageRecord(it.messageId)
|
||||
.mapNotNull {
|
||||
try {
|
||||
SignalDatabase.messages.getMessageRecord(it.messageId)
|
||||
} catch (e: NoSuchMessageException) {
|
||||
Log.w(TAG, "Failed to find message record ${it.messageId} sent at ${it.messageSentTimestamp} for story.", e)
|
||||
null
|
||||
}
|
||||
}
|
||||
|
||||
var sendingCount: Long = 0
|
||||
@@ -88,7 +99,11 @@ class StoriesLandingRepository(context: Context) {
|
||||
}
|
||||
}
|
||||
|
||||
createStoriesLandingItemData(recipient, messages, sendingCount, failureCount)
|
||||
if (messages.isNotEmpty()) {
|
||||
createStoriesLandingItemData(recipient, messages, sendingCount, failureCount)
|
||||
} else {
|
||||
Observable.empty()
|
||||
}
|
||||
}
|
||||
|
||||
if (observables.isEmpty()) {
|
||||
|
||||
Reference in New Issue
Block a user