Use RxRelay instead of Subjects

This commit is contained in:
ganfra 2019-01-12 10:20:46 +01:00 committed by ganfra
parent d7de986365
commit acf2301fc9
3 changed files with 7 additions and 5 deletions

View File

@ -65,6 +65,7 @@ dependencies {
// rx // rx
implementation 'io.reactivex.rxjava2:rxkotlin:2.3.0' implementation 'io.reactivex.rxjava2:rxkotlin:2.3.0'
implementation 'io.reactivex.rxjava2:rxandroid:2.0.2' implementation 'io.reactivex.rxjava2:rxandroid:2.0.2'
implementation 'com.jakewharton.rxrelay2:rxrelay:2.1.0'


implementation("com.airbnb.android:epoxy:$epoxy_version") implementation("com.airbnb.android:epoxy:$epoxy_version")
kapt "com.airbnb.android:epoxy-processor:$epoxy_version" kapt "com.airbnb.android:epoxy-processor:$epoxy_version"

View File

@ -1,17 +1,17 @@
package im.vector.riotredesign.features.home.group package im.vector.riotredesign.features.home.group


import arrow.core.Option import arrow.core.Option
import com.jakewharton.rxrelay2.BehaviorRelay
import im.vector.matrix.android.api.session.group.model.GroupSummary import im.vector.matrix.android.api.session.group.model.GroupSummary
import io.reactivex.Observable import io.reactivex.Observable
import io.reactivex.subjects.BehaviorSubject


class SelectedGroupHolder { class SelectedGroupHolder {


private val selectedGroupStream = BehaviorSubject.createDefault<Option<GroupSummary>>(Option.empty()) private val selectedGroupStream = BehaviorRelay.createDefault<Option<GroupSummary>>(Option.empty())


fun setSelectedGroup(group: GroupSummary?) { fun setSelectedGroup(group: GroupSummary?) {
val optionValue = Option.fromNullable(group) val optionValue = Option.fromNullable(group)
selectedGroupStream.onNext(optionValue) selectedGroupStream.accept(optionValue)
} }


fun selectedGroup(): Observable<Option<GroupSummary>> { fun selectedGroup(): Observable<Option<GroupSummary>> {

View File

@ -1,14 +1,15 @@
package im.vector.riotredesign.features.home.room package im.vector.riotredesign.features.home.room


import com.jakewharton.rxrelay2.BehaviorRelay
import io.reactivex.Observable import io.reactivex.Observable
import io.reactivex.subjects.BehaviorSubject import io.reactivex.subjects.BehaviorSubject


class VisibleRoomHolder { class VisibleRoomHolder {


private val visibleRoomStream = BehaviorSubject.create<String>() private val visibleRoomStream = BehaviorRelay.create<String>()


fun setVisibleRoom(roomId: String) { fun setVisibleRoom(roomId: String) {
visibleRoomStream.onNext(roomId) visibleRoomStream.accept(roomId)
} }


fun visibleRoom(): Observable<String> { fun visibleRoom(): Observable<String> {