Size: a a a

2020 March 07

L

Leo in RxPM
Автор Alligator в чате?) Крутяяяк
источник

С

Сергей in RxPM
Я вообще удивлен, что тут так мало людей
источник

L

Leo in RxPM
Не надо много, тут уютненько
источник

С

Сергей in RxPM
Согласен, но я удивлен
источник
2020 March 13

EP

Egor Polyakov in RxPM
Ребят есть у кого простой пример по RxPm на java
источник

VC

Vasili Chyrvon in RxPM
А кто-то из чата использовал на Java. Там были некоторые неудобства вроде, ТК мы либу не хотели захламлять аннотациями для поддержки джавы специально.
источник
2020 March 23

VC

Vova Chernyshov in RxPM
привет, играюсь с семплом rxpm и не могу понять как  навигация работает на главном потоке, судя по коду это не возможно но в дебагере handleNavigationMessage всегда на main, можете подсказать в чом суть, может я что-то упустил?
источник

DG

Dmitriy Gorbunov in RxPM
Vova Chernyshov
привет, играюсь с семплом rxpm и не могу понять как  навигация работает на главном потоке, судя по коду это не возможно но в дебагере handleNavigationMessage всегда на main, можете подсказать в чом суть, может я что-то упустил?
Привет. Навигационные сообщения отправляются через Command, делегаты подписываются на него через bindTo, который и переключает поток на мейн. https://github.com/dmdevgo/RxPM/blob/develop/rxpm/src/main/kotlin/me/dmdev/rxpm/delegate/CommonDelegate.kt#L53
источник

VC

Vova Chernyshov in RxPM
infix fun <T> Command<T>.bindTo(consumer: (T) -> Unit) {
   with(pm) {
       
this@bindTo.observable
           .subscribe(consumer)
           .untilUnbind()
   }
}

вот метод bindTo и там ничего такого нету
источник

L

Leo in RxPM
Смотри на реализацию команды. Там внутри bufferWhileIdle, который переключает поток сразу.
источник

L

Leo in RxPM
То есть команда всегда в главном потоке эмитит, тут дело не в подписке.
источник

DG

Dmitriy Gorbunov in RxPM
Vova Chernyshov
infix fun <T> Command<T>.bindTo(consumer: (T) -> Unit) {
   with(pm) {
       
this@bindTo.observable
           .subscribe(consumer)
           .untilUnbind()
   }
}

вот метод bindTo и там ничего такого нету
источник

VC

Vova Chernyshov in RxPM
я вот подумал на него, но это как то слишком не очевидно
источник

VC

Vova Chernyshov in RxPM
я сейчас пробую портировать RxPm на Reaktive и когда начал тестировать sample то у меня начало падать, причом не всегда
источник

L

Leo in RxPM
Ооо, грядет MPP
источник

VC

Vova Chernyshov in RxPM
у меня метод получился таким
internal fun <T> Observable<T>.bufferWhileIdle(
   isIdle: Observable<Boolean>,
   bufferSize: Int? = null
): Observable<T> {
   return this.observeOn(mainScheduler)
       .let {
           
if (bufferSize == 1) {
               bufferSingleValueWhileIdle(isIdle)
           } else {
               bufferValuesWhileIdle(isIdle, bufferSize)
           }
       }
}
источник

VC

Vova Chernyshov in RxPM
есть верюятность что где то косяк в реализации буфера но тесты проходят
источник

DG

Dmitriy Gorbunov in RxPM
Vova Chernyshov
я вот подумал на него, но это как то слишком не очевидно
В первой версии было в биндту, но потом мы добавили оператор буфера, но он не потокобезопасный, пришлось внутри команды переключать
источник

VC

Vova Chernyshov in RxPM
Leo
Ооо, грядет MPP
в итоге хочу получить mpp либу
источник

L

Leo in RxPM
Поделишься потом?)
источник