Как использовать сортировку в LiveData, получая данные из Room?
Итак, принцип работы такой:
- В DAO есть две query, который возвращают livedata из двух разных таблиц в БД.
- В репозитории есть две соответствующие им функции для получения этих livedata и отправки в ViewModel.
- В ViewModel получаю доступ к репозиторию и забираю оттуда эти две функции, возвращающие livedata.
- В активити есть Observer этого всего из ViewModel. В таком простом виде все работает, данные обновляются в реальном времени(хоть при первом запуске лучше отдельно принудительно грузить данные без LiveData, а то задержка в пару секунд уж очень бесит). Но есть такая проблема: мне нужно эти данные из двух разных таблиц объединить в один тип данных(для этого уже есть логика), отсортировать и уже отсортированные данные показывать в RecyclerView. Без LiveData это делалось легко, а вот как теперь впихнуть логику объединения и сортировки между 3 и 4 пунктами? Ибо без Observer в ViewModel мне данные из LiveData не вытащить, все время null, а пихать туда LiveData не вариант, ибо "антипаттерн", да и смысл LiveData с его lifecycle-aware теряется в принципе. У кого есть какие идеи? Находил тут похожие вопросы, но они мне не помогли.