diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/auth/db/PendingSessionEntity.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/auth/db/PendingSessionEntity.kt index 0798411528..34dcd79e85 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/auth/db/PendingSessionEntity.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/auth/db/PendingSessionEntity.kt @@ -16,8 +16,10 @@ package org.matrix.android.sdk.internal.auth.db -import io.realm.RealmObject +import io.realm.RealmModel +import io.realm.annotations.RealmClass +@RealmClass internal open class PendingSessionEntity( var homeServerConnectionConfigJson: String = "", var clientSecret: String = "", @@ -26,4 +28,4 @@ internal open class PendingSessionEntity( var currentSession: String? = null, var isRegistrationStarted: Boolean = false, var currentThreePidDataJson: String? = null -) : RealmObject() +) : RealmModel diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/auth/db/SessionParamsEntity.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/auth/db/SessionParamsEntity.kt index f6c883cac0..2c5183ae06 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/auth/db/SessionParamsEntity.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/auth/db/SessionParamsEntity.kt @@ -16,9 +16,11 @@ package org.matrix.android.sdk.internal.auth.db -import io.realm.RealmObject +import io.realm.RealmModel import io.realm.annotations.PrimaryKey +import io.realm.annotations.RealmClass +@RealmClass internal open class SessionParamsEntity( @PrimaryKey var sessionId: String = "", var userId: String = "", @@ -28,4 +30,4 @@ internal open class SessionParamsEntity( // In case of hard logout, this object is deleted from DB var isTokenValid: Boolean = true, var loginType: String = "", -) : RealmObject() +) : RealmModel diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/Helper.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/Helper.kt index 2d66ce1488..18c3e29bc9 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/Helper.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/Helper.kt @@ -19,7 +19,7 @@ package org.matrix.android.sdk.internal.crypto.store.db import android.util.Base64 import io.realm.Realm import io.realm.RealmConfiguration -import io.realm.RealmObject +import io.realm.RealmModel import java.io.ByteArrayOutputStream import java.io.ObjectOutputStream import java.util.zip.GZIPInputStream @@ -37,7 +37,7 @@ internal fun doWithRealm(realmConfiguration: RealmConfiguration, action: (Re /** * Get realm, do the query, copy from realm, close realm, and return the copied result. */ -internal fun doRealmQueryAndCopy(realmConfiguration: RealmConfiguration, action: (Realm) -> T?): T? { +internal fun doRealmQueryAndCopy(realmConfiguration: RealmConfiguration, action: (Realm) -> T?): T? { return Realm.getInstance(realmConfiguration).use { realm -> action.invoke(realm)?.let { realm.copyFromRealm(it) } } @@ -46,7 +46,7 @@ internal fun doRealmQueryAndCopy(realmConfiguration: RealmConf /** * Get realm, do the list query, copy from realm, close realm, and return the copied result. */ -internal fun doRealmQueryAndCopyList(realmConfiguration: RealmConfiguration, action: (Realm) -> Iterable): Iterable { +internal fun doRealmQueryAndCopyList(realmConfiguration: RealmConfiguration, action: (Realm) -> Iterable): Iterable { return Realm.getInstance(realmConfiguration).use { realm -> action.invoke(realm).let { realm.copyFromRealm(it) } } diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/RealmCryptoStore.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/RealmCryptoStore.kt index 20ca357d1a..7a5087e073 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/RealmCryptoStore.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/RealmCryptoStore.kt @@ -25,6 +25,7 @@ import io.realm.Realm import io.realm.RealmConfiguration import io.realm.Sort import io.realm.kotlin.createObject +import io.realm.kotlin.deleteFromRealm import io.realm.kotlin.where import org.matrix.android.sdk.api.crypto.MXCRYPTO_ALGORITHM_MEGOLM import org.matrix.android.sdk.api.extensions.tryOrNull diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/AuditTrailEntity.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/AuditTrailEntity.kt index 2e0e9c8c8b..e2e665e7f7 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/AuditTrailEntity.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/AuditTrailEntity.kt @@ -16,13 +16,15 @@ package org.matrix.android.sdk.internal.crypto.store.db.model -import io.realm.RealmObject +import io.realm.RealmModel import io.realm.annotations.Index +import io.realm.annotations.RealmClass +@RealmClass internal open class AuditTrailEntity( var ageLocalTs: Long? = null, @Index var type: String? = null, var contentJson: String? = null -) : RealmObject() { +) : RealmModel { companion object } diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/CrossSigningInfoEntity.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/CrossSigningInfoEntity.kt index 5aba9bb9ba..ba2c631d87 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/CrossSigningInfoEntity.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/CrossSigningInfoEntity.kt @@ -17,16 +17,19 @@ package org.matrix.android.sdk.internal.crypto.store.db.model import io.realm.RealmList -import io.realm.RealmObject +import io.realm.RealmModel import io.realm.annotations.PrimaryKey +import io.realm.annotations.RealmClass +import io.realm.kotlin.deleteFromRealm import org.matrix.android.sdk.api.session.crypto.crosssigning.KeyUsage import org.matrix.android.sdk.internal.extensions.clearWith +@RealmClass internal open class CrossSigningInfoEntity( @PrimaryKey var userId: String? = null, var crossSigningKeys: RealmList = RealmList() -) : RealmObject() { +) : RealmModel { companion object diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/CryptoMapper.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/CryptoMapper.kt index ca41930f80..136d345ed8 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/CryptoMapper.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/CryptoMapper.kt @@ -17,6 +17,7 @@ package org.matrix.android.sdk.internal.crypto.store.db.model import com.squareup.moshi.Moshi import com.squareup.moshi.Types +import io.realm.kotlin.deleteFromRealm import org.matrix.android.sdk.api.session.crypto.crosssigning.DeviceTrustLevel import org.matrix.android.sdk.api.session.crypto.model.CryptoDeviceInfo import org.matrix.android.sdk.api.session.crypto.model.UnsignedDeviceInfo diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/CryptoMetadataEntity.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/CryptoMetadataEntity.kt index 88708f824e..9e07b2222b 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/CryptoMetadataEntity.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/CryptoMetadataEntity.kt @@ -16,12 +16,14 @@ package org.matrix.android.sdk.internal.crypto.store.db.model -import io.realm.RealmObject +import io.realm.RealmModel import io.realm.annotations.PrimaryKey +import io.realm.annotations.RealmClass import org.matrix.android.sdk.internal.crypto.store.db.deserializeFromRealm import org.matrix.android.sdk.internal.crypto.store.db.serializeForRealm import org.matrix.olm.OlmAccount +@RealmClass internal open class CryptoMetadataEntity( // The current user id. @PrimaryKey var userId: String? = null, @@ -53,7 +55,7 @@ internal open class CryptoMetadataEntity( var keyBackupRecoveryKeyVersion: String? = null // var crossSigningInfoEntity: CrossSigningInfoEntity? = null -) : RealmObject() { +) : RealmModel { // Deserialize data fun getOlmAccount(): OlmAccount? { diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/CryptoRoomEntity.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/CryptoRoomEntity.kt index be57586163..5ec04e1767 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/CryptoRoomEntity.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/CryptoRoomEntity.kt @@ -16,9 +16,11 @@ package org.matrix.android.sdk.internal.crypto.store.db.model -import io.realm.RealmObject +import io.realm.RealmModel import io.realm.annotations.PrimaryKey +import io.realm.annotations.RealmClass +@RealmClass internal open class CryptoRoomEntity( @PrimaryKey var roomId: String? = null, var algorithm: String? = null, @@ -34,7 +36,7 @@ internal open class CryptoRoomEntity( // even if a new state event with empty encryption, or state is reset somehow var wasEncryptedOnce: Boolean? = false ) : - RealmObject() { + RealmModel { companion object } diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/DeviceInfoEntity.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/DeviceInfoEntity.kt index 61870ec486..6e078fc5bc 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/DeviceInfoEntity.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/DeviceInfoEntity.kt @@ -16,13 +16,16 @@ package org.matrix.android.sdk.internal.crypto.store.db.model -import io.realm.RealmObject +import io.realm.RealmModel import io.realm.RealmResults import io.realm.annotations.LinkingObjects import io.realm.annotations.PrimaryKey +import io.realm.annotations.RealmClass +import io.realm.kotlin.deleteFromRealm internal fun DeviceInfoEntity.Companion.createPrimaryKey(userId: String, deviceId: String) = "$userId|$deviceId" +@RealmClass internal open class DeviceInfoEntity( @PrimaryKey var primaryKey: String = "", var deviceId: String? = null, @@ -40,7 +43,7 @@ internal open class DeviceInfoEntity( * and new ones. Used for example to detect new unverified login */ var firstTimeSeenLocalTs: Long? = null -) : RealmObject() { +) : RealmModel { @LinkingObjects("devices") val users: RealmResults? = null diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/KeyInfoEntity.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/KeyInfoEntity.kt index 9133413589..4656e1aaa7 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/KeyInfoEntity.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/KeyInfoEntity.kt @@ -17,8 +17,11 @@ package org.matrix.android.sdk.internal.crypto.store.db.model import io.realm.RealmList -import io.realm.RealmObject +import io.realm.RealmModel +import io.realm.annotations.RealmClass +import io.realm.kotlin.deleteFromRealm +@RealmClass internal open class KeyInfoEntity( var publicKeyBase64: String? = null, // var isTrusted: Boolean = false, @@ -29,7 +32,7 @@ internal open class KeyInfoEntity( */ var signatures: String? = null, var trustLevelEntity: TrustLevelEntity? = null -) : RealmObject() +) : RealmModel internal fun KeyInfoEntity.deleteOnCascade() { trustLevelEntity?.deleteFromRealm() diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/KeyRequestReplyEntity.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/KeyRequestReplyEntity.kt index 0c7cf79e78..41691b0964 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/KeyRequestReplyEntity.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/KeyRequestReplyEntity.kt @@ -16,15 +16,17 @@ package org.matrix.android.sdk.internal.crypto.store.db.model -import io.realm.RealmObject +import io.realm.RealmModel +import io.realm.annotations.RealmClass import org.matrix.android.sdk.api.session.events.model.Event import org.matrix.android.sdk.internal.di.MoshiProvider +@RealmClass internal open class KeyRequestReplyEntity( var senderId: String? = null, var fromDevice: String? = null, var eventJson: String? = null -) : RealmObject() { +) : RealmModel { companion object fun getEvent(): Event? { diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/KeysBackupDataEntity.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/KeysBackupDataEntity.kt index 99b9e0ccdf..ad2bcbf11d 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/KeysBackupDataEntity.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/KeysBackupDataEntity.kt @@ -16,9 +16,11 @@ package org.matrix.android.sdk.internal.crypto.store.db.model -import io.realm.RealmObject +import io.realm.RealmModel import io.realm.annotations.PrimaryKey +import io.realm.annotations.RealmClass +@RealmClass internal open class KeysBackupDataEntity( // Primary key to update this object. There is only one object, so it's a constant, please do not set it @PrimaryKey @@ -27,4 +29,4 @@ internal open class KeysBackupDataEntity( var backupLastServerHash: String? = null, // The last known number of backed up keys on the server var backupLastServerNumberOfKeys: Int? = null -) : RealmObject() +) : RealmModel diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/MyDeviceLastSeenInfoEntity.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/MyDeviceLastSeenInfoEntity.kt index 74a81d5b01..ccc8aae482 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/MyDeviceLastSeenInfoEntity.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/MyDeviceLastSeenInfoEntity.kt @@ -16,9 +16,11 @@ package org.matrix.android.sdk.internal.crypto.store.db.model -import io.realm.RealmObject +import io.realm.RealmModel import io.realm.annotations.PrimaryKey +import io.realm.annotations.RealmClass +@RealmClass internal open class MyDeviceLastSeenInfoEntity( /** The device id. */ @PrimaryKey var deviceId: String? = null, @@ -28,7 +30,7 @@ internal open class MyDeviceLastSeenInfoEntity( var lastSeenTs: Long? = null, /** The last ip address. */ var lastSeenIp: String? = null -) : RealmObject() { +) : RealmModel { companion object } diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/OlmInboundGroupSessionEntity.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/OlmInboundGroupSessionEntity.kt index 62ab73e379..91907c7740 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/OlmInboundGroupSessionEntity.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/OlmInboundGroupSessionEntity.kt @@ -16,8 +16,9 @@ package org.matrix.android.sdk.internal.crypto.store.db.model -import io.realm.RealmObject +import io.realm.RealmModel import io.realm.annotations.PrimaryKey +import io.realm.annotations.RealmClass import org.matrix.android.sdk.internal.crypto.model.InboundGroupSessionData import org.matrix.android.sdk.internal.crypto.model.MXInboundMegolmSessionWrapper import org.matrix.android.sdk.internal.crypto.store.db.deserializeFromRealm @@ -28,6 +29,7 @@ import timber.log.Timber internal fun OlmInboundGroupSessionEntity.Companion.createPrimaryKey(sessionId: String?, senderKey: String?) = "$sessionId|$senderKey" +@RealmClass internal open class OlmInboundGroupSessionEntity( // Combined value to build a primary key @PrimaryKey var primaryKey: String? = null, @@ -54,7 +56,7 @@ internal open class OlmInboundGroupSessionEntity( // Indicate if the key has been backed up to the homeserver var backedUp: Boolean = false ) : - RealmObject() { + RealmModel { fun store(wrapper: MXInboundMegolmSessionWrapper) { this.serializedOlmInboundGroupSession = serializeForRealm(wrapper.session) diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/OlmSessionEntity.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/OlmSessionEntity.kt index 9f010db288..b302dc8247 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/OlmSessionEntity.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/OlmSessionEntity.kt @@ -16,8 +16,9 @@ package org.matrix.android.sdk.internal.crypto.store.db.model -import io.realm.RealmObject +import io.realm.RealmModel import io.realm.annotations.PrimaryKey +import io.realm.annotations.RealmClass import org.matrix.android.sdk.internal.crypto.store.db.deserializeFromRealm import org.matrix.android.sdk.internal.crypto.store.db.serializeForRealm import org.matrix.olm.OlmSession @@ -25,6 +26,7 @@ import org.matrix.olm.OlmSession internal fun OlmSessionEntity.Companion.createPrimaryKey(sessionId: String, deviceKey: String) = "$sessionId|$deviceKey" // olmSessionData is a serialized OlmSession +@RealmClass internal open class OlmSessionEntity( @PrimaryKey var primaryKey: String = "", var sessionId: String? = null, @@ -32,7 +34,7 @@ internal open class OlmSessionEntity( var olmSessionData: String? = null, var lastReceivedMessageTs: Long = 0 ) : - RealmObject() { + RealmModel { fun getOlmSession(): OlmSession? { return deserializeFromRealm(olmSessionData) diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/OutboundGroupSessionInfoEntity.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/OutboundGroupSessionInfoEntity.kt index 2ebd550201..c974e0ab42 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/OutboundGroupSessionInfoEntity.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/OutboundGroupSessionInfoEntity.kt @@ -16,17 +16,19 @@ package org.matrix.android.sdk.internal.crypto.store.db.model -import io.realm.RealmObject +import io.realm.RealmModel +import io.realm.annotations.RealmClass import org.matrix.android.sdk.internal.crypto.store.db.deserializeFromRealm import org.matrix.android.sdk.internal.crypto.store.db.serializeForRealm import org.matrix.olm.OlmOutboundGroupSession import timber.log.Timber +@RealmClass internal open class OutboundGroupSessionInfoEntity( var serializedOutboundSessionData: String? = null, var creationTime: Long? = null, var shouldShareHistory: Boolean = false -) : RealmObject() { +) : RealmModel { fun getOutboundGroupSession(): OlmOutboundGroupSession? { return try { diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/OutgoingKeyRequestEntity.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/OutgoingKeyRequestEntity.kt index 854d148b76..7d68b5f9b2 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/OutgoingKeyRequestEntity.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/OutgoingKeyRequestEntity.kt @@ -19,8 +19,10 @@ package org.matrix.android.sdk.internal.crypto.store.db.model import com.squareup.moshi.JsonAdapter import com.squareup.moshi.Types import io.realm.RealmList -import io.realm.RealmObject +import io.realm.RealmModel import io.realm.annotations.Index +import io.realm.annotations.RealmClass +import io.realm.kotlin.deleteFromRealm import org.matrix.android.sdk.api.extensions.tryOrNull import org.matrix.android.sdk.api.session.crypto.OutgoingKeyRequest import org.matrix.android.sdk.api.session.crypto.OutgoingRoomKeyRequestState @@ -33,6 +35,7 @@ import org.matrix.android.sdk.api.session.events.model.content.RoomKeyWithHeldCo import org.matrix.android.sdk.api.session.events.model.toModel import org.matrix.android.sdk.internal.di.MoshiProvider +@RealmClass internal open class OutgoingKeyRequestEntity( @Index var requestId: String? = null, var requestedIndex: Int? = null, @@ -44,7 +47,7 @@ internal open class OutgoingKeyRequestEntity( @Index var megolmSessionId: String? = null, var replies: RealmList = RealmList() -) : RealmObject() { +) : RealmModel { @Index private var requestStateStr: String = OutgoingRoomKeyRequestState.UNSENT.name diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/SharedSessionEntity.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/SharedSessionEntity.kt index e2ae512afd..feae7764fc 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/SharedSessionEntity.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/SharedSessionEntity.kt @@ -16,14 +16,16 @@ package org.matrix.android.sdk.internal.crypto.store.db.model -import io.realm.RealmObject +import io.realm.RealmModel import io.realm.annotations.Index +import io.realm.annotations.RealmClass /** * Keep a record of to whom (user/device) a given session should have been shared. * It will be used to reply to keyshare requests from other users, in order to see if * this session was originaly shared with a given user */ +@RealmClass internal open class SharedSessionEntity( var roomId: String? = null, var algorithm: String? = null, @@ -32,7 +34,7 @@ internal open class SharedSessionEntity( @Index var deviceId: String? = null, @Index var deviceIdentityKey: String? = null, var chainIndex: Int? = null -) : RealmObject() { +) : RealmModel { companion object } diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/TrustLevelEntity.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/TrustLevelEntity.kt index 5647eb8aa0..a860db2358 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/TrustLevelEntity.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/TrustLevelEntity.kt @@ -16,12 +16,14 @@ package org.matrix.android.sdk.internal.crypto.store.db.model -import io.realm.RealmObject +import io.realm.RealmModel +import io.realm.annotations.RealmClass +@RealmClass internal open class TrustLevelEntity( var crossSignedVerified: Boolean? = null, var locallyVerified: Boolean? = null -) : RealmObject() { +) : RealmModel { companion object diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/UserEntity.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/UserEntity.kt index df9482bf96..af26a87fef 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/UserEntity.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/UserEntity.kt @@ -17,16 +17,19 @@ package org.matrix.android.sdk.internal.crypto.store.db.model import io.realm.RealmList -import io.realm.RealmObject +import io.realm.RealmModel import io.realm.annotations.PrimaryKey +import io.realm.annotations.RealmClass +import io.realm.kotlin.deleteFromRealm import org.matrix.android.sdk.internal.extensions.clearWith +@RealmClass internal open class UserEntity( @PrimaryKey var userId: String? = null, var devices: RealmList = RealmList(), var crossSigningInfoEntity: CrossSigningInfoEntity? = null, var deviceTrackingStatus: Int = 0 -) : RealmObject() { +) : RealmModel { companion object } diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/WithHeldSessionEntity.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/WithHeldSessionEntity.kt index 93048e5775..95d9ec14b4 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/WithHeldSessionEntity.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/model/WithHeldSessionEntity.kt @@ -16,8 +16,9 @@ package org.matrix.android.sdk.internal.crypto.store.db.model -import io.realm.RealmObject +import io.realm.RealmModel import io.realm.annotations.Index +import io.realm.annotations.RealmClass import org.matrix.android.sdk.api.session.events.model.content.WithHeldCode /** @@ -27,6 +28,7 @@ import org.matrix.android.sdk.api.session.events.model.content.WithHeldCode * For example, the sender may have blacklisted certain devices or users, * or may be choosing to not send the megolm key to devices that they have not verified yet. */ +@RealmClass internal open class WithHeldSessionEntity( var roomId: String? = null, var algorithm: String? = null, @@ -34,7 +36,7 @@ internal open class WithHeldSessionEntity( @Index var senderKey: String? = null, var codeString: String? = null, var reason: String? = null -) : RealmObject() { +) : RealmModel { var code: WithHeldCode? get() { diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/RealmLiveEntityObserver.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/RealmLiveEntityObserver.kt index f2f88e216b..378fe499d1 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/RealmLiveEntityObserver.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/RealmLiveEntityObserver.kt @@ -20,6 +20,7 @@ import com.zhuinden.monarchy.Monarchy import io.realm.Realm import io.realm.RealmChangeListener import io.realm.RealmConfiguration +import io.realm.RealmModel import io.realm.RealmObject import io.realm.RealmResults import kotlinx.coroutines.CoroutineScope @@ -34,7 +35,7 @@ import java.util.concurrent.atomic.AtomicReference internal interface LiveEntityObserver : SessionLifecycleObserver -internal abstract class RealmLiveEntityObserver(protected val realmConfiguration: RealmConfiguration) : +internal abstract class RealmLiveEntityObserver(protected val realmConfiguration: RealmConfiguration) : LiveEntityObserver, RealmChangeListener> { private companion object { diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/helper/ChunkEntityHelper.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/helper/ChunkEntityHelper.kt index 221abe0df5..ca3697885e 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/helper/ChunkEntityHelper.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/helper/ChunkEntityHelper.kt @@ -17,6 +17,7 @@ package org.matrix.android.sdk.internal.database.helper import io.realm.Realm +import io.realm.RealmObject import io.realm.kotlin.createObject import org.matrix.android.sdk.api.session.events.model.content.EncryptedEventContent import org.matrix.android.sdk.api.session.events.model.toModel @@ -38,6 +39,7 @@ import org.matrix.android.sdk.internal.database.query.find import org.matrix.android.sdk.internal.database.query.findLastForwardChunkOfRoom import org.matrix.android.sdk.internal.database.query.getOrCreate import org.matrix.android.sdk.internal.database.query.where +import org.matrix.android.sdk.internal.extensions.realm import org.matrix.android.sdk.internal.session.room.timeline.PaginationDirection import timber.log.Timber diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/helper/ThreadEventsHelper.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/helper/ThreadEventsHelper.kt index dfac7f6708..b90b8c2028 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/helper/ThreadEventsHelper.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/helper/ThreadEventsHelper.kt @@ -18,6 +18,7 @@ package org.matrix.android.sdk.internal.database.helper import com.squareup.moshi.JsonDataException import io.realm.Realm +import io.realm.RealmModel import io.realm.RealmQuery import io.realm.Sort import org.matrix.android.sdk.api.session.events.model.UnsignedData @@ -37,6 +38,7 @@ import org.matrix.android.sdk.internal.database.query.findLastForwardChunkOfRoom import org.matrix.android.sdk.internal.database.query.where import org.matrix.android.sdk.internal.database.query.whereRoomId import org.matrix.android.sdk.internal.di.MoshiProvider +import org.matrix.android.sdk.internal.extensions.realm import timber.log.Timber private typealias Summary = Pair? diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/helper/ThreadSummaryHelper.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/helper/ThreadSummaryHelper.kt index 0a6d4bf833..417a4a8808 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/helper/ThreadSummaryHelper.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/helper/ThreadSummaryHelper.kt @@ -44,6 +44,7 @@ import org.matrix.android.sdk.internal.database.query.copyToRealmOrIgnore import org.matrix.android.sdk.internal.database.query.getOrCreate import org.matrix.android.sdk.internal.database.query.getOrNull import org.matrix.android.sdk.internal.database.query.where +import org.matrix.android.sdk.internal.extensions.realm import org.matrix.android.sdk.internal.session.events.getFixedRoomMemberContent import org.matrix.android.sdk.internal.session.room.timeline.TimelineEventDecryptor import timber.log.Timber diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/mapper/ReadReceiptsSummaryMapper.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/mapper/ReadReceiptsSummaryMapper.kt index 2be4510b6f..065bf8eb1c 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/mapper/ReadReceiptsSummaryMapper.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/mapper/ReadReceiptsSummaryMapper.kt @@ -18,12 +18,14 @@ package org.matrix.android.sdk.internal.database.mapper import io.realm.Realm import io.realm.RealmList +import io.realm.kotlin.isManaged import org.matrix.android.sdk.api.session.room.model.ReadReceipt import org.matrix.android.sdk.internal.database.RealmSessionProvider import org.matrix.android.sdk.internal.database.model.ReadReceiptEntity import org.matrix.android.sdk.internal.database.model.ReadReceiptsSummaryEntity import org.matrix.android.sdk.internal.database.model.RoomMemberSummaryEntity import org.matrix.android.sdk.internal.database.query.where +import org.matrix.android.sdk.internal.extensions.realm import javax.inject.Inject internal class ReadReceiptsSummaryMapper @Inject constructor( @@ -36,7 +38,7 @@ internal class ReadReceiptsSummaryMapper @Inject constructor( } val readReceipts = readReceiptsSummaryEntity.readReceipts // Avoid opening a new realm if we already have one opened - return if (readReceiptsSummaryEntity.isManaged) { + return if (readReceiptsSummaryEntity.isManaged()) { map(readReceipts, readReceiptsSummaryEntity.realm) } else { realmSessionProvider.withRealm { realm -> diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/BreadcrumbsEntity.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/BreadcrumbsEntity.kt index 07554d859b..c587ef15e6 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/BreadcrumbsEntity.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/BreadcrumbsEntity.kt @@ -17,11 +17,13 @@ package org.matrix.android.sdk.internal.database.model import io.realm.RealmList -import io.realm.RealmObject +import io.realm.RealmModel +import io.realm.annotations.RealmClass +@RealmClass internal open class BreadcrumbsEntity( var recentRoomIds: RealmList = RealmList() -) : RealmObject() { +) : RealmModel { companion object } diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/ChunkEntity.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/ChunkEntity.kt index e5360ce0b6..0bcfbebc6b 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/ChunkEntity.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/ChunkEntity.kt @@ -17,13 +17,16 @@ package org.matrix.android.sdk.internal.database.model import io.realm.RealmList -import io.realm.RealmObject +import io.realm.RealmModel import io.realm.RealmResults import io.realm.annotations.Index import io.realm.annotations.LinkingObjects +import io.realm.annotations.RealmClass +import io.realm.kotlin.deleteFromRealm import org.matrix.android.sdk.internal.extensions.assertIsManaged import org.matrix.android.sdk.internal.extensions.clearWith +@RealmClass internal open class ChunkEntity( @Index var prevToken: String? = null, // Because of gaps we can have several chunks with nextToken == null @@ -38,7 +41,7 @@ internal open class ChunkEntity( // Threads @Index var rootThreadEventId: String? = null, @Index var isLastForwardThread: Boolean = false, -) : RealmObject() { +) : RealmModel { fun identifier() = "${prevToken}_$nextToken" diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/CurrentStateEventEntity.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/CurrentStateEventEntity.kt index 9deef69dab..11b2696fe9 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/CurrentStateEventEntity.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/CurrentStateEventEntity.kt @@ -17,15 +17,17 @@ package org.matrix.android.sdk.internal.database.model -import io.realm.RealmObject +import io.realm.RealmModel import io.realm.annotations.Index +import io.realm.annotations.RealmClass +@RealmClass internal open class CurrentStateEventEntity( var eventId: String = "", var root: EventEntity? = null, @Index var roomId: String = "", @Index var type: String = "", @Index var stateKey: String = "" -) : RealmObject() { +) : RealmModel { companion object } diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/DraftEntity.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/DraftEntity.kt index 3c19d4d443..bd31f3317f 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/DraftEntity.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/DraftEntity.kt @@ -16,13 +16,15 @@ package org.matrix.android.sdk.internal.database.model -import io.realm.RealmObject +import io.realm.RealmModel +import io.realm.annotations.RealmClass +@RealmClass internal open class DraftEntity( var content: String = "", var draftMode: String = MODE_REGULAR, var linkedEventId: String = "" -) : RealmObject() { +) : RealmModel { companion object { const val MODE_REGULAR = "REGULAR" diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/EditAggregatedSummaryEntity.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/EditAggregatedSummaryEntity.kt index 61acd51dd4..7418e104b0 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/EditAggregatedSummaryEntity.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/EditAggregatedSummaryEntity.kt @@ -16,16 +16,17 @@ package org.matrix.android.sdk.internal.database.model import io.realm.RealmList -import io.realm.RealmObject +import io.realm.RealmModel import io.realm.annotations.RealmClass /** * Keep all the editions of a message. */ +@RealmClass internal open class EditAggregatedSummaryEntity( // The list of the editions used to build the summary (might be out of sync if chunked received from message chunk) var editions: RealmList = RealmList() -) : RealmObject() { +) : RealmModel { companion object } @@ -37,4 +38,4 @@ internal open class EditionOfEvent( var content: String? = null, var timestamp: Long = 0, var isLocalEcho: Boolean = false -) : RealmObject() +) : RealmModel diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/EventAnnotationsSummaryEntity.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/EventAnnotationsSummaryEntity.kt index 645998d0c0..382a036241 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/EventAnnotationsSummaryEntity.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/EventAnnotationsSummaryEntity.kt @@ -16,11 +16,14 @@ package org.matrix.android.sdk.internal.database.model import io.realm.RealmList -import io.realm.RealmObject +import io.realm.RealmModel import io.realm.annotations.PrimaryKey +import io.realm.annotations.RealmClass +import io.realm.kotlin.deleteFromRealm import org.matrix.android.sdk.internal.database.model.livelocation.LiveLocationShareAggregatedSummaryEntity import timber.log.Timber +@RealmClass internal open class EventAnnotationsSummaryEntity( @PrimaryKey var eventId: String = "", @@ -30,7 +33,7 @@ internal open class EventAnnotationsSummaryEntity( var referencesSummaryEntity: ReferencesAggregatedSummaryEntity? = null, var pollResponseSummary: PollResponseAggregatedSummaryEntity? = null, var liveLocationShareAggregatedSummary: LiveLocationShareAggregatedSummaryEntity? = null, -) : RealmObject() { +) : RealmModel { /** * Cleanup undesired editions, done by users different from the originalEventSender. diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/EventEntity.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/EventEntity.kt index 8b5a211fba..92d19c0f61 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/EventEntity.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/EventEntity.kt @@ -16,8 +16,10 @@ package org.matrix.android.sdk.internal.database.model +import io.realm.RealmModel import io.realm.RealmObject import io.realm.annotations.Index +import io.realm.annotations.RealmClass import org.matrix.android.sdk.api.session.crypto.model.MXEventDecryptionResult import org.matrix.android.sdk.api.session.crypto.model.OlmDecryptionResult import org.matrix.android.sdk.api.session.room.send.SendState @@ -25,6 +27,7 @@ import org.matrix.android.sdk.api.session.threads.ThreadNotificationState import org.matrix.android.sdk.internal.di.MoshiProvider import org.matrix.android.sdk.internal.extensions.assertIsManaged +@RealmClass internal open class EventEntity( @Index var eventId: String = "", @Index var roomId: String = "", @@ -48,7 +51,7 @@ internal open class EventEntity( // Number messages within the thread var numberOfThreads: Int = 0, var threadSummaryLatestMessage: TimelineEventEntity? = null -) : RealmObject() { +) : RealmModel { private var sendStateStr: String = SendState.UNKNOWN.name @@ -95,7 +98,7 @@ internal open class EventEntity( decryptionErrorReason = null // If we have an EventInsertEntity for the eventId we make sures it can be processed now. - realm.where(EventInsertEntity::class.java) + RealmObject.getRealm(this).where(EventInsertEntity::class.java) .equalTo(EventInsertEntityFields.EVENT_ID, eventId) .findFirst() ?.canBeProcessed = true diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/EventInsertEntity.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/EventInsertEntity.kt index eff332dc3a..153544cb3f 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/EventInsertEntity.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/EventInsertEntity.kt @@ -16,12 +16,14 @@ package org.matrix.android.sdk.internal.database.model -import io.realm.RealmObject +import io.realm.RealmModel +import io.realm.annotations.RealmClass /** * This class is used to get notification on new events being inserted. It's to avoid realm getting slow when listening to insert * in EventEntity table. */ +@RealmClass internal open class EventInsertEntity( var eventId: String = "", var eventType: String = "", @@ -30,7 +32,7 @@ internal open class EventInsertEntity( * Currently it's set to false when the event content is encrypted. */ var canBeProcessed: Boolean = true -) : RealmObject() { +) : RealmModel { private var insertTypeStr: String = EventInsertType.INCREMENTAL_SYNC.name var insertType: EventInsertType diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/FilterEntity.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/FilterEntity.kt index e138e305c7..ab99295185 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/FilterEntity.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/FilterEntity.kt @@ -16,12 +16,14 @@ package org.matrix.android.sdk.internal.database.model -import io.realm.RealmObject +import io.realm.RealmModel +import io.realm.annotations.RealmClass /** * Contain a map between Json filter string and filterId (from Homeserver). * Currently there is only one object in this table. */ +@RealmClass internal open class FilterEntity( // The serialized FilterBody var filterBodyJson: String = "", @@ -30,7 +32,7 @@ internal open class FilterEntity( // the id server side of the filterBodyJson, can be used instead of filterBodyJson if not blank var filterId: String = "" -) : RealmObject() { +) : RealmModel { companion object } diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/GroupEntity.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/GroupEntity.kt index 0120bb91d3..a90a8b281e 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/GroupEntity.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/GroupEntity.kt @@ -16,16 +16,18 @@ package org.matrix.android.sdk.internal.database.model -import io.realm.RealmObject +import io.realm.RealmModel import io.realm.annotations.PrimaryKey +import io.realm.annotations.RealmClass import org.matrix.android.sdk.api.session.room.model.Membership /** * This class is used to store group info (groupId and membership) from the sync response. * Then GetGroupDataTask is called regularly to fetch group information from the homeserver. */ +@RealmClass internal open class GroupEntity(@PrimaryKey var groupId: String = "") : - RealmObject() { + RealmModel { private var membershipStr: String = Membership.NONE.name var membership: Membership diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/GroupSummaryEntity.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/GroupSummaryEntity.kt index d965148559..f4f6a0d1a4 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/GroupSummaryEntity.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/GroupSummaryEntity.kt @@ -17,10 +17,12 @@ package org.matrix.android.sdk.internal.database.model import io.realm.RealmList -import io.realm.RealmObject +import io.realm.RealmModel import io.realm.annotations.PrimaryKey +import io.realm.annotations.RealmClass import org.matrix.android.sdk.api.session.room.model.Membership +@RealmClass internal open class GroupSummaryEntity( @PrimaryKey var groupId: String = "", var displayName: String = "", @@ -28,7 +30,7 @@ internal open class GroupSummaryEntity( var avatarUrl: String = "", var roomIds: RealmList = RealmList(), var userIds: RealmList = RealmList() -) : RealmObject() { +) : RealmModel { private var membershipStr: String = Membership.NONE.name var membership: Membership diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/HomeServerCapabilitiesEntity.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/HomeServerCapabilitiesEntity.kt index 9d90973f8a..01c1fda738 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/HomeServerCapabilitiesEntity.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/HomeServerCapabilitiesEntity.kt @@ -16,9 +16,11 @@ package org.matrix.android.sdk.internal.database.model -import io.realm.RealmObject +import io.realm.RealmModel +import io.realm.annotations.RealmClass import org.matrix.android.sdk.api.session.homeserver.HomeServerCapabilities +@RealmClass internal open class HomeServerCapabilitiesEntity( var canChangePassword: Boolean = true, var canChangeDisplayName: Boolean = true, @@ -31,7 +33,7 @@ internal open class HomeServerCapabilitiesEntity( var lastUpdatedTimestamp: Long = 0L, var canUseThreading: Boolean = false, var canControlLogoutDevices: Boolean = false -) : RealmObject() { +) : RealmModel { companion object } diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/IgnoredUserEntity.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/IgnoredUserEntity.kt index d16bf89da2..ad42dfe7c4 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/IgnoredUserEntity.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/IgnoredUserEntity.kt @@ -16,9 +16,11 @@ package org.matrix.android.sdk.internal.database.model -import io.realm.RealmObject +import io.realm.RealmModel +import io.realm.annotations.RealmClass -internal open class IgnoredUserEntity(var userId: String = "") : RealmObject() { +@RealmClass +internal open class IgnoredUserEntity(var userId: String = "") : RealmModel { companion object } diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/KnownServerUrlEntity.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/KnownServerUrlEntity.kt index 1ebdc22ab4..138479eaf8 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/KnownServerUrlEntity.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/KnownServerUrlEntity.kt @@ -16,12 +16,14 @@ package org.matrix.android.sdk.internal.database.model -import io.realm.RealmObject +import io.realm.RealmModel import io.realm.annotations.PrimaryKey +import io.realm.annotations.RealmClass +@RealmClass internal open class KnownServerUrlEntity( @PrimaryKey var url: String = "" -) : RealmObject() { +) : RealmModel { companion object } diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/PendingThreePidEntity.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/PendingThreePidEntity.kt index bcf64e0da8..3250cbd1ab 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/PendingThreePidEntity.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/PendingThreePidEntity.kt @@ -16,11 +16,13 @@ package org.matrix.android.sdk.internal.database.model -import io.realm.RealmObject +import io.realm.RealmModel +import io.realm.annotations.RealmClass /** * This class is used to store pending threePid data, when user wants to add a threePid to his account. */ +@RealmClass internal open class PendingThreePidEntity( var email: String? = null, var msisdn: String? = null, @@ -28,4 +30,4 @@ internal open class PendingThreePidEntity( var sendAttempt: Int = 0, var sid: String = "", var submitUrl: String? = null -) : RealmObject() +) : RealmModel diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/PollResponseAggregatedSummaryEntity.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/PollResponseAggregatedSummaryEntity.kt index d759bd3cd9..d48bb8f9ea 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/PollResponseAggregatedSummaryEntity.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/PollResponseAggregatedSummaryEntity.kt @@ -16,11 +16,13 @@ package org.matrix.android.sdk.internal.database.model import io.realm.RealmList -import io.realm.RealmObject +import io.realm.RealmModel +import io.realm.annotations.RealmClass /** * Keep the latest state of a poll. */ +@RealmClass internal open class PollResponseAggregatedSummaryEntity( // For now we persist this a JSON for greater flexibility // #see PollSummaryContent @@ -34,7 +36,7 @@ internal open class PollResponseAggregatedSummaryEntity( // The list of the eventIDs used to build the summary (might be out of sync if chunked received from message chunk) var sourceEvents: RealmList = RealmList(), var sourceLocalEchoEvents: RealmList = RealmList() -) : RealmObject() { +) : RealmModel { companion object } diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/PreviewUrlCacheEntity.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/PreviewUrlCacheEntity.kt index f19d70a1f2..a4809a7a01 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/PreviewUrlCacheEntity.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/PreviewUrlCacheEntity.kt @@ -16,9 +16,11 @@ package org.matrix.android.sdk.internal.database.model -import io.realm.RealmObject +import io.realm.RealmModel import io.realm.annotations.PrimaryKey +import io.realm.annotations.RealmClass +@RealmClass internal open class PreviewUrlCacheEntity( @PrimaryKey var url: String = "", @@ -31,7 +33,7 @@ internal open class PreviewUrlCacheEntity( var imageWidth: Int? = null, var imageHeight: Int? = null, var lastUpdatedTimestamp: Long = 0L -) : RealmObject() { +) : RealmModel { companion object } diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/PushConditionEntity.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/PushConditionEntity.kt index 7485680c49..7e909f987f 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/PushConditionEntity.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/PushConditionEntity.kt @@ -15,14 +15,16 @@ */ package org.matrix.android.sdk.internal.database.model -import io.realm.RealmObject +import io.realm.RealmModel +import io.realm.annotations.RealmClass +@RealmClass internal open class PushConditionEntity( var kind: String = "", var key: String? = null, var pattern: String? = null, var iz: String? = null -) : RealmObject() { +) : RealmModel { companion object } diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/PushRuleEntity.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/PushRuleEntity.kt index 5bfe2833f8..c76d374550 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/PushRuleEntity.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/PushRuleEntity.kt @@ -16,10 +16,13 @@ package org.matrix.android.sdk.internal.database.model import io.realm.RealmList -import io.realm.RealmObject +import io.realm.RealmModel import io.realm.RealmResults import io.realm.annotations.LinkingObjects +import io.realm.annotations.RealmClass +import io.realm.kotlin.deleteFromRealm +@RealmClass internal open class PushRuleEntity( // Required. The actions to perform when this rule is matched. var actionsStr: String? = null, @@ -33,7 +36,7 @@ internal open class PushRuleEntity( var conditions: RealmList? = RealmList(), // The glob-style pattern to match against. Only applicable to content rules. var pattern: String? = null -) : RealmObject() { +) : RealmModel { @LinkingObjects("pushRules") val parent: RealmResults? = null diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/PushRulesEntity.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/PushRulesEntity.kt index 62bf40c1d2..e4bed7002a 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/PushRulesEntity.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/PushRulesEntity.kt @@ -16,14 +16,17 @@ package org.matrix.android.sdk.internal.database.model import io.realm.RealmList -import io.realm.RealmObject +import io.realm.RealmModel +import io.realm.annotations.RealmClass +import io.realm.kotlin.deleteFromRealm import org.matrix.android.sdk.api.session.pushrules.RuleKind import org.matrix.android.sdk.internal.extensions.clearWith +@RealmClass internal open class PushRulesEntity( var scope: String = "", var pushRules: RealmList = RealmList() -) : RealmObject() { +) : RealmModel { private var kindStr: String = RuleKind.CONTENT.name var kind: RuleKind diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/PusherDataEntity.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/PusherDataEntity.kt index f12cf70db5..976abb01dd 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/PusherDataEntity.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/PusherDataEntity.kt @@ -15,11 +15,13 @@ */ package org.matrix.android.sdk.internal.database.model -import io.realm.RealmObject +import io.realm.RealmModel +import io.realm.annotations.RealmClass +@RealmClass internal open class PusherDataEntity( var url: String? = null, var format: String? = null -) : RealmObject() { +) : RealmModel { companion object } diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/PusherEntity.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/PusherEntity.kt index af8e4f2d37..164ae06ec1 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/PusherEntity.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/PusherEntity.kt @@ -15,7 +15,9 @@ */ package org.matrix.android.sdk.internal.database.model -import io.realm.RealmObject +import io.realm.RealmModel +import io.realm.annotations.RealmClass +import io.realm.kotlin.deleteFromRealm import org.matrix.android.sdk.api.session.pushers.PusherState // TODO @@ -27,6 +29,7 @@ import org.matrix.android.sdk.api.session.pushers.PusherState // at org.matrix.android.sdk.internal.database.model.PusherEntity.setData(PusherEntity.kt:16) // at org.matrix.android.sdk.internal.session.pushers.AddHttpPusherWorker$doWork$$inlined$fold$lambda$2.execute(AddHttpPusherWorker.kt:70) // at io.realm.Realm.executeTransaction(Realm.java:1493) +@RealmClass internal open class PusherEntity( var pushKey: String = "", var kind: String? = null, @@ -36,7 +39,7 @@ internal open class PusherEntity( var profileTag: String? = null, var lang: String? = null, var data: PusherDataEntity? = null -) : RealmObject() { +) : RealmModel { private var stateStr: String = PusherState.UNREGISTERED.name var state: PusherState diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/RawCacheEntity.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/RawCacheEntity.kt index 4f271a9ab7..839ae33f32 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/RawCacheEntity.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/RawCacheEntity.kt @@ -16,15 +16,17 @@ package org.matrix.android.sdk.internal.database.model -import io.realm.RealmObject +import io.realm.RealmModel import io.realm.annotations.PrimaryKey +import io.realm.annotations.RealmClass +@RealmClass internal open class RawCacheEntity( @PrimaryKey var url: String = "", var data: String = "", var lastUpdatedTimestamp: Long = 0L -) : RealmObject() { +) : RealmModel { companion object } diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/ReactionAggregatedSummaryEntity.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/ReactionAggregatedSummaryEntity.kt index ae916ae579..d682ded9e5 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/ReactionAggregatedSummaryEntity.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/ReactionAggregatedSummaryEntity.kt @@ -17,11 +17,13 @@ package org.matrix.android.sdk.internal.database.model import io.realm.RealmList -import io.realm.RealmObject +import io.realm.RealmModel +import io.realm.annotations.RealmClass /** * Aggregated Summary of a reaction. */ +@RealmClass internal open class ReactionAggregatedSummaryEntity( // The reaction String 😀 var key: String = "", @@ -35,7 +37,7 @@ internal open class ReactionAggregatedSummaryEntity( var sourceEvents: RealmList = RealmList(), // List of transaction ids for local echos var sourceLocalEcho: RealmList = RealmList() -) : RealmObject() { +) : RealmModel { companion object } diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/ReadMarkerEntity.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/ReadMarkerEntity.kt index 965665c581..04fa2e3c4d 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/ReadMarkerEntity.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/ReadMarkerEntity.kt @@ -16,14 +16,16 @@ package org.matrix.android.sdk.internal.database.model -import io.realm.RealmObject +import io.realm.RealmModel import io.realm.annotations.PrimaryKey +import io.realm.annotations.RealmClass +@RealmClass internal open class ReadMarkerEntity( @PrimaryKey var roomId: String = "", var eventId: String = "" -) : RealmObject() { +) : RealmModel { companion object } diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/ReadReceiptEntity.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/ReadReceiptEntity.kt index 9623c95359..b6f0f64076 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/ReadReceiptEntity.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/ReadReceiptEntity.kt @@ -16,18 +16,20 @@ package org.matrix.android.sdk.internal.database.model -import io.realm.RealmObject +import io.realm.RealmModel import io.realm.RealmResults import io.realm.annotations.LinkingObjects import io.realm.annotations.PrimaryKey +import io.realm.annotations.RealmClass +@RealmClass internal open class ReadReceiptEntity( @PrimaryKey var primaryKey: String = "", var eventId: String = "", var roomId: String = "", var userId: String = "", var originServerTs: Double = 0.0 -) : RealmObject() { +) : RealmModel { companion object @LinkingObjects("readReceipts") diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/ReadReceiptsSummaryEntity.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/ReadReceiptsSummaryEntity.kt index 9ca4adc33e..d4321b7322 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/ReadReceiptsSummaryEntity.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/ReadReceiptsSummaryEntity.kt @@ -17,17 +17,20 @@ package org.matrix.android.sdk.internal.database.model import io.realm.RealmList -import io.realm.RealmObject +import io.realm.RealmModel import io.realm.RealmResults import io.realm.annotations.LinkingObjects import io.realm.annotations.PrimaryKey +import io.realm.annotations.RealmClass +import io.realm.kotlin.deleteFromRealm +@RealmClass internal open class ReadReceiptsSummaryEntity( @PrimaryKey var eventId: String = "", var roomId: String = "", var readReceipts: RealmList = RealmList() -) : RealmObject() { +) : RealmModel { @LinkingObjects("readReceipts") val timelineEvent: RealmResults? = null diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/ReferencesAggregatedSummaryEntity.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/ReferencesAggregatedSummaryEntity.kt index 979ef4d0d3..fae124d893 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/ReferencesAggregatedSummaryEntity.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/ReferencesAggregatedSummaryEntity.kt @@ -16,8 +16,10 @@ package org.matrix.android.sdk.internal.database.model import io.realm.RealmList -import io.realm.RealmObject +import io.realm.RealmModel +import io.realm.annotations.RealmClass +@RealmClass internal open class ReferencesAggregatedSummaryEntity( var eventId: String = "", var content: String? = null, @@ -25,7 +27,7 @@ internal open class ReferencesAggregatedSummaryEntity( var sourceEvents: RealmList = RealmList(), // List of transaction ids for local echos var sourceLocalEcho: RealmList = RealmList() -) : RealmObject() { +) : RealmModel { companion object } diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/RoomAccountDataEntity.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/RoomAccountDataEntity.kt index 40040b5738..0236cd361a 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/RoomAccountDataEntity.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/RoomAccountDataEntity.kt @@ -16,7 +16,7 @@ package org.matrix.android.sdk.internal.database.model -import io.realm.RealmObject +import io.realm.RealmModel import io.realm.annotations.Index import io.realm.annotations.RealmClass @@ -24,4 +24,4 @@ import io.realm.annotations.RealmClass internal open class RoomAccountDataEntity( @Index var type: String? = null, var contentStr: String? = null -) : RealmObject() +) : RealmModel diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/RoomEntity.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/RoomEntity.kt index d2116fa9b8..51ae8f33cf 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/RoomEntity.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/RoomEntity.kt @@ -17,20 +17,23 @@ package org.matrix.android.sdk.internal.database.model import io.realm.RealmList -import io.realm.RealmObject +import io.realm.RealmModel import io.realm.annotations.PrimaryKey +import io.realm.annotations.RealmClass +import io.realm.kotlin.deleteFromRealm import org.matrix.android.sdk.api.session.room.model.Membership import org.matrix.android.sdk.internal.database.model.threads.ThreadSummaryEntity import org.matrix.android.sdk.internal.database.query.findRootOrLatest import org.matrix.android.sdk.internal.extensions.assertIsManaged +@RealmClass internal open class RoomEntity( @PrimaryKey var roomId: String = "", var chunks: RealmList = RealmList(), var sendingTimelineEvents: RealmList = RealmList(), var threadSummaries: RealmList = RealmList(), var accountData: RealmList = RealmList() -) : RealmObject() { +) : RealmModel { private var membershipStr: String = Membership.NONE.name var membership: Membership diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/RoomMemberSummaryEntity.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/RoomMemberSummaryEntity.kt index 6fb9324fcd..f4be315440 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/RoomMemberSummaryEntity.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/RoomMemberSummaryEntity.kt @@ -16,13 +16,15 @@ package org.matrix.android.sdk.internal.database.model -import io.realm.RealmObject +import io.realm.RealmModel import io.realm.annotations.Index import io.realm.annotations.PrimaryKey +import io.realm.annotations.RealmClass import org.matrix.android.sdk.api.session.room.model.Membership import org.matrix.android.sdk.api.util.MatrixItem import org.matrix.android.sdk.internal.database.model.presence.UserPresenceEntity +@RealmClass internal open class RoomMemberSummaryEntity( @PrimaryKey var primaryKey: String = "", @Index var userId: String = "", @@ -31,7 +33,7 @@ internal open class RoomMemberSummaryEntity( var avatarUrl: String? = null, var reason: String? = null, var isDirect: Boolean = false -) : RealmObject() { +) : RealmModel { private var membershipStr: String = Membership.NONE.name var membership: Membership diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/RoomSummaryEntity.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/RoomSummaryEntity.kt index cd755590be..b88ba74bb1 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/RoomSummaryEntity.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/RoomSummaryEntity.kt @@ -17,9 +17,11 @@ package org.matrix.android.sdk.internal.database.model import io.realm.RealmList -import io.realm.RealmObject +import io.realm.RealmModel import io.realm.annotations.Index import io.realm.annotations.PrimaryKey +import io.realm.annotations.RealmClass +import io.realm.kotlin.deleteFromRealm import org.matrix.android.sdk.api.extensions.tryOrNull import org.matrix.android.sdk.api.session.crypto.model.RoomEncryptionTrustLevel import org.matrix.android.sdk.api.session.room.model.Membership @@ -30,12 +32,13 @@ import org.matrix.android.sdk.api.session.room.model.tag.RoomTag import org.matrix.android.sdk.internal.database.model.presence.UserPresenceEntity import org.matrix.android.sdk.internal.session.room.membership.RoomName +@RealmClass internal open class RoomSummaryEntity( @PrimaryKey var roomId: String = "", var roomType: String? = null, var parents: RealmList = RealmList(), var children: RealmList = RealmList() -) : RealmObject() { +) : RealmModel { private var displayName: String? = "" diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/RoomTagEntity.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/RoomTagEntity.kt index a7fe71f3e4..46a5e679e5 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/RoomTagEntity.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/RoomTagEntity.kt @@ -16,12 +16,14 @@ package org.matrix.android.sdk.internal.database.model -import io.realm.RealmObject +import io.realm.RealmModel +import io.realm.annotations.RealmClass +@RealmClass internal open class RoomTagEntity( var tagName: String = "", var tagOrder: Double? = null -) : RealmObject() { +) : RealmModel { companion object } diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/ScalarTokenEntity.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/ScalarTokenEntity.kt index 9beab4b579..e54f61c886 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/ScalarTokenEntity.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/ScalarTokenEntity.kt @@ -16,13 +16,15 @@ package org.matrix.android.sdk.internal.database.model -import io.realm.RealmObject +import io.realm.RealmModel import io.realm.annotations.PrimaryKey +import io.realm.annotations.RealmClass +@RealmClass internal open class ScalarTokenEntity( @PrimaryKey var serverUrl: String = "", var token: String = "" -) : RealmObject() { +) : RealmModel { companion object } diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/SpaceChildSummaryEntity.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/SpaceChildSummaryEntity.kt index ce1afbb507..b11513d560 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/SpaceChildSummaryEntity.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/SpaceChildSummaryEntity.kt @@ -17,11 +17,13 @@ package org.matrix.android.sdk.internal.database.model import io.realm.RealmList -import io.realm.RealmObject +import io.realm.RealmModel +import io.realm.annotations.RealmClass /** * Decorates room summary with space related information. */ +@RealmClass internal open class SpaceChildSummaryEntity( // var isSpace: Boolean = false, @@ -40,7 +42,7 @@ internal open class SpaceChildSummaryEntity( // var level: Int = 0 -) : RealmObject() { +) : RealmModel { companion object } diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/SpaceParentSummaryEntity.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/SpaceParentSummaryEntity.kt index 30517717f4..f5ee3031a1 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/SpaceParentSummaryEntity.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/SpaceParentSummaryEntity.kt @@ -17,11 +17,13 @@ package org.matrix.android.sdk.internal.database.model import io.realm.RealmList -import io.realm.RealmObject +import io.realm.RealmModel +import io.realm.annotations.RealmClass /** * Decorates room summary with space related information. */ +@RealmClass internal open class SpaceParentSummaryEntity( /** * Determines whether this is the main parent for the space @@ -39,7 +41,7 @@ internal open class SpaceParentSummaryEntity( var viaServers: RealmList = RealmList() -) : RealmObject() { +) : RealmModel { companion object } diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/SyncEntity.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/SyncEntity.kt index ff261b80c1..e110e823c3 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/SyncEntity.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/SyncEntity.kt @@ -16,10 +16,12 @@ package org.matrix.android.sdk.internal.database.model -import io.realm.RealmObject +import io.realm.RealmModel import io.realm.annotations.PrimaryKey +import io.realm.annotations.RealmClass +@RealmClass internal open class SyncEntity( var nextBatch: String? = null, @PrimaryKey var id: Long = 0 -) : RealmObject() +) : RealmModel diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/TimelineEventEntity.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/TimelineEventEntity.kt index c8f22dc2cc..4371524221 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/TimelineEventEntity.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/TimelineEventEntity.kt @@ -16,12 +16,15 @@ package org.matrix.android.sdk.internal.database.model -import io.realm.RealmObject +import io.realm.RealmModel import io.realm.RealmResults import io.realm.annotations.Index import io.realm.annotations.LinkingObjects +import io.realm.annotations.RealmClass +import io.realm.kotlin.deleteFromRealm import org.matrix.android.sdk.internal.extensions.assertIsManaged +@RealmClass internal open class TimelineEventEntity( var localId: Long = 0, @Index var eventId: String = "", @@ -37,7 +40,7 @@ internal open class TimelineEventEntity( // to a thread chunk and is a temporarily event. var ownedByThreadChunk: Boolean = false, var readReceipts: ReadReceiptsSummaryEntity? = null -) : RealmObject() { +) : RealmModel { @LinkingObjects("timelineEvents") val chunk: RealmResults? = null diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/UserAccountDataEntity.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/UserAccountDataEntity.kt index e258c20df5..f2a005a17a 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/UserAccountDataEntity.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/UserAccountDataEntity.kt @@ -16,8 +16,9 @@ package org.matrix.android.sdk.internal.database.model -import io.realm.RealmObject +import io.realm.RealmModel import io.realm.annotations.Index +import io.realm.annotations.RealmClass /** * Clients can store custom config data for their account on their homeserver. @@ -25,10 +26,11 @@ import io.realm.annotations.Index * Users may only view the account data for their own account. * The account_data may be either global or scoped to a particular rooms. */ +@RealmClass internal open class UserAccountDataEntity( @Index var type: String? = null, var contentStr: String? = null -) : RealmObject() { +) : RealmModel { companion object } diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/UserDraftsEntity.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/UserDraftsEntity.kt index 7ccfc6b104..a09dc886e4 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/UserDraftsEntity.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/UserDraftsEntity.kt @@ -17,16 +17,18 @@ package org.matrix.android.sdk.internal.database.model import io.realm.RealmList -import io.realm.RealmObject +import io.realm.RealmModel import io.realm.RealmResults import io.realm.annotations.LinkingObjects +import io.realm.annotations.RealmClass /** * Create a specific table to be able to do direct query on it and keep the draft ordered. */ +@RealmClass internal open class UserDraftsEntity( var userDrafts: RealmList = RealmList() -) : RealmObject() { +) : RealmModel { // Link to RoomSummaryEntity @LinkingObjects("userDrafts") diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/UserEntity.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/UserEntity.kt index 3644d12ac9..dba0ef0a58 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/UserEntity.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/UserEntity.kt @@ -16,14 +16,16 @@ package org.matrix.android.sdk.internal.database.model -import io.realm.RealmObject +import io.realm.RealmModel import io.realm.annotations.PrimaryKey +import io.realm.annotations.RealmClass +@RealmClass internal open class UserEntity( @PrimaryKey var userId: String = "", var displayName: String = "", var avatarUrl: String = "" -) : RealmObject() { +) : RealmModel { companion object } diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/UserThreePidEntity.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/UserThreePidEntity.kt index 444ba94d2c..84c18072bf 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/UserThreePidEntity.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/UserThreePidEntity.kt @@ -15,11 +15,13 @@ */ package org.matrix.android.sdk.internal.database.model -import io.realm.RealmObject +import io.realm.RealmModel +import io.realm.annotations.RealmClass +@RealmClass internal open class UserThreePidEntity( var medium: String = "", var address: String = "", var validatedAt: Long = 0, var addedAt: Long = 0 -) : RealmObject() +) : RealmModel diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/WellknownIntegrationManagerConfigEntity.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/WellknownIntegrationManagerConfigEntity.kt index 65d640647e..82fed79a15 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/WellknownIntegrationManagerConfigEntity.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/WellknownIntegrationManagerConfigEntity.kt @@ -16,14 +16,16 @@ package org.matrix.android.sdk.internal.database.model -import io.realm.RealmObject +import io.realm.RealmModel import io.realm.annotations.PrimaryKey +import io.realm.annotations.RealmClass +@RealmClass internal open class WellknownIntegrationManagerConfigEntity( @PrimaryKey var id: Long = 0, var apiUrl: String = "", var uiUrl: String = "" -) : RealmObject() { +) : RealmModel { companion object } diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/livelocation/LiveLocationShareAggregatedSummaryEntity.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/livelocation/LiveLocationShareAggregatedSummaryEntity.kt index c5df8e9338..c874329e96 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/livelocation/LiveLocationShareAggregatedSummaryEntity.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/livelocation/LiveLocationShareAggregatedSummaryEntity.kt @@ -16,12 +16,14 @@ package org.matrix.android.sdk.internal.database.model.livelocation -import io.realm.RealmObject +import io.realm.RealmModel import io.realm.annotations.PrimaryKey +import io.realm.annotations.RealmClass /** * Aggregation info concerning a live location share. */ +@RealmClass internal open class LiveLocationShareAggregatedSummaryEntity( /** * Event id of the event that started the live. @@ -45,6 +47,6 @@ internal open class LiveLocationShareAggregatedSummaryEntity( * @see [org.matrix.android.sdk.api.session.room.model.message.MessageBeaconLocationDataContent] */ var lastLocationContent: String? = null, -) : RealmObject() { +) : RealmModel { companion object } diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/presence/UserPresenceEntity.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/presence/UserPresenceEntity.kt index 8d808417c2..e7d5297b9b 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/presence/UserPresenceEntity.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/presence/UserPresenceEntity.kt @@ -16,11 +16,13 @@ package org.matrix.android.sdk.internal.database.model.presence -import io.realm.RealmObject +import io.realm.RealmModel import io.realm.annotations.PrimaryKey +import io.realm.annotations.RealmClass import org.matrix.android.sdk.api.session.presence.model.PresenceEnum import org.matrix.android.sdk.api.session.presence.model.UserPresence +@RealmClass internal open class UserPresenceEntity( @PrimaryKey var userId: String = "", var lastActiveAgo: Long? = null, @@ -28,7 +30,7 @@ internal open class UserPresenceEntity( var isCurrentlyActive: Boolean? = null, var avatarUrl: String? = null, var displayName: String? = null -) : RealmObject() { +) : RealmModel { var presence: PresenceEnum get() { diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/threads/ThreadSummaryEntity.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/threads/ThreadSummaryEntity.kt index 45f9e3aa20..b5508b1b13 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/threads/ThreadSummaryEntity.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/threads/ThreadSummaryEntity.kt @@ -16,13 +16,15 @@ package org.matrix.android.sdk.internal.database.model.threads -import io.realm.RealmObject +import io.realm.RealmModel import io.realm.RealmResults import io.realm.annotations.Index import io.realm.annotations.LinkingObjects +import io.realm.annotations.RealmClass import org.matrix.android.sdk.internal.database.model.EventEntity import org.matrix.android.sdk.internal.database.model.RoomEntity +@RealmClass internal open class ThreadSummaryEntity( @Index var rootThreadEventId: String? = "", var rootThreadEventEntity: EventEntity? = null, @@ -35,7 +37,7 @@ internal open class ThreadSummaryEntity( var isUserParticipating: Boolean = false, var latestThreadIsUniqueDisplayName: Boolean = false, var numberOfThreads: Int = 0 -) : RealmObject() { +) : RealmModel { @LinkingObjects("threadSummaries") val room: RealmResults? = null diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/query/RoomEntityQueries.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/query/RoomEntityQueries.kt index 08bb9e7ff3..bf42fe1fcf 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/query/RoomEntityQueries.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/query/RoomEntityQueries.kt @@ -23,6 +23,7 @@ import org.matrix.android.sdk.api.session.room.model.Membership import org.matrix.android.sdk.internal.database.model.EventEntity import org.matrix.android.sdk.internal.database.model.RoomEntity import org.matrix.android.sdk.internal.database.model.RoomEntityFields +import org.matrix.android.sdk.internal.extensions.realm internal fun RoomEntity.Companion.where(realm: Realm, roomId: String): RealmQuery { return realm.where() diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/extensions/RealmExtensions.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/extensions/RealmExtensions.kt index c6ea2bc7bd..54cc8e168c 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/extensions/RealmExtensions.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/extensions/RealmExtensions.kt @@ -16,16 +16,23 @@ package org.matrix.android.sdk.internal.extensions +import io.realm.Realm import io.realm.RealmList +import io.realm.RealmModel import io.realm.RealmObject import io.realm.RealmObjectSchema import org.matrix.android.sdk.internal.database.model.HomeServerCapabilitiesEntityFields import org.matrix.android.sdk.internal.util.fatalError -internal fun RealmObject.assertIsManaged() { - check(isManaged) { "${javaClass.simpleName} entity should be managed to use this function" } +internal fun RealmModel.assertIsManaged() { + check(RealmObject.isManaged(this)) { "${javaClass.simpleName} entity should be managed to use this function" } } +internal val RealmModel.realm: Realm + get() { + return RealmObject.getRealm(this) + } + /** * Clear a RealmList by deleting all its items calling the provided lambda. * The lambda is supposed to delete the item, which means that after this operation, the list will be empty. diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/query/QueryEnumListProcessor.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/query/QueryEnumListProcessor.kt index b4415afcbc..bd330fbcb4 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/query/QueryEnumListProcessor.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/query/QueryEnumListProcessor.kt @@ -16,10 +16,11 @@ package org.matrix.android.sdk.internal.query +import io.realm.RealmModel import io.realm.RealmObject import io.realm.RealmQuery -internal fun > RealmQuery.process(field: String, enums: List>): RealmQuery { +internal fun > RealmQuery.process(field: String, enums: List>): RealmQuery { val lastEnumValue = enums.lastOrNull() beginGroup() for (enumValue in enums) { diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/query/QueryStringValueProcessor.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/query/QueryStringValueProcessor.kt index b2ab9879df..ec01437e5a 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/query/QueryStringValueProcessor.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/query/QueryStringValueProcessor.kt @@ -17,7 +17,7 @@ package org.matrix.android.sdk.internal.query import io.realm.Case -import io.realm.RealmObject +import io.realm.RealmModel import io.realm.RealmQuery import org.matrix.android.sdk.api.query.QueryStringValue import org.matrix.android.sdk.api.query.QueryStringValue.ContentQueryStringValue @@ -28,7 +28,7 @@ internal class QueryStringValueProcessor @Inject constructor( private val normalizer: Normalizer ) { - fun RealmQuery.process(field: String, queryStringValue: QueryStringValue): RealmQuery { + fun RealmQuery.process(field: String, queryStringValue: QueryStringValue): RealmQuery { return when (queryStringValue) { is QueryStringValue.NoCondition -> this is QueryStringValue.IsNotNull -> isNotNull(field) diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/contentscanner/db/ContentScanResultEntity.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/contentscanner/db/ContentScanResultEntity.kt index 0ffff441f8..629de4d142 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/contentscanner/db/ContentScanResultEntity.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/contentscanner/db/ContentScanResultEntity.kt @@ -16,12 +16,14 @@ package org.matrix.android.sdk.internal.session.contentscanner.db -import io.realm.RealmObject +import io.realm.RealmModel import io.realm.annotations.Index +import io.realm.annotations.RealmClass import org.matrix.android.sdk.api.extensions.tryOrNull import org.matrix.android.sdk.api.session.contentscanner.ScanState import org.matrix.android.sdk.api.session.contentscanner.ScanStatusInfo +@RealmClass internal open class ContentScanResultEntity( @Index var mediaUrl: String? = null, @@ -29,7 +31,7 @@ internal open class ContentScanResultEntity( var humanReadableMessage: String? = null, var scanDateTimestamp: Long? = null, var scannerUrl: String? = null -) : RealmObject() { +) : RealmModel { var scanResult: ScanState get() { diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/contentscanner/db/ContentScannerInfoEntity.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/contentscanner/db/ContentScannerInfoEntity.kt index d1910de36a..affd1d59f3 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/contentscanner/db/ContentScannerInfoEntity.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/contentscanner/db/ContentScannerInfoEntity.kt @@ -16,12 +16,14 @@ package org.matrix.android.sdk.internal.session.contentscanner.db -import io.realm.RealmObject +import io.realm.RealmModel +import io.realm.annotations.RealmClass +@RealmClass internal open class ContentScannerInfoEntity( var serverUrl: String? = null, var enabled: Boolean? = null -) : RealmObject() { +) : RealmModel { companion object } diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/identity/db/IdentityDataEntity.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/identity/db/IdentityDataEntity.kt index 019289a884..d2c12131c0 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/identity/db/IdentityDataEntity.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/identity/db/IdentityDataEntity.kt @@ -17,15 +17,17 @@ package org.matrix.android.sdk.internal.session.identity.db import io.realm.RealmList -import io.realm.RealmObject +import io.realm.RealmModel +import io.realm.annotations.RealmClass +@RealmClass internal open class IdentityDataEntity( var identityServerUrl: String? = null, var token: String? = null, var hashLookupPepper: String? = null, var hashLookupAlgorithm: RealmList = RealmList(), var userConsent: Boolean = false -) : RealmObject() { +) : RealmModel { companion object } diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/identity/db/IdentityPendingBindingEntity.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/identity/db/IdentityPendingBindingEntity.kt index fcc91b0121..f71f0f56c0 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/identity/db/IdentityPendingBindingEntity.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/identity/db/IdentityPendingBindingEntity.kt @@ -16,11 +16,13 @@ package org.matrix.android.sdk.internal.session.identity.db -import io.realm.RealmObject +import io.realm.RealmModel import io.realm.annotations.PrimaryKey +import io.realm.annotations.RealmClass import org.matrix.android.sdk.api.session.identity.ThreePid import org.matrix.android.sdk.api.session.identity.toMedium +@RealmClass internal open class IdentityPendingBindingEntity( @PrimaryKey var threePid: String = "", /* Managed by Riot */ @@ -29,7 +31,7 @@ internal open class IdentityPendingBindingEntity( var sendAttempt: Int = 0, /* Provided by the identity server */ var sid: String = "" -) : RealmObject() { +) : RealmModel { companion object { fun ThreePid.toPrimaryKey() = "${toMedium()}_$value" diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/identity/db/IdentityPendingBindingEntityQuery.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/identity/db/IdentityPendingBindingEntityQuery.kt index 8d4afc7beb..3c18bdf7aa 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/identity/db/IdentityPendingBindingEntityQuery.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/identity/db/IdentityPendingBindingEntityQuery.kt @@ -18,6 +18,7 @@ package org.matrix.android.sdk.internal.session.identity.db import io.realm.Realm import io.realm.kotlin.createObject +import io.realm.kotlin.deleteFromRealm import io.realm.kotlin.where import org.matrix.android.sdk.api.session.identity.ThreePid diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/pushers/RemovePusherTask.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/pushers/RemovePusherTask.kt index 86ba33cb98..cd7566d060 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/pushers/RemovePusherTask.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/pushers/RemovePusherTask.kt @@ -18,6 +18,7 @@ package org.matrix.android.sdk.internal.session.pushers import com.zhuinden.monarchy.Monarchy import io.realm.Realm +import io.realm.kotlin.deleteFromRealm import org.matrix.android.sdk.api.session.pushers.PusherState import org.matrix.android.sdk.internal.database.mapper.asDomain import org.matrix.android.sdk.internal.database.model.PusherEntity diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/EventRelationsAggregationProcessor.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/EventRelationsAggregationProcessor.kt index 24d4975eb9..98b8157852 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/EventRelationsAggregationProcessor.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/EventRelationsAggregationProcessor.kt @@ -16,6 +16,7 @@ package org.matrix.android.sdk.internal.session.room import io.realm.Realm +import io.realm.kotlin.deleteFromRealm import org.matrix.android.sdk.api.query.QueryStringValue import org.matrix.android.sdk.api.session.crypto.verification.VerificationState import org.matrix.android.sdk.api.session.events.model.AggregatedAnnotation diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/prune/RedactionEventProcessor.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/prune/RedactionEventProcessor.kt index e33fbb56b1..4b10faf421 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/prune/RedactionEventProcessor.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/prune/RedactionEventProcessor.kt @@ -17,6 +17,7 @@ package org.matrix.android.sdk.internal.session.room.prune import io.realm.Realm +import io.realm.kotlin.deleteFromRealm import org.matrix.android.sdk.api.session.events.model.Event import org.matrix.android.sdk.api.session.events.model.EventType import org.matrix.android.sdk.api.session.events.model.LocalEcho diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/send/LocalEchoRepository.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/send/LocalEchoRepository.kt index 394cb8944f..95f0716671 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/send/LocalEchoRepository.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/send/LocalEchoRepository.kt @@ -18,6 +18,7 @@ package org.matrix.android.sdk.internal.session.room.send import com.zhuinden.monarchy.Monarchy import io.realm.Realm +import io.realm.kotlin.deleteFromRealm import org.matrix.android.sdk.api.session.events.model.Event import org.matrix.android.sdk.api.session.events.model.EventType import org.matrix.android.sdk.api.session.events.model.toModel diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/summary/RoomSummaryUpdater.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/summary/RoomSummaryUpdater.kt index e4afe7aa49..28b09253cd 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/summary/RoomSummaryUpdater.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/summary/RoomSummaryUpdater.kt @@ -18,6 +18,7 @@ package org.matrix.android.sdk.internal.session.room.summary import io.realm.Realm import io.realm.kotlin.createObject +import io.realm.kotlin.deleteFromRealm import kotlinx.coroutines.runBlocking import org.matrix.android.sdk.api.extensions.orFalse import org.matrix.android.sdk.api.extensions.tryOrNull @@ -58,6 +59,7 @@ import org.matrix.android.sdk.internal.database.query.isEventRead import org.matrix.android.sdk.internal.database.query.where import org.matrix.android.sdk.internal.di.UserId import org.matrix.android.sdk.internal.extensions.clearWith +import org.matrix.android.sdk.internal.extensions.realm import org.matrix.android.sdk.internal.query.process import org.matrix.android.sdk.internal.session.room.RoomAvatarResolver import org.matrix.android.sdk.internal.session.room.accountdata.RoomAccountDataDataSource diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/timeline/LoadTimelineStrategy.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/timeline/LoadTimelineStrategy.kt index d81a115676..9fecbf0a77 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/timeline/LoadTimelineStrategy.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/timeline/LoadTimelineStrategy.kt @@ -23,6 +23,7 @@ import io.realm.RealmConfiguration import io.realm.RealmResults import io.realm.kotlin.createObject import io.realm.kotlin.executeTransactionAwait +import io.realm.kotlin.isValid import kotlinx.coroutines.CompletableDeferred import org.matrix.android.sdk.api.MatrixCoroutineDispatchers import org.matrix.android.sdk.api.extensions.orFalse @@ -301,7 +302,7 @@ internal class LoadTimelineStrategy constructor( this.rootThreadEventId = rootThreadEventId this.isLastForwardThread = true } - if (threadChunk.isValid) { + if (threadChunk.isValid()) { RoomEntity.where(it, roomId).findFirst()?.addIfNecessary(threadChunk) } } diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/timeline/TimelineChunk.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/timeline/TimelineChunk.kt index 7fa36969b1..ebf2158d27 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/timeline/TimelineChunk.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/timeline/TimelineChunk.kt @@ -23,6 +23,8 @@ import io.realm.RealmObjectChangeListener import io.realm.RealmQuery import io.realm.RealmResults import io.realm.Sort +import io.realm.kotlin.addChangeListener +import io.realm.kotlin.removeChangeListener import kotlinx.coroutines.CompletableDeferred import org.matrix.android.sdk.api.extensions.orFalse import org.matrix.android.sdk.api.extensions.tryOrNull diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/timeline/TokenChunkEventPersistor.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/timeline/TokenChunkEventPersistor.kt index ea22f8cd78..fafd3685c1 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/timeline/TokenChunkEventPersistor.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/timeline/TokenChunkEventPersistor.kt @@ -19,6 +19,7 @@ package org.matrix.android.sdk.internal.session.room.timeline import com.zhuinden.monarchy.Monarchy import dagger.Lazy import io.realm.Realm +import io.realm.kotlin.isValid import org.matrix.android.sdk.api.session.events.model.EventType import org.matrix.android.sdk.api.session.events.model.toModel import org.matrix.android.sdk.api.session.room.model.RoomMemberContent @@ -40,6 +41,7 @@ import org.matrix.android.sdk.internal.database.query.findLastForwardChunkOfRoom import org.matrix.android.sdk.internal.database.query.where import org.matrix.android.sdk.internal.di.SessionDatabase import org.matrix.android.sdk.internal.di.UserId +import org.matrix.android.sdk.internal.extensions.realm import org.matrix.android.sdk.internal.session.StreamEventsManager import org.matrix.android.sdk.internal.util.awaitTransaction import org.matrix.android.sdk.internal.util.time.Clock @@ -183,7 +185,7 @@ internal class TokenChunkEventPersistor @Inject constructor( } } } - if (currentChunk.isValid) { + if (currentChunk.isValid()) { RoomEntity.where(realm, roomId).findFirst()?.addIfNecessary(currentChunk) } diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/widgets/token/ScalarTokenStore.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/widgets/token/ScalarTokenStore.kt index 896fb44c6b..83b8a1d62a 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/widgets/token/ScalarTokenStore.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/widgets/token/ScalarTokenStore.kt @@ -17,6 +17,7 @@ package org.matrix.android.sdk.internal.session.widgets.token import com.zhuinden.monarchy.Monarchy +import io.realm.kotlin.deleteFromRealm import org.matrix.android.sdk.internal.database.model.ScalarTokenEntity import org.matrix.android.sdk.internal.database.query.where import org.matrix.android.sdk.internal.di.SessionDatabase