Realm: use RealmModel instead of RealmObject so we can enable realm-kotlin plugin.
This commit is contained in:
parent
186753f691
commit
dee0b824e9
@ -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
|
||||
|
@ -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
|
||||
|
@ -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 <T> doWithRealm(realmConfiguration: RealmConfiguration, action: (Re
|
||||
/**
|
||||
* Get realm, do the query, copy from realm, close realm, and return the copied result.
|
||||
*/
|
||||
internal fun <T : RealmObject> doRealmQueryAndCopy(realmConfiguration: RealmConfiguration, action: (Realm) -> T?): T? {
|
||||
internal fun <T : RealmModel> 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 <T : RealmObject> doRealmQueryAndCopy(realmConfiguration: RealmConf
|
||||
/**
|
||||
* Get realm, do the list query, copy from realm, close realm, and return the copied result.
|
||||
*/
|
||||
internal fun <T : RealmObject> doRealmQueryAndCopyList(realmConfiguration: RealmConfiguration, action: (Realm) -> Iterable<T>): Iterable<T> {
|
||||
internal fun <T : RealmModel> doRealmQueryAndCopyList(realmConfiguration: RealmConfiguration, action: (Realm) -> Iterable<T>): Iterable<T> {
|
||||
return Realm.getInstance(realmConfiguration).use { realm ->
|
||||
action.invoke(realm).let { realm.copyFromRealm(it) }
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -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<KeyInfoEntity> = RealmList()
|
||||
) : RealmObject() {
|
||||
) : RealmModel {
|
||||
|
||||
companion object
|
||||
|
||||
|
@ -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
|
||||
|
@ -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? {
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -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<UserEntity>? = null
|
||||
|
@ -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()
|
||||
|
@ -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? {
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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 {
|
||||
|
@ -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<KeyRequestReplyEntity> = RealmList()
|
||||
) : RealmObject() {
|
||||
) : RealmModel {
|
||||
|
||||
@Index private var requestStateStr: String = OutgoingRoomKeyRequestState.UNSENT.name
|
||||
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -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
|
||||
|
||||
|
@ -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<DeviceInfoEntity> = RealmList(),
|
||||
var crossSigningInfoEntity: CrossSigningInfoEntity? = null,
|
||||
var deviceTrackingStatus: Int = 0
|
||||
) : RealmObject() {
|
||||
) : RealmModel {
|
||||
|
||||
companion object
|
||||
}
|
||||
|
@ -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() {
|
||||
|
@ -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<T : RealmObject>(protected val realmConfiguration: RealmConfiguration) :
|
||||
internal abstract class RealmLiveEntityObserver<T : RealmModel>(protected val realmConfiguration: RealmConfiguration) :
|
||||
LiveEntityObserver, RealmChangeListener<RealmResults<T>> {
|
||||
|
||||
private companion object {
|
||||
|
@ -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
|
||||
|
||||
|
@ -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<Int, TimelineEventEntity>?
|
||||
|
@ -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
|
||||
|
@ -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 ->
|
||||
|
@ -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<String> = RealmList()
|
||||
) : RealmObject() {
|
||||
) : RealmModel {
|
||||
|
||||
companion object
|
||||
}
|
||||
|
@ -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"
|
||||
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -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"
|
||||
|
@ -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<EditionOfEvent> = 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
|
||||
|
@ -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.
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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<String> = RealmList(),
|
||||
var userIds: RealmList<String> = RealmList()
|
||||
) : RealmObject() {
|
||||
) : RealmModel {
|
||||
|
||||
private var membershipStr: String = Membership.NONE.name
|
||||
var membership: Membership
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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<String> = RealmList(),
|
||||
var sourceLocalEchoEvents: RealmList<String> = RealmList()
|
||||
) : RealmObject() {
|
||||
) : RealmModel {
|
||||
|
||||
companion object
|
||||
}
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -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<PushConditionEntity>? = RealmList(),
|
||||
// The glob-style pattern to match against. Only applicable to content rules.
|
||||
var pattern: String? = null
|
||||
) : RealmObject() {
|
||||
) : RealmModel {
|
||||
|
||||
@LinkingObjects("pushRules")
|
||||
val parent: RealmResults<PushRulesEntity>? = null
|
||||
|
@ -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<PushRuleEntity> = RealmList()
|
||||
) : RealmObject() {
|
||||
) : RealmModel {
|
||||
|
||||
private var kindStr: String = RuleKind.CONTENT.name
|
||||
var kind: RuleKind
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -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<String> = RealmList(),
|
||||
// List of transaction ids for local echos
|
||||
var sourceLocalEcho: RealmList<String> = RealmList()
|
||||
) : RealmObject() {
|
||||
) : RealmModel {
|
||||
|
||||
companion object
|
||||
}
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -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")
|
||||
|
@ -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<ReadReceiptEntity> = RealmList()
|
||||
) : RealmObject() {
|
||||
) : RealmModel {
|
||||
|
||||
@LinkingObjects("readReceipts")
|
||||
val timelineEvent: RealmResults<TimelineEventEntity>? = null
|
||||
|
@ -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<String> = RealmList(),
|
||||
// List of transaction ids for local echos
|
||||
var sourceLocalEcho: RealmList<String> = RealmList()
|
||||
) : RealmObject() {
|
||||
) : RealmModel {
|
||||
|
||||
companion object
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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<ChunkEntity> = RealmList(),
|
||||
var sendingTimelineEvents: RealmList<TimelineEventEntity> = RealmList(),
|
||||
var threadSummaries: RealmList<ThreadSummaryEntity> = RealmList(),
|
||||
var accountData: RealmList<RoomAccountDataEntity> = RealmList()
|
||||
) : RealmObject() {
|
||||
) : RealmModel {
|
||||
|
||||
private var membershipStr: String = Membership.NONE.name
|
||||
var membership: Membership
|
||||
|
@ -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
|
||||
|
@ -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<SpaceParentSummaryEntity> = RealmList(),
|
||||
var children: RealmList<SpaceChildSummaryEntity> = RealmList()
|
||||
) : RealmObject() {
|
||||
) : RealmModel {
|
||||
|
||||
private var displayName: String? = ""
|
||||
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -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<String> = RealmList()
|
||||
|
||||
) : RealmObject() {
|
||||
) : RealmModel {
|
||||
|
||||
companion object
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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<ChunkEntity>? = null
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -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<DraftEntity> = RealmList()
|
||||
) : RealmObject() {
|
||||
) : RealmModel {
|
||||
|
||||
// Link to RoomSummaryEntity
|
||||
@LinkingObjects("userDrafts")
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -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() {
|
||||
|
@ -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<RoomEntity>? = null
|
||||
|
@ -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<RoomEntity> {
|
||||
return realm.where<RoomEntity>()
|
||||
|
@ -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.
|
||||
|
@ -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 <T : RealmObject, E : Enum<E>> RealmQuery<T>.process(field: String, enums: List<Enum<E>>): RealmQuery<T> {
|
||||
internal fun <T : RealmModel, E : Enum<E>> RealmQuery<T>.process(field: String, enums: List<Enum<E>>): RealmQuery<T> {
|
||||
val lastEnumValue = enums.lastOrNull()
|
||||
beginGroup()
|
||||
for (enumValue in enums) {
|
||||
|
@ -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 <T : RealmObject> RealmQuery<T>.process(field: String, queryStringValue: QueryStringValue): RealmQuery<T> {
|
||||
fun <T : RealmModel> RealmQuery<T>.process(field: String, queryStringValue: QueryStringValue): RealmQuery<T> {
|
||||
return when (queryStringValue) {
|
||||
is QueryStringValue.NoCondition -> this
|
||||
is QueryStringValue.IsNotNull -> isNotNull(field)
|
||||
|
@ -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() {
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -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<String> = RealmList(),
|
||||
var userConsent: Boolean = false
|
||||
) : RealmObject() {
|
||||
) : RealmModel {
|
||||
|
||||
companion object
|
||||
}
|
||||
|
@ -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"
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
}
|
||||
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user