Size: a a a

StartAndroid Ru RxJava

2020 January 28

М

Михаил in StartAndroid Ru RxJava
your-mirror
Всем привет,

Есть presenter и model, service. Нужно сделать поиск, т.е. при каждом вводе текста делать запрос на сервер и выводить результат, а старый игнорировать.

Архитектурно сделано так, что presenter передает observer в model, модель вызывает service (retrofit), который возвращает observable, далее наша модель делает подписку передавая observer-а презентера.

Как через операторы организовать, так чтобы каждый новый запрос приходящий от презентера, делал отписку на предыдущий запрос?
switchMap
источник

y

your-mirror in StartAndroid Ru RxJava
Михаил
switchMap
switchMap в модели?
источник
2020 January 29

AK

Aleksey Kuzmenko in StartAndroid Ru RxJava
your-mirror
Всем привет,

Есть presenter и model, service. Нужно сделать поиск, т.е. при каждом вводе текста делать запрос на сервер и выводить результат, а старый игнорировать.

Архитектурно сделано так, что presenter передает observer в model, модель вызывает service (retrofit), который возвращает observable, далее наша модель делает подписку передавая observer-а презентера.

Как через операторы организовать, так чтобы каждый новый запрос приходящий от презентера, делал отписку на предыдущий запрос?
Обычно такие вещи с поиском делаются при помощи оператора debounce. Почитай про этот оператор.
Можно написать свой текствочер, а можно использовать либу Жени Вартанова (RxViews кажется называется)
источник

ДР

Дмитрий Рубцов 🇷🇺🔥 in StartAndroid Ru RxJava
RxBinding
источник

AK

Aleksey Kuzmenko in StartAndroid Ru RxJava
your-mirror
Всем привет,

Есть presenter и model, service. Нужно сделать поиск, т.е. при каждом вводе текста делать запрос на сервер и выводить результат, а старый игнорировать.

Архитектурно сделано так, что presenter передает observer в model, модель вызывает service (retrofit), который возвращает observable, далее наша модель делает подписку передавая observer-а презентера.

Как через операторы организовать, так чтобы каждый новый запрос приходящий от презентера, делал отписку на предыдущий запрос?
Таким образом ты не будешь делать запрос на каждый введённый пользователем символ и откидывать предыдущий через switchMap
источник

y

your-mirror in StartAndroid Ru RxJava
Aleksey Kuzmenko
Обычно такие вещи с поиском делаются при помощи оператора debounce. Почитай про этот оператор.
Можно написать свой текствочер, а можно использовать либу Жени Вартанова (RxViews кажется называется)
debounce не поможет, если запрос улетел и через какое-то время человек снова ввел в поиск что-то и при этом ответ еще не пришел
источник

y

your-mirror in StartAndroid Ru RxJava
switchMap не могу заюзать, т.к. обработка текст проходит в презентере, после чего идет вызов модели в которой и проходит подписка.
источник

y

your-mirror in StartAndroid Ru RxJava
Если можно было в презентере все сделать, то было бы ок, но по архитектуре не могу так сделать
источник

AK

Aleksey Kuzmenko in StartAndroid Ru RxJava
your-mirror
debounce не поможет, если запрос улетел и через какое-то время человек снова ввел в поиск что-то и при этом ответ еще не пришел
я вам объяснил максимально часто используемую логику при построении поиска в приложении.
Тогда удачи вам с отправкой интернет запросов на каждый введенный символ :)
источник

y

your-mirror in StartAndroid Ru RxJava
Aleksey Kuzmenko
я вам объяснил максимально часто используемую логику при построении поиска в приложении.
Тогда удачи вам с отправкой интернет запросов на каждый введенный символ :)
Debounce и так используется
источник

y

your-mirror in StartAndroid Ru RxJava
Вопрос в другом
источник

y

your-mirror in StartAndroid Ru RxJava
your-mirror
Debounce и так используется
Выставил debounce на 2 секунды, прошло 2 секунды, пошел запрос №1 в сеть, пользователь ввел новый запрос, прошло еще 2 секунды, полетел запрос №2, приходит ответ от запроса №1.

Мне ответ запроса №1 не интересен, это и пытаюсь решить.
источник

М

Михаил in StartAndroid Ru RxJava
your-mirror
Если можно было в презентере все сделать, то было бы ок, но по архитектуре не могу так сделать
Тогда выходит что фича нереализуема, архитектура ж)
источник

y

your-mirror in StartAndroid Ru RxJava
Михаил
Тогда выходит что фича нереализуема, архитектура ж)
А может  все таки есть какие то варианты кроме dispose() у предыдущего observable? :)
источник

М

Михаил in StartAndroid Ru RxJava
your-mirror
А может  все таки есть какие то варианты кроме dispose() у предыдущего observable? :)
Можно нагородить) но есть оператор switchMap который решает именно этот кейс
источник
2020 January 30

AE

Anton Evangelist in StartAndroid Ru RxJava
Кто спрашивал ссылку в закрытую группу ? Держите. Доступ открыт до 00-00 по мск
https://t.me/joinchat/AAAAAFdb_kHcRZZjkAMAWg
источник

АА

Алексей Афанасьев in StartAndroid Ru RxJava
Всем привет
Почему может быть прерван поток Flowable?

В общем, задача: слушать БД и постоянно подтягивать обновлённые данные оттуда
Когда создаётся новая запись, она не подтягивается, после перезапуска приложения - запись отображается
Выглядит так, будто слушатель срабатывает один раз и комплитится, но, если я правильно понимаю, фловабл должен тянуть список постоянно

Код на пастбине:
1) Подписка в активити: https://pastebin.com/RV23RPuG
2) Небольшая обработка во вью модели: https://pastebin.com/wvTdPjg0
источник

АА

Алексей Афанасьев in StartAndroid Ru RxJava
Всё, разобрался, сам глупый
Если кому важно - происходила отписка при остановке активити
источник
2020 January 31

DM

Dima Morozov in StartAndroid Ru RxJava
Вчера не все успели вступить,поэтому публикую еще раз
[Получить доступ в закрытый канал✅]
источник
2020 February 04

V

Vadim in StartAndroid Ru RxJava
коллеги, такой вопрос по тому как работает take(1) у Flowable ? после того как заэмитится айтем, то подписка перестанет работать?
источник