forked from upstream-mirrors/quik
Add ScheduledMessage to realm schema
This commit is contained in:
@@ -26,7 +26,7 @@ import io.realm.RealmMigration
|
||||
class QkRealmMigration : RealmMigration {
|
||||
|
||||
companion object {
|
||||
const val SCHEMA_VERSION: Long = 3
|
||||
const val SCHEMA_VERSION: Long = 4
|
||||
}
|
||||
|
||||
override fun migrate(realm: DynamicRealm, oldVersion: Long, newVersion: Long) {
|
||||
@@ -53,6 +53,18 @@ class QkRealmMigration : RealmMigration {
|
||||
version++
|
||||
}
|
||||
|
||||
if (version == 3L) {
|
||||
realm.schema.create("ScheduledMessage")
|
||||
.addField("id", Long::class.java, FieldAttribute.PRIMARY_KEY, FieldAttribute.REQUIRED)
|
||||
.addField("date", Long::class.java, FieldAttribute.REQUIRED)
|
||||
.addRealmListField("recipients", String::class.java)
|
||||
.addField("sendAsGroup", Boolean::class.java, FieldAttribute.REQUIRED)
|
||||
.addField("body", String::class.java, FieldAttribute.REQUIRED)
|
||||
.addRealmListField("attachments", String::class.java)
|
||||
|
||||
version++
|
||||
}
|
||||
|
||||
if (version < newVersion) {
|
||||
throw IllegalStateException("Migration missing from v$oldVersion to v$newVersion")
|
||||
}
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
package com.moez.QKSMS.repository
|
||||
|
||||
import com.moez.QKSMS.model.ScheduledMessage
|
||||
import io.realm.Realm
|
||||
import io.realm.RealmList
|
||||
import io.realm.RealmResults
|
||||
|
||||
class ScheduledMessageRepositoryImpl : ScheduledMessageRepository {
|
||||
|
||||
override fun saveScheduledMessage(date: Long, recipients: RealmList<String>, sendAsGroup: Boolean, body: String,
|
||||
attachments: RealmList<String>): Long {
|
||||
|
||||
return Realm.getDefaultInstance().use { realm ->
|
||||
val id = (realm.where(ScheduledMessage::class.java).max("id")?.toLong() ?: -1) + 1
|
||||
val message = ScheduledMessage(id, date, recipients, sendAsGroup, body, attachments)
|
||||
|
||||
realm.executeTransaction { realm.insertOrUpdate(message) }
|
||||
|
||||
id
|
||||
}
|
||||
}
|
||||
|
||||
override fun getScheduledMessages(): RealmResults<ScheduledMessage> {
|
||||
return Realm.getDefaultInstance()
|
||||
.where(ScheduledMessage::class.java)
|
||||
.sort("date")
|
||||
.findAll()
|
||||
}
|
||||
|
||||
override fun getScheduledMessage(id: Long): ScheduledMessage? {
|
||||
return Realm.getDefaultInstance()
|
||||
.where(ScheduledMessage::class.java)
|
||||
.equalTo("id", id)
|
||||
.findFirst()
|
||||
}
|
||||
|
||||
override fun deleteScheduledMessage(id: Long) {
|
||||
Realm.getDefaultInstance().use { realm ->
|
||||
val message = realm.where(ScheduledMessage::class.java)
|
||||
.equalTo("id", id)
|
||||
.findFirst()
|
||||
|
||||
realm.executeTransaction { message?.deleteFromRealm() }
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user