From 9f3f5d8053fa90450d6166acb63bc07d6dd1704f Mon Sep 17 00:00:00 2001 From: ganfra Date: Tue, 3 Nov 2020 16:53:30 +0100 Subject: [PATCH] Realm 10: upgrade lib and make it works on our current code. --- CHANGES.md | 2 +- matrix-sdk-android/build.gradle | 4 ++-- .../org/matrix/android/sdk/internal/crypto/CryptoModule.kt | 1 + .../matrix/android/sdk/internal/database/RealmKeysUtils.kt | 3 ++- .../sdk/internal/database/SessionRealmConfigurationFactory.kt | 1 + .../android/sdk/internal/session/identity/IdentityModule.kt | 1 + 6 files changed, 8 insertions(+), 4 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index fe88aed5ab..c44d299f27 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -35,7 +35,7 @@ Build 🧱: - Other changes: - - + - Upgrade Realm dependency to 10.0.0 Changes in Element 1.0.9 (2020-10-16) =================================================== diff --git a/matrix-sdk-android/build.gradle b/matrix-sdk-android/build.gradle index e4a8b8884a..29c709844a 100644 --- a/matrix-sdk-android/build.gradle +++ b/matrix-sdk-android/build.gradle @@ -9,7 +9,7 @@ buildscript { jcenter() } dependencies { - classpath "io.realm:realm-gradle-plugin:6.1.0" + classpath "io.realm:realm-gradle-plugin:10.0.0" } } @@ -149,7 +149,7 @@ dependencies { implementation 'androidx.exifinterface:exifinterface:1.3.0' // Database - implementation 'com.github.Zhuinden:realm-monarchy:0.5.1' + implementation 'com.github.Zhuinden:realm-monarchy:0.7.1' kapt 'dk.ilios:realmfieldnameshelper:1.1.1' // Work diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/CryptoModule.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/CryptoModule.kt index a8580bab8e..a786ebd4b2 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/CryptoModule.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/CryptoModule.kt @@ -123,6 +123,7 @@ internal abstract class CryptoModule { } .name("crypto_store.realm") .modules(RealmCryptoStoreModule()) + .allowWritesOnUiThread(true) .schemaVersion(RealmCryptoStoreMigration.CRYPTO_STORE_SCHEMA_VERSION) .migration(realmCryptoStoreMigration) .build() diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/RealmKeysUtils.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/RealmKeysUtils.kt index 6c430e8591..0e3a7a2c49 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/RealmKeysUtils.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/RealmKeysUtils.kt @@ -18,6 +18,7 @@ package org.matrix.android.sdk.internal.database import android.content.Context import android.util.Base64 import androidx.core.content.edit +import io.realm.Realm import org.matrix.android.sdk.BuildConfig import org.matrix.android.sdk.internal.session.securestorage.SecretStoringUtils import io.realm.RealmConfiguration @@ -46,7 +47,7 @@ internal class RealmKeysUtils @Inject constructor(context: Context, private val sharedPreferences = context.getSharedPreferences("im.vector.matrix.android.keys", Context.MODE_PRIVATE) private fun generateKeyForRealm(): ByteArray { - val keyForRealm = ByteArray(RealmConfiguration.KEY_LENGTH) + val keyForRealm = ByteArray(Realm.ENCRYPTION_KEY_LENGTH) rng.nextBytes(keyForRealm) return keyForRealm } diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/SessionRealmConfigurationFactory.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/SessionRealmConfigurationFactory.kt index 3324520d29..244fe3432a 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/SessionRealmConfigurationFactory.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/SessionRealmConfigurationFactory.kt @@ -69,6 +69,7 @@ internal class SessionRealmConfigurationFactory @Inject constructor( .apply { realmKeysUtils.configureEncryption(this, SessionModule.getKeyAlias(userMd5)) } + .allowWritesOnUiThread(true) .modules(SessionRealmModule()) .schemaVersion(RealmSessionStoreMigration.SESSION_STORE_SCHEMA_VERSION) .migration(migration) diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/identity/IdentityModule.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/identity/IdentityModule.kt index 1bb57b47cd..e140cc19f3 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/identity/IdentityModule.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/identity/IdentityModule.kt @@ -66,6 +66,7 @@ internal abstract class IdentityModule { .apply { realmKeysUtils.configureEncryption(this, SessionModule.getKeyAlias(userMd5)) } + .allowWritesOnUiThread(true) .modules(IdentityRealmModule()) .build() }