Egor
У пользователя может пропадать сеть
Это на пагинацию никак не влияет
Roman
Это на пагинацию никак не влияет
Да, ведь ошибки подключения с сетевых запросов не падают)
Данил
ну как тебе сказать, проблемы с подключением не существует?))
Этим должен заниматься Repository, Paging Library отвечает только за постраничную загрузку
Roman
А какие ошибки у тебя возникли?
Или сервис может быть иногда недоступен, но это совсем редко происходило у меня
Roman
Этим должен заниматься Repository, Paging Library отвечает только за постраничную загрузку
Так что репозиторий сможет сделать? Я возвращаю observable из репы, в репе я могу ошибки либо заменить уже на свои, либо обернуть в некоторый обьект, который будет сигналить про проблемы
Roman
в репе ты должны вместе с данными передавать состояние запроса вот и все. Успех, Ошибка
Я это и говорю. И вот приходит тебе стейт "Ошибка подключения", что ты с этим будешь делать в DataSource?
Roman
Упакую в тот или иной Result и проброшу в ViewModel / Presenter,
Воот, мне интересно, как ты из DataSource отдаешь это во ViewModel?
Dmitry
Roman
как результат (result) можно возвращать
Я пока делал PublishSubject состояний, держал его в фабрике датасорсов и выдавал через фабрику и новым сорсам, и ViewModel. Но мне кажется, что это криво
Roman
ты держал специальный сабжект для ошибок?
Не совсем тебя понял, просто отдельный сабджект, да
Dmitry
ну вроде нет ничего криминального в таком подходе. только я бы возвращал это не в "отдельный" сабжект, а туда же, куда возвращаются данные в случае успеха.
Roman
как результат (result) можно возвращать
Ты ошибки вниз роутил через loadNext(params, callback)?
Dmitry
Ты ошибки вниз роутил через loadNext(params, callback)?
про paging другой коллега писал ) я говорю про передачу от datasource до viemodel. а как в paging отдавать - отдельный вопрос
Dmitry
А бог с ним, с paging, как у тебя с datasource спускалась ошибка?)
мне проще представлять datasource снизу 🙂 если я правильно понял, то ты же через сабжект их прокидывашь? ты хочешь какие-то альтернативные способы узнать? или я не понял вопрос
Данил
Воот, мне интересно, как ты из DataSource отдаешь это во ViewModel?
У меня есть класс обертка, которая имеет 4 состояния: Success, Error, FatalError, ErrorInternet. в зависимости от состояния я пробрасывают либо data, либо message, либо error
Dmitry
Да-да, все так, альтернативу сабжектам
ну например с Rx: Single<Result<SomeData>> getSomeData();
Dmitry
Да-да, все так, альтернативу сабжектам
тут надо смотреть как ты данные в случае успеха возвращаешь
Roman
тут надо смотреть как ты данные в случае успеха возвращаешь
Я думал, что для корректной работы пагинации, нужно отдавать в коллбэк, что передается в методы datasource. В итоге туда данные и отдавал в случае успеха
Yank
что за ошибка? кто может помочь ?
Roman
что за ошибка? кто может помочь ?
Это ты библиотеку втащил на проект, как модуль?
Dmitry
Я думал, что для корректной работы пагинации, нужно отдавать в коллбэк, что передается в методы datasource. В итоге туда данные и отдавал в случае успеха
вот пример обработки ошибок с использованием вспомогательного класса (контейнера) LoadResult: https://github.com/android/architecture-components-samples/blob/master/PagingWithNetworkSample/app/src/main/java/com/android/example/paging/pagingwithnetwork/reddit/repository/inMemory/byPage/PageKeyedSubredditPagingSource.kt
Udery
ребята при вызове in app review диалог сразу же закрывается, было такое у кого?
Udery
https://developer.android.com/guide/playcore/in-app-review/kotlin-java
Евгений
Как определить что приложение запущено? Мне надо в этом случае по клику на нотификейшн просто удалить нотификейшн и остаться на том же экране
Dmitry
тебе, скорее всего, не нужно определять, что приложение запущено. так как pending intent ты не поменяешь. наверное нужно правильно обрабатывать интент от нотификации (не пересоздавать активити).
Dmitry
Как определить что приложение запущено? Мне надо в этом случае по клику на нотификейшн просто удалить нотификейшн и остаться на том же экране
а вообще есть способы не показывать нотификации вообще, если приложение в фореграунде. тогда и проблемы с кликом не будет.
Евгений
активити в приложении много.
Dmitry
активити в приложении много.
интент не обязательно должен запускать активити
Dmitry
можно пускать бродкаст
Dmitry
в UI регистрировать бродкаст ресивер
Евгений
сейчас у меня так
Dmitry
это запуск стандартной активити из ланчера
Евгений
ну вот надо как то не делать это если уже запущено приложение
Dmitry
ну вот надо как то не делать это если уже запущено приложение
ты точно уверен, что тебе нужна нотификация при запущенном приложении? может быть скрывать нотификацию при запуске?
Dmitry
да. нотификацию надо показать. тз такое
попробуй убрать флаги для интента (и проверь какой launch mode у стартовой активити)
Евгений
Adam-Nurbol
Всем привет. Ретрофит возвращает нуль, устал искать ошибку. Кто нибудь может помочь найти ошибку по служебной солидарности за небольшую символичную оплату? Всего 3 поля уходит в боди, прийти должно две. Вроде все правильно настроил, через постман проверил, там все работает, а в апп все равно нуль приходит.
Adam-Nurbol
Репозиторий
Adam-Nurbol
NetworkService
Adam-Nurbol
NetWorking
Adam-Nurbol
Модель ответа
Adam-Nurbol
Модель запроса
Adam-Nurbol
PostMan запрос
Adam-Nurbol
Postman ответ. Вроде скинул все
Valentin
нет
Поставь и скинь то, что он запишет в логкат
Valentin
Может даже сам сразу увидишь ошибку
Valentin
Postman ответ. Вроде скинул все
А вообще - у тебя же внутренняя ошибка сервера. Если HTTP статус 500 - то ретрофит и будет экскпшны кидать
George
Всем привет, подскажите как можно парсить br тег, юзаю Html.fromhtml, все норм за исключением этого тега, не переносятся строки
Kredy Leonrin
Добрый день! У меня есть вопрос Я при разработке приложения как-то столкнулся с проблемой https запросов на разных версиях В версиях с 4.4.2 до 5.0 https запросы отказывались работать, возвращая исключение о том, что сертификаты не прошли проверку На версии 4.4.1 и после 5.0 всё работало Пришлось все запросы отсылать по http Интересно в чем причина такого, может кто подскажет?
Артем
Привет, подскажите пожалуйста, кто-нибудь сталкивался с подобной ошибкой, прилетает краш в метрику, но у меня не выбивает не на устройствах, не на эмуляторах, я не могу понять где она в коде, выбивает с android 6+
Артем
Valentin
Response полностью null
Какой статус у ответа в постман?
Dmitry
Response полностью null
в случае ошибки 500 нужно парсить отдельно ошибку. посмотри ссылку, что я выше кинул.
Adam-Nurbol
А вообще - у тебя же внутренняя ошибка сервера. Если HTTP статус 500 - то ретрофит и будет экскпшны кидать
Это я просто неверный старый пароль ввел чтобы не поменять, мне бы хотя бы этот статус получить, вообще ноль приходит
Adam-Nurbol