Skip to content

Instantly share code, notes, and snippets.

@ntngel1
Created May 19, 2019 13:22
Show Gist options
  • Save ntngel1/08cfd0ca5c18524fc51e1a31d5d36701 to your computer and use it in GitHub Desktop.
Save ntngel1/08cfd0ca5c18524fc51e1a31d5d36701 to your computer and use it in GitHub Desktop.
// Вот так пашет
private lateinit var cards: RealmResults<RealmCardEntity>
override fun subscribeForChanges(onChange: (card: CardEntity) -> Unit) {
val realm = Realm.getDefaultInstance()
cards = realm.where(RealmCardEntity::class.java)
.findAllAsync()
cards.addChangeListener { results ->
results.let { realm.copyFromRealm(it) }
.map { it.toDomain() }
.forEach(onChange)
}
}
// Не пашет
private var changes: RealmResults<RealmCardEntity>? = null
override fun subscribeForChanges(): Observable<CardEntity> = Observable.create { emitter ->
Realm.getDefaultInstance().executeTransaction { realm ->
changes = realm.where(RealmCardEntity::class.java)
.findAll()
changes?.addChangeListener { result, changeSet ->
result.forEach { emitter.onNext(it.toDomain()) }
}
}
}
// Не пашет
private lateinit var changes: RealmResults<RealmCardEntity>
override fun subscribeForChanges(): Observable<CardEntity> = Observable.create { emitter ->
Realm.getDefaultInstance().executeTransactionAsync { realm ->
changes = realm.where(RealmCardEntity::class.java)
.findAllAsync()
changes.addChangeListener { result, changeSet ->
result.forEach { emitter.onNext(it.toDomain()) }
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment