Ilya
Холиварная тема на самом деле. Кто-то считает, что правильнее присылать именно ошибку, ну 500 например и там уже описание. Кто-то считает, что 200 и описание в json это ок. Вкусовщина, как на мой взгляд.
Ilya
Ну с 200 немного проще парсить модель ответа. Но как минус - надо всегда думать о том, что 200 это не всегда ок
Ilya
Это да, но обычно 200 подразумевает, что все ок и все хорошо. А по факту это не так, это означает только что запрос к серверу отработал и нужно уже дальше проверять бизнес-логику. В принципе, с нормальной архитектурой приложения это не особо проблема. Ну вот, опять холивар, а так не хотел(
Egor
можно написать свой листенер и его ставить в респонсы, типа сначаа парсить ответ и если там еррор - дергать онФейл
Egor
хотя есть способ переопределить поведение ретрофита, но как я помню, там много гемороя
Egor
смотря какая архитектура и слои, по разному можно сделать
Egor
у меня похожая ситуация - я в rx все паршу
Egor
т.е. просто после запроса в сеть добавляю в цепочку метод, который распарсит ответ или выкинет ошибку моего типа
Egor
да, но если не добавять - Rx в любом случае упадет "тихо", в другом случае надо мешать парсер интернет запроса и внутреней логики, что тоже не очень красиво
Egor
https://futurestud.io/tutorials/retrofit-2-simple-error-handling
Egor
как бы они сами про это говорят
Elon 👨‍🚀
Вопрос, может кто работал с этой либой https://gtomato.github.io/carouselview/ или с похожими ? Как recyclerview можно настроить скорость прокрутки элементов ?
Ilya
В случае с 200 есть такой минус, что если когда-то от апи придет ошибка, о которой нативка не знает и нет логики ее обработки, то все может быть грустно. В случае с ошибками типа 500 будет обработка по логике всех ошибок в onError. Что как то правильнее, на мой взгляд
Anton 🇺🇦
Отдавать 200 и потом подбирать тип ответа - вот это звучит печально.
Egor
Egor
хоят знаю что есть механизм и в самом ретрофите
Yaroslav
ребят, а как можно использовать inject в Koin, если нету контекста?
Yaroslav
Хотел сделать синглот менеджераАПИ, а походу нигде кроме Активити и Фрагментов то юзнуть и не могу
Tishka17
Может проще при создании передать экземпляр?
Yaroslav
Может проще при создании передать экземпляр?
это же может очень долгая цепочка зависимостей
Tishka17
Вообще , у меня инджект прекрасно работает из любого класса. Надо только синглтон компонента иметь
Volodymyr
Скажите пожалуйста правильно ли я скриваю фрагмент, потому что метод запускается, но фрагмент не исчезает, и соответственно в методе showMenuFragment срабатывает только else
Volodymyr
Игорь
Привет всем !Заранее извиняюсь , если что не так ! Кто знает из чего состит это вьюха?
Anonymous
Привет всем, второй день не могу придумать что делать с пушами. https://ru.stackoverflow.com/questions/848774/%D0%A2%D0%B5%D1%80%D1%8F%D1%8E%D1%82%D1%81%D1%8F-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5-%D0%B2-intent-%D0%BF%D1%80%D0%B8-%D0%BD%D0%B0%D0%B6%D0%B0%D1%82%D0%B8%D0%B8-%D0%BD%D0%B0-%D0%B3%D1%80%D1%83%D0%BF%D0%BF%D1%83-%D1%83%D0%B2%D0%B5%D0%B4%D0%BE%D0%BC%D0%BB%D0%B5%D0%BD%D0%B8%D0%B9 Добавил вопрос на стаковерфлоу
Anonymous
Похоже на то. Что с этим делать - ума не приложу
Artem
пуш эт сигнал, на его данные ориентироваться нельзя
Artem
запустил приложение, запросил данные
Anonymous
можно подробнее?
Artem
можно подробнее?
концептуально: пуш не для передачи данных, а для оповещений
Anonymous
Но ведь мы можем заполнить Extras, вытянуть из них необходимые данные. Суть в различном поведении при нажатии на одну нотификацию и на несколько сразу
Anonymous
жмём на одну - всё хорошо. Жмём на несколько - данные в интенте пустые
Artem
ну вот у тебя есть 2 уведомления, одно от сообщения, второе от звонка. ты кликаешь на группу, что ты ждёшь?
Artem
чей интент круче? кто победит)
Anonymous
я ожидаю, что есть возможность не группировать уведомления.
Artem
нет, насколько я знаю отключить это нельзя
Anonymous
Пока не нашёл способа заполнить пуш таким способом, чтобы устройство поняло, что эти нотификации группировать не нужно.
Artem
карточка, запоминай данные последнего пуша всегда, в момент создания уведомления
Artem
если интент не пуст, делай что там сказано. если пустой - поднимай данные от последнего из своего хранилища
Anonymous
какое хранилище?
Igor
Сделай группировку уведомлений свою и всё
Anonymous
Сделай группировку уведомлений свою и всё
а можно подробнее? Пробовал задавать в запросах к API firebase различные параметры, и всё равно равно уведомления группируются. За счёт чего еще можно сделать группировку уведомлений?
Alexander
Всем привет,может кто помочь? Есть такой код при нажатии на элемент в ExpandableListView ExpandableListView expandableListView = (ExpandableListView) findViewById(R.id.expListView); expandableListView.setAdapter(adapter); expandableListView.setOnChildClickListener(new ExpandableListView.OnChildClickListener() { public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) { Intent intent = new Intent(); intent.setClass(activity_stigmata_detail.this, activity_stigmata_detail_4_view.class); intent.putExtra("mSpringMonthsArray", childPosition); startActivity(intent); return false; И код в WebView Intent intent = getIntent(); //получаем строку и формируем имя ресурса String resName = "q" + intent.getIntExtra("mSpringMonthsArray", 0); Log.i("name", resName); Context context = getBaseContext(); //получаем контекст Так как я использую ExpandableListView мне нужно еще передавать группу я думаю,что могу сделать это так intent.putExtra("Group",groupPosition); Но как это использовать в WebView? Тоесть,если группа 1 то код Intent intent = getIntent(); //получаем строку и формируем имя ресурса String resName = "q" + intent.getIntExtra("mSpringMonthsArray", 0); Log.i("name", resName); Context context = getBaseContext(); //получаем контекст Если вторая,то код Intent intent = getIntent(); //получаем строку и формируем имя ресурса String resName = "S" + intent.getIntExtra("mSpringMonthsArray", 0); Log.i("name", resName); Context context = getBaseContext(); //получаем контекст Если что, вот весь код https://pastebin.com/EiUk1VX9
Chingiz
жмём на одну - всё хорошо. Жмём на несколько - данные в интенте пустые
Чтобы интенты не были пустыми, нужно поставить action на него, и ловить интент в методе onNewIntent.
Chingiz
Если action не выставить, интент будет пустым
Andrey
Всем привет! Как применить Arrays.binarySearch в Java для обратно отсортированных массивов? или какие аналоги этой библиотеки для обратно отсортированных массивов
Vitaly
Всем привет) Как вы относитесь к Firebase? Когда его стоит использовать? Или лучше писать свой сервер для авторизации и обмена сообщениями?
Andrey
Игорь я уже написал свою реализацию Arrays.sort (arrayPerson); Arrays.binarySearch
Andrey
Всем привет. Подскажите с вопросом: у меня данные хранятся в БД локально и я их отображаю в RV. При удалении элемента из RV как правильно удалить его из БД? Мне нужно пробросить событие во вью, далее в презентер, а там уже вызвать провайдер (юзаю MVP)?
Andrey
Кидаешь слушателя через interface с RV во View, а во View вызываешь логику из Presenter. Так не пойдет?
да, я так и думал. Ведь неправильно тянуть провайдер прямо в адаптер?
FromSi
Вы по сути слушаете интерфейс в котором имеются аргументы с удаленной в RV данных. А во View просто вызываете пресентер, как и всегда. Ну больше никак =\
Andrey
Почему не правильно?
я думал адаптер это чисто отображение и инжектить туда провайдер неправильно. Вот и хотел узнать
FromSi
я думал адаптер это чисто отображение и инжектить туда провайдер неправильно. Вот и хотел узнать
Скорей всего, лучше там не мусорить несколькими CONTEXT :D. Думаю, что прослушиватель не даст просесть ROM. =)
Павел
я думал адаптер это чисто отображение и инжектить туда провайдер неправильно. Вот и хотел узнать
Кидай колбэк сразу в презентер, твой список находится в презентере, передаешь индекс туда и работаешь уже
Павел
Не надо на вью лишнюю логику делать, она должна быть абстрогирована
Andrey
Кидай колбэк сразу в презентер, твой список находится в презентере, передаешь индекс туда и работаешь уже
при том у меня в презентере уже есть этот провайдер (для получения данных)
Alexander
Можно как то убрать ошибку при использовании webView? Validate_display:99 error 3008 (EGL_BAD_DISPLAY) появляется она когда в WebView загружаешь картинку с устройства
Alexander
И картинки не отображаются
Игорь
tab viewpager(optional) recyclerview
Спасибо большое!
Игорь
Спасибо , + вам в карму!
Elon 👨‍🚀
Вопрос, может кто работал с этой либой https://gtomato.github.io/carouselview/ или с похожими ? Как recyclerview можно настроить скорость прокрутки элементов ?
Alexander
Блин, может можно WebView заменить на что нибудь?...
Denko
Блин, может можно WebView заменить на что нибудь?...
в одном тестовом задании просили вместо вебвью, открыть в хром Табе, попробуй, может тебе это подойдет implementation 'com.android.support:customtabs:27.0.2'
Alexander
Я использую ресурсы из телефона
Alexander
Или разницы нет?
Anonymous
Anonymous
Народ, как называется такая анимация перехода между фрагментами?
Anonymous
Пробовал fade с маленьким duration, не оно
Anonymous
Не, именно на переходах между фрагментами в bottom navigation
Yelaman
как кнопка называется ? кто знает?
Yelaman
именно нужно название иконки