mirror of
https://github.com/SchildiChat/SchildiChat-android.git
synced 2025-02-09 00:29:00 +01:00
Merge pull request #4924 from vector-im/feature/bca/fix_broken_crypto
Ensure algorithm instance is created and stored
This commit is contained in:
commit
1bde257a96
1
changelog.d/4924.bugfix
Normal file
1
changelog.d/4924.bugfix
Normal file
@ -0,0 +1 @@
|
||||
Fix sending events in encrypted rooms broken, and incremental sync broken in 1.3.13
|
@ -578,7 +578,7 @@ internal class DefaultCryptoService @Inject constructor(
|
||||
// (for now at least. Maybe we should alert the user somehow?)
|
||||
val existingAlgorithm = cryptoStore.getRoomAlgorithm(roomId)
|
||||
|
||||
if (existingAlgorithm == algorithm) {
|
||||
if (existingAlgorithm == algorithm && roomEncryptorsStore.get(roomId) != null) {
|
||||
// ignore
|
||||
Timber.tag(loggerTag.value).e("setEncryptionInRoom() : Ignoring m.room.encryption for same alg ($algorithm) in $roomId")
|
||||
return false
|
||||
|
@ -30,8 +30,8 @@ internal fun TimelineEventEntity.Companion.nextId(realm: Realm): Long {
|
||||
}
|
||||
|
||||
internal fun TimelineEventEntity.isMoreRecentThan(eventToCheck: TimelineEventEntity): Boolean {
|
||||
val currentChunk = this.chunk?.first() ?: return false
|
||||
val chunkToCheck = eventToCheck.chunk?.firstOrNull() ?: return false
|
||||
val currentChunk = this.chunk?.first(null) ?: return false
|
||||
val chunkToCheck = eventToCheck.chunk?.first(null) ?: return false
|
||||
return if (currentChunk == chunkToCheck) {
|
||||
this.displayIndex >= eventToCheck.displayIndex
|
||||
} else {
|
||||
|
@ -51,7 +51,7 @@ internal class DefaultRoomGetter @Inject constructor(
|
||||
.equalTo(RoomSummaryEntityFields.IS_DIRECT, true)
|
||||
.equalTo(RoomSummaryEntityFields.MEMBERSHIP_STR, Membership.JOIN.name)
|
||||
.findAll()
|
||||
.firstOrNull { dm -> dm.otherMemberIds.size == 1 && dm.otherMemberIds.first() == otherUserId }
|
||||
.firstOrNull { dm -> dm.otherMemberIds.size == 1 && dm.otherMemberIds.first(null) == otherUserId }
|
||||
?.roomId
|
||||
}
|
||||
}
|
||||
|
@ -426,9 +426,9 @@ internal class TimelineChunk(private val chunkEntity: ChunkEntity,
|
||||
if (initialEventId != null) {
|
||||
frozenTimelineEvents.where().equalTo(TimelineEventEntityFields.EVENT_ID, initialEventId).findFirst()?.displayIndex
|
||||
} else if (direction == Timeline.Direction.BACKWARDS) {
|
||||
frozenTimelineEvents.first()?.displayIndex
|
||||
frozenTimelineEvents.first(null)?.displayIndex
|
||||
} else {
|
||||
frozenTimelineEvents.last()?.displayIndex
|
||||
frozenTimelineEvents.last(null)?.displayIndex
|
||||
}
|
||||
} else if (direction == Timeline.Direction.FORWARDS) {
|
||||
builtEvents.first().displayIndex + 1
|
||||
|
Loading…
x
Reference in New Issue
Block a user