@RealmClass
open class Note() : RealmModel {
@PrimaryKey
var id: String = ""
@Required
var title: String? = ""
@Required
var description: String? = ""
}
fun addNote(noteTitle: String, noteDescription: String) {
realm.executeTransaction { r: Realm ->
val note = r.createObject(Note::class.java, UUID.randomUUID().toString())
note.title = noteTitle
note.description = noteDescription
realm.insertOrUpdate(note)
}
}
private fun getAllNotes(): MutableLiveData<List<Note>> {
val list = MutableLiveData<List<Note>>()
val notes = realm.where(Note::class.java).findAll()
list.value = notes?.subList(0, notes.size)
return list
}
fun updateNote(id: String, noteTitle: String, noteDesc: String) {
val target = realm.where(Note::class.java)
.equalTo("id", id)
.findFirst()
realm.executeTransaction {
target?.title = noteTitle
target?.description = noteDesc
realm.insertOrUpdate(target)
}
}
fun deleteNote(id: String) {
val notes = realm.where(Note::class.java)
.equalTo("id", id)
.findFirst()
realm.executeTransaction {
notes!!.deleteFromRealm()
}
}
fun deleteAllNotes() {
realm.executeTransaction { r: Realm ->
r.delete(Note::class.java)
}
}