mirror of
https://github.com/SchildiChat/SchildiChat-android.git
synced 2024-12-22 17:10:43 +03:00
Merge pull request #8965 from element-hq/feature/bma/fixMigration
Ensure Realm migration does not crash
This commit is contained in:
commit
505168f2b3
2 changed files with 22 additions and 14 deletions
|
@ -17,6 +17,7 @@
|
|||
package org.matrix.android.sdk.internal.crypto.store.db.migration
|
||||
|
||||
import io.realm.DynamicRealm
|
||||
import org.matrix.android.sdk.internal.extensions.safeRemove
|
||||
import org.matrix.android.sdk.internal.util.database.RealmMigrator
|
||||
|
||||
internal class MigrateCryptoTo024(realm: DynamicRealm) : RealmMigrator(realm, 24) {
|
||||
|
@ -32,20 +33,20 @@ internal class MigrateCryptoTo024(realm: DynamicRealm) : RealmMigrator(realm, 24
|
|||
get("CryptoRoomEntity")?.removeField("outboundSessionInfo")
|
||||
|
||||
// Warning: order is important, first remove classes that depends on others.
|
||||
remove("UserEntity")
|
||||
remove("DeviceInfoEntity")
|
||||
remove("CrossSigningInfoEntity")
|
||||
remove("KeyInfoEntity")
|
||||
remove("TrustLevelEntity")
|
||||
remove("KeysBackupDataEntity")
|
||||
remove("OlmInboundGroupSessionEntity")
|
||||
remove("OlmSessionEntity")
|
||||
remove("AuditTrailEntity")
|
||||
remove("OutgoingKeyRequestEntity")
|
||||
remove("KeyRequestReplyEntity")
|
||||
remove("WithHeldSessionEntity")
|
||||
remove("SharedSessionEntity")
|
||||
remove("OutboundGroupSessionInfoEntity")
|
||||
safeRemove("UserEntity")
|
||||
safeRemove("DeviceInfoEntity")
|
||||
safeRemove("CrossSigningInfoEntity")
|
||||
safeRemove("KeyInfoEntity")
|
||||
safeRemove("TrustLevelEntity")
|
||||
safeRemove("KeysBackupDataEntity")
|
||||
safeRemove("OlmInboundGroupSessionEntity")
|
||||
safeRemove("OlmSessionEntity")
|
||||
safeRemove("AuditTrailEntity")
|
||||
safeRemove("OutgoingKeyRequestEntity")
|
||||
safeRemove("KeyRequestReplyEntity")
|
||||
safeRemove("WithHeldSessionEntity")
|
||||
safeRemove("SharedSessionEntity")
|
||||
safeRemove("OutboundGroupSessionInfoEntity")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -19,6 +19,7 @@ package org.matrix.android.sdk.internal.extensions
|
|||
import io.realm.RealmList
|
||||
import io.realm.RealmObject
|
||||
import io.realm.RealmObjectSchema
|
||||
import io.realm.RealmSchema
|
||||
import org.matrix.android.sdk.internal.database.model.HomeServerCapabilitiesEntityFields
|
||||
import org.matrix.android.sdk.internal.util.fatalError
|
||||
|
||||
|
@ -52,3 +53,9 @@ internal fun RealmObjectSchema?.forceRefreshOfHomeServerCapabilities(): RealmObj
|
|||
obj.setLong(HomeServerCapabilitiesEntityFields.LAST_UPDATED_TIMESTAMP, 0)
|
||||
}
|
||||
}
|
||||
|
||||
internal fun RealmSchema.safeRemove(className: String) {
|
||||
if (get(className) != null) {
|
||||
remove(className)
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue