diff --git a/data/src/main/java/com/moez/QKSMS/migration/QkRealmMigration.kt b/data/src/main/java/com/moez/QKSMS/migration/QkRealmMigration.kt index f1ac5d28..0d5ea817 100644 --- a/data/src/main/java/com/moez/QKSMS/migration/QkRealmMigration.kt +++ b/data/src/main/java/com/moez/QKSMS/migration/QkRealmMigration.kt @@ -21,6 +21,7 @@ package com.moez.QKSMS.migration import io.realm.DynamicRealm import io.realm.FieldAttribute import io.realm.RealmMigration +import io.realm.Sort class QkRealmMigration : RealmMigration { @@ -101,6 +102,19 @@ class QkRealmMigration : RealmMigration { ?.removeField("read") ?.removeField("me") + val conversations = realm.where("Conversation") + .findAll() + + val messages = realm.where("Message") + .sort("date", Sort.DESCENDING) + .distinct("threadId") + .findAll() + .associateBy { message -> message.getLong("threadId") } + + conversations.forEach { conversation -> + conversation.setObject("lastMessage", messages[conversation.getLong("id")]) + } + version++ }