Size: a a a

Android arch. components

2019 October 16

Sergey λ in Android arch. components
Serhii Pylypchuk
Всем привет! Есть какой то способ зипнуть 2 лайфдаты либо еще както выполнить действие только при выполнении всех условий

Кейс, есть мютабл лайфдата (с булем внутри) и сингл лайф ивент. Нужно по срабатывании второго проверить условие буля и выполнить что-то

При подписке на сингл ивент, внутри вызвать подписку на буль, внутреняя подписка всегда срабатывает, даже если сингл лайв ивент не вызвался. При перестановке игнорится буль. Если на сингл ивент подписатся а внутри чекать по значению -> в лайф дату не успевает прилетать значение (+ все 3 варианта костыли)
MediatorLiveData
источник

Sergey λ in Android arch. components
Есть библиотечка кажется называется LiveData extensions от Shopify, там попыталась добавить некоторый функционал операторов rx, в том числе и zip. Можешь посмотреть их реализацию
источник

ST

Sasha Tainyuk in Android arch. components
Serhii Pylypchuk
Всем привет! Есть какой то способ зипнуть 2 лайфдаты либо еще както выполнить действие только при выполнении всех условий

Кейс, есть мютабл лайфдата (с булем внутри) и сингл лайф ивент. Нужно по срабатывании второго проверить условие буля и выполнить что-то

При подписке на сингл ивент, внутри вызвать подписку на буль, внутреняя подписка всегда срабатывает, даже если сингл лайв ивент не вызвался. При перестановке игнорится буль. Если на сингл ивент подписатся а внутри чекать по значению -> в лайф дату не успевает прилетать значение (+ все 3 варианта костыли)
Я так и не смог это победить. Хз по какому принципу работает медиатор. Переписал на flow и работает ок.
источник

SP

Serhii Pylypchuk in Android arch. components
Sasha Tainyuk
Я так и не смог это победить. Хз по какому принципу работает медиатор. Переписал на flow и работает ок.
решил немного по другомую На лайвдате так и не выехал куда мне нужно
источник
2019 October 24

КР

Кирилл Романенко in Android arch. components
Щас попробовал в sqldelight поиграться с flow - это просто офигенно, в отличие от имплементации в руме. Рум умеет отдавать флоу только на select all, а дальше фильтруй сам. А sqldelight будет отдавать в флоу только обновления по твоему запросу.
источник

КР

Кирилл Романенко in Android arch. components
Да и вообще в принципе sqldelight удобнее, имхо.
источник

СГ

Сергей Греков in Android arch. components
Кирилл Романенко
Щас попробовал в sqldelight поиграться с flow - это просто офигенно, в отличие от имплементации в руме. Рум умеет отдавать флоу только на select all, а дальше фильтруй сам. А sqldelight будет отдавать в флоу только обновления по твоему запросу.
> Рум умеет отдавать флоу только на select all,
Ты уверен? Он вроде работает так, что как селект напишешь, так и будет отдавать
источник

КР

Кирилл Романенко in Android arch. components
Сергей Греков
> Рум умеет отдавать флоу только на select all,
Ты уверен? Он вроде работает так, что как селект напишешь, так и будет отдавать
Да, я проверял. И кажется в этом чатике тоже спрашивал. И в интернете я не видел семплов, где флоу отдаётся не на select all (это аргумент на случай, если я ошибся при тестировании).
источник

ST

Sasha Tainyuk in Android arch. components
Кирилл Романенко
Щас попробовал в sqldelight поиграться с flow - это просто офигенно, в отличие от имплементации в руме. Рум умеет отдавать флоу только на select all, а дальше фильтруй сам. А sqldelight будет отдавать в флоу только обновления по твоему запросу.
Чёго? Не может быть такого. Как flow связан с query.
источник

K

Kopusha in Android arch. components
через Романа Элизарова
источник

КР

Кирилл Романенко in Android arch. components
Sasha Tainyuk
Чёго? Не может быть такого. Как flow связан с query.
А ты загляни в sqldelight и узнаешь.) Создаётся Flow<Query> и одна и та же квери эммитится каждый раз, когда происходит изменение.) А дальше ты при коллекте или маппе дёрнаешь нужный метод на квери
источник

SV

Sviat Volkov in Android arch. components
Сергей Греков
> Рум умеет отдавать флоу только на select all,
Ты уверен? Он вроде работает так, что как селект напишешь, так и будет отдавать
тут скорее то что при изменении в таблице рум всегда тригерит все подписки, на плечах разработчика всякие distinctUntilChanged()
источник

ST

Sasha Tainyuk in Android arch. components
Sviat Volkov
тут скорее то что при изменении в таблице рум всегда тригерит все подписки, на плечах разработчика всякие distinctUntilChanged()
Не скорее всего, а так и есть)

Тут недавно с этим мучался
источник

ST

Sasha Tainyuk in Android arch. components
Кирилл Романенко
А ты загляни в sqldelight и узнаешь.) Создаётся Flow<Query> и одна и та же квери эммитится каждый раз, когда происходит изменение.) А дальше ты при коллекте или маппе дёрнаешь нужный метод на квери
Ок. Надо будет глянуть.
источник

СГ

Сергей Греков in Android arch. components
Sviat Volkov
тут скорее то что при изменении в таблице рум всегда тригерит все подписки, на плечах разработчика всякие distinctUntilChanged()
Ну то что все подписки триггернутся это логично, нет? Просто насколько я помню в случае с Rx там на любое изменение таблицы дёргался твой селект(а не select all), и в обсервабо приходил нужный результат. То что он не кешировался, это тоже понятное вполне поведение.
источник
2019 October 25

K

Kopusha in Android arch. components
Немного не по arch, когда из файербейза пуши прилетают, как показать разный нотификейшн в зависимости от того в бэкграунде приложение или нет? Какие-то хаки где смотришь список процессов или можно элегантнее?
источник

YI

Yura Ivanov in Android arch. components
Kopusha
Немного не по arch, когда из файербейза пуши прилетают, как показать разный нотификейшн в зависимости от того в бэкграунде приложение или нет? Какие-то хаки где смотришь список процессов или можно элегантнее?
OrderedBroadcast можно кинуть. Если какая-нить активити его обработает, вернет "обработано", если никто не отреагирует, знач бэкграунд.
источник

ST

Sasha Tainyuk in Android arch. components
источник

ST

Sasha Tainyuk in Android arch. components
Ничего интересного и нового нет. 😔
источник

K

Kopusha in Android arch. components
источник