From 9e418b4d7a467a2ff5b51072bc97819ca80ff92c Mon Sep 17 00:00:00 2001 From: moezbhatti Date: Mon, 11 Nov 2019 00:41:32 -0500 Subject: [PATCH] Migrate data for new conversation schema --- .../com/moez/QKSMS/migration/QkRealmMigration.kt | 14 ++++++++++++++ 1 file changed, 14 insertions(+) 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++ }