Better API and avoid copying Collection
This commit is contained in:
parent
0c774c098f
commit
c4aadfed33
@ -312,7 +312,7 @@ internal class MXOlmDevice @Inject constructor(
|
|||||||
* @param theirDeviceIdentityKey the Curve25519 identity key for the remote device.
|
* @param theirDeviceIdentityKey the Curve25519 identity key for the remote device.
|
||||||
* @return a list of known session ids for the device.
|
* @return a list of known session ids for the device.
|
||||||
*/
|
*/
|
||||||
fun getSessionIds(theirDeviceIdentityKey: String): Set<String>? {
|
fun getSessionIds(theirDeviceIdentityKey: String): List<String>? {
|
||||||
return store.getDeviceSessionIds(theirDeviceIdentityKey)
|
return store.getDeviceSessionIds(theirDeviceIdentityKey)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -154,7 +154,7 @@ internal class MXOlmDecryption(
|
|||||||
* @return payload, if decrypted successfully.
|
* @return payload, if decrypted successfully.
|
||||||
*/
|
*/
|
||||||
private fun decryptMessage(message: JsonDict, theirDeviceIdentityKey: String): String? {
|
private fun decryptMessage(message: JsonDict, theirDeviceIdentityKey: String): String? {
|
||||||
val sessionIds = olmDevice.getSessionIds(theirDeviceIdentityKey) ?: emptySet()
|
val sessionIds = olmDevice.getSessionIds(theirDeviceIdentityKey).orEmpty()
|
||||||
|
|
||||||
val messageBody = message["body"] as? String ?: return null
|
val messageBody = message["body"] as? String ?: return null
|
||||||
val messageType = when (val typeAsVoid = message["type"]) {
|
val messageType = when (val typeAsVoid = message["type"]) {
|
||||||
|
@ -259,7 +259,7 @@ internal interface IMXCryptoStore {
|
|||||||
* @param deviceKey the public key of the other device.
|
* @param deviceKey the public key of the other device.
|
||||||
* @return A set of sessionId, or null if device is not known
|
* @return A set of sessionId, or null if device is not known
|
||||||
*/
|
*/
|
||||||
fun getDeviceSessionIds(deviceKey: String): Set<String>?
|
fun getDeviceSessionIds(deviceKey: String): List<String>?
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieve an end-to-end session between the logged-in user and another
|
* Retrieve an end-to-end session between the logged-in user and another
|
||||||
|
@ -692,7 +692,7 @@ internal class RealmCryptoStore @Inject constructor(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getDeviceSessionIds(deviceKey: String): MutableSet<String> {
|
override fun getDeviceSessionIds(deviceKey: String): List<String> {
|
||||||
return doWithRealm(realmConfiguration) {
|
return doWithRealm(realmConfiguration) {
|
||||||
it.where<OlmSessionEntity>()
|
it.where<OlmSessionEntity>()
|
||||||
.equalTo(OlmSessionEntityFields.DEVICE_KEY, deviceKey)
|
.equalTo(OlmSessionEntityFields.DEVICE_KEY, deviceKey)
|
||||||
@ -701,7 +701,6 @@ internal class RealmCryptoStore @Inject constructor(
|
|||||||
sessionEntity.sessionId
|
sessionEntity.sessionId
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.toMutableSet()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun storeInboundGroupSessions(sessions: List<OlmInboundGroupSessionWrapper2>) {
|
override fun storeInboundGroupSessions(sessions: List<OlmInboundGroupSessionWrapper2>) {
|
||||||
@ -801,7 +800,7 @@ internal class RealmCryptoStore @Inject constructor(
|
|||||||
* Note: the result will be only use to export all the keys and not to use the OlmInboundGroupSessionWrapper2,
|
* Note: the result will be only use to export all the keys and not to use the OlmInboundGroupSessionWrapper2,
|
||||||
* so there is no need to use or update `inboundGroupSessionToRelease` for native memory management
|
* so there is no need to use or update `inboundGroupSessionToRelease` for native memory management
|
||||||
*/
|
*/
|
||||||
override fun getInboundGroupSessions(): MutableList<OlmInboundGroupSessionWrapper2> {
|
override fun getInboundGroupSessions(): List<OlmInboundGroupSessionWrapper2> {
|
||||||
return doWithRealm(realmConfiguration) {
|
return doWithRealm(realmConfiguration) {
|
||||||
it.where<OlmInboundGroupSessionEntity>()
|
it.where<OlmInboundGroupSessionEntity>()
|
||||||
.findAll()
|
.findAll()
|
||||||
@ -809,7 +808,6 @@ internal class RealmCryptoStore @Inject constructor(
|
|||||||
inboundGroupSessionEntity.getInboundGroupSession()
|
inboundGroupSessionEntity.getInboundGroupSession()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.toMutableList()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun removeInboundGroupSession(sessionId: String, senderKey: String) {
|
override fun removeInboundGroupSession(sessionId: String, senderKey: String) {
|
||||||
@ -964,7 +962,7 @@ internal class RealmCryptoStore @Inject constructor(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getRoomsListBlacklistUnverifiedDevices(): MutableList<String> {
|
override fun getRoomsListBlacklistUnverifiedDevices(): List<String> {
|
||||||
return doWithRealm(realmConfiguration) {
|
return doWithRealm(realmConfiguration) {
|
||||||
it.where<CryptoRoomEntity>()
|
it.where<CryptoRoomEntity>()
|
||||||
.equalTo(CryptoRoomEntityFields.BLACKLIST_UNVERIFIED_DEVICES, true)
|
.equalTo(CryptoRoomEntityFields.BLACKLIST_UNVERIFIED_DEVICES, true)
|
||||||
@ -973,10 +971,9 @@ internal class RealmCryptoStore @Inject constructor(
|
|||||||
cryptoRoom.roomId
|
cryptoRoom.roomId
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.toMutableList()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getDeviceTrackingStatuses(): MutableMap<String, Int> {
|
override fun getDeviceTrackingStatuses(): Map<String, Int> {
|
||||||
return doWithRealm(realmConfiguration) {
|
return doWithRealm(realmConfiguration) {
|
||||||
it.where<UserEntity>()
|
it.where<UserEntity>()
|
||||||
.findAll()
|
.findAll()
|
||||||
@ -987,7 +984,6 @@ internal class RealmCryptoStore @Inject constructor(
|
|||||||
entry.value.deviceTrackingStatus
|
entry.value.deviceTrackingStatus
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.toMutableMap()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun saveDeviceTrackingStatuses(deviceTrackingStatuses: Map<String, Int>) {
|
override fun saveDeviceTrackingStatuses(deviceTrackingStatuses: Map<String, Int>) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user