From f5714ce0e4cd6468b8ea31abb9ef2feb37dcbdf5 Mon Sep 17 00:00:00 2001 From: Kevin Boulongne Date: Mon, 26 Aug 2024 12:09:37 +0200 Subject: [PATCH 1/3] Rename 1st migration --- .../com/infomaniak/mail/data/cache/RealmMigrations.kt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/infomaniak/mail/data/cache/RealmMigrations.kt b/app/src/main/java/com/infomaniak/mail/data/cache/RealmMigrations.kt index 9d25564680..e6c589532e 100644 --- a/app/src/main/java/com/infomaniak/mail/data/cache/RealmMigrations.kt +++ b/app/src/main/java/com/infomaniak/mail/data/cache/RealmMigrations.kt @@ -23,20 +23,20 @@ import io.realm.kotlin.migration.AutomaticSchemaMigration.MigrationContext val USER_INFO_MIGRATION = AutomaticSchemaMigration { migrationContext -> SentryDebug.addMigrationBreadcrumb(migrationContext) - migrationContext.deleteRealmFromFirstMigration() + migrationContext.deleteRealmAt1stMigration() } val MAILBOX_INFO_MIGRATION = AutomaticSchemaMigration { migrationContext -> SentryDebug.addMigrationBreadcrumb(migrationContext) - migrationContext.deleteRealmFromFirstMigration() + migrationContext.deleteRealmAt1stMigration() } val MAILBOX_CONTENT_MIGRATION = AutomaticSchemaMigration { migrationContext -> SentryDebug.addMigrationBreadcrumb(migrationContext) - migrationContext.deleteRealmFromFirstMigration() + migrationContext.deleteRealmAt1stMigration() } // Migrate to version #1 -private fun MigrationContext.deleteRealmFromFirstMigration() { +private fun MigrationContext.deleteRealmAt1stMigration() { if (oldRealm.schemaVersion() < 1L) newRealm.deleteAll() } From 705a72f937336bf3b1b3b5e2aa25420271e58195 Mon Sep 17 00:00:00 2001 From: Kevin Boulongne Date: Mon, 26 Aug 2024 12:09:43 +0200 Subject: [PATCH 2/3] Add 17th migration --- .../com/infomaniak/mail/data/cache/RealmMigrations.kt | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/app/src/main/java/com/infomaniak/mail/data/cache/RealmMigrations.kt b/app/src/main/java/com/infomaniak/mail/data/cache/RealmMigrations.kt index e6c589532e..5c3de98b97 100644 --- a/app/src/main/java/com/infomaniak/mail/data/cache/RealmMigrations.kt +++ b/app/src/main/java/com/infomaniak/mail/data/cache/RealmMigrations.kt @@ -34,9 +34,19 @@ val MAILBOX_INFO_MIGRATION = AutomaticSchemaMigration { migrationContext -> val MAILBOX_CONTENT_MIGRATION = AutomaticSchemaMigration { migrationContext -> SentryDebug.addMigrationBreadcrumb(migrationContext) migrationContext.deleteRealmAt1stMigration() + migrationContext.resetFoldersCursor() } // Migrate to version #1 private fun MigrationContext.deleteRealmAt1stMigration() { if (oldRealm.schemaVersion() < 1L) newRealm.deleteAll() } + +// Migrate to version #17 +private fun MigrationContext.resetFoldersCursor() { + if (oldRealm.schemaVersion() < 17L && newRealm.schemaVersion() >= 17L) { + oldRealm.query(className = "Folder").find().forEach { + newRealm.findLatest(it)?.set(propertyName = "cursor", value = null) + } + } +} From 6125ab422e3515c20bcf89001458d7aee1de52de Mon Sep 17 00:00:00 2001 From: Kevin Boulongne Date: Mon, 26 Aug 2024 12:25:52 +0200 Subject: [PATCH 3/3] Delete Realm Content DB at 17th migration --- .../com/infomaniak/mail/data/cache/RealmMigrations.kt | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/com/infomaniak/mail/data/cache/RealmMigrations.kt b/app/src/main/java/com/infomaniak/mail/data/cache/RealmMigrations.kt index 5c3de98b97..434cd2d712 100644 --- a/app/src/main/java/com/infomaniak/mail/data/cache/RealmMigrations.kt +++ b/app/src/main/java/com/infomaniak/mail/data/cache/RealmMigrations.kt @@ -34,7 +34,7 @@ val MAILBOX_INFO_MIGRATION = AutomaticSchemaMigration { migrationContext -> val MAILBOX_CONTENT_MIGRATION = AutomaticSchemaMigration { migrationContext -> SentryDebug.addMigrationBreadcrumb(migrationContext) migrationContext.deleteRealmAt1stMigration() - migrationContext.resetFoldersCursor() + migrationContext.deleteRealmAt17thMigration() } // Migrate to version #1 @@ -43,10 +43,6 @@ private fun MigrationContext.deleteRealmAt1stMigration() { } // Migrate to version #17 -private fun MigrationContext.resetFoldersCursor() { - if (oldRealm.schemaVersion() < 17L && newRealm.schemaVersion() >= 17L) { - oldRealm.query(className = "Folder").find().forEach { - newRealm.findLatest(it)?.set(propertyName = "cursor", value = null) - } - } +private fun MigrationContext.deleteRealmAt17thMigration() { + if (oldRealm.schemaVersion() < 17L && newRealm.schemaVersion() >= 17L) newRealm.deleteAll() }