fix Realm crash

This commit is contained in:
ariskotsomitopoulos 2022-03-03 19:10:40 +02:00
parent 39bd437f75
commit daafddbe71
1 changed files with 12 additions and 13 deletions

View File

@ -66,12 +66,9 @@ internal class RealmSendingEventsDataSource(
private fun updateFrozenResults(sendingEvents: RealmList<TimelineEventEntity>?) { private fun updateFrozenResults(sendingEvents: RealmList<TimelineEventEntity>?) {
// Makes sure to close the previous frozen realm // Makes sure to close the previous frozen realm
// TODO find a better way to avoid thread timeline crash: if (frozenSendingTimelineEvents?.isValid == true) {
// - Make RealmSendingEventsDataSource Singleton frozenSendingTimelineEvents?.realm?.close()
// - Do not initialize RealmSendingEventsDataSource when we are in a thread timeline while }
// we already have an instance from the main timeline
// - Close Main timeline before Opening a thread timeline
// frozenSendingTimelineEvents?.realm?.close()
frozenSendingTimelineEvents = sendingEvents?.freeze() frozenSendingTimelineEvents = sendingEvents?.freeze()
} }
@ -79,13 +76,15 @@ internal class RealmSendingEventsDataSource(
val builtSendingEvents = mutableListOf<TimelineEvent>() val builtSendingEvents = mutableListOf<TimelineEvent>()
uiEchoManager.getInMemorySendingEvents() uiEchoManager.getInMemorySendingEvents()
.addWithUiEcho(builtSendingEvents) .addWithUiEcho(builtSendingEvents)
frozenSendingTimelineEvents if (frozenSendingTimelineEvents?.isValid == true) {
?.filter { timelineEvent -> frozenSendingTimelineEvents
builtSendingEvents.none { it.eventId == timelineEvent.eventId } ?.filter { timelineEvent ->
} builtSendingEvents.none { it.eventId == timelineEvent.eventId }
?.map { }
timelineEventMapper.map(it) ?.map {
}?.addWithUiEcho(builtSendingEvents) timelineEventMapper.map(it)
}?.addWithUiEcho(builtSendingEvents)
}
return builtSendingEvents return builtSendingEvents
} }