prevent OrderedRealmCollection to throw when using first()

This commit is contained in:
Valere 2022-01-12 11:37:02 +01:00
parent f4c891abe6
commit 7839f18f58
3 changed files with 5 additions and 5 deletions

View File

@ -30,8 +30,8 @@ internal fun TimelineEventEntity.Companion.nextId(realm: Realm): Long {
} }
internal fun TimelineEventEntity.isMoreRecentThan(eventToCheck: TimelineEventEntity): Boolean { internal fun TimelineEventEntity.isMoreRecentThan(eventToCheck: TimelineEventEntity): Boolean {
val currentChunk = this.chunk?.first() ?: return false val currentChunk = this.chunk?.first(null) ?: return false
val chunkToCheck = eventToCheck.chunk?.firstOrNull() ?: return false val chunkToCheck = eventToCheck.chunk?.first(null) ?: return false
return if (currentChunk == chunkToCheck) { return if (currentChunk == chunkToCheck) {
this.displayIndex >= eventToCheck.displayIndex this.displayIndex >= eventToCheck.displayIndex
} else { } else {

View File

@ -51,7 +51,7 @@ internal class DefaultRoomGetter @Inject constructor(
.equalTo(RoomSummaryEntityFields.IS_DIRECT, true) .equalTo(RoomSummaryEntityFields.IS_DIRECT, true)
.equalTo(RoomSummaryEntityFields.MEMBERSHIP_STR, Membership.JOIN.name) .equalTo(RoomSummaryEntityFields.MEMBERSHIP_STR, Membership.JOIN.name)
.findAll() .findAll()
.firstOrNull { dm -> dm.otherMemberIds.size == 1 && dm.otherMemberIds.first() == otherUserId } .firstOrNull { dm -> dm.otherMemberIds.size == 1 && dm.otherMemberIds.first(null) == otherUserId }
?.roomId ?.roomId
} }
} }

View File

@ -426,9 +426,9 @@ internal class TimelineChunk(private val chunkEntity: ChunkEntity,
if (initialEventId != null) { if (initialEventId != null) {
frozenTimelineEvents.where().equalTo(TimelineEventEntityFields.EVENT_ID, initialEventId).findFirst()?.displayIndex frozenTimelineEvents.where().equalTo(TimelineEventEntityFields.EVENT_ID, initialEventId).findFirst()?.displayIndex
} else if (direction == Timeline.Direction.BACKWARDS) { } else if (direction == Timeline.Direction.BACKWARDS) {
frozenTimelineEvents.first()?.displayIndex frozenTimelineEvents.first(null)?.displayIndex
} else { } else {
frozenTimelineEvents.last()?.displayIndex frozenTimelineEvents.last(null)?.displayIndex
} }
} else if (direction == Timeline.Direction.FORWARDS) { } else if (direction == Timeline.Direction.FORWARDS) {
builtEvents.first().displayIndex + 1 builtEvents.first().displayIndex + 1