Mike
«не пробовал, но осуждаю, и всем об этом расскажу»
Kirill
Только он длиннее. Там весь день расписан таким образом
Mike
Это весь пример
тогда и тип должен быть непосредственно таким — Call/Single/Crap<Map<String, List<String>>>
Kirill
И как я скажу, что это нет время на этот день, или сервер отвалился?)
Mike
Я же тогда код не смогу ловить
Какой код? Ты постоянно что-то недоговариваешь.
Kirill
200/404/...
Mike
200/404/...
он у тебя в теле приходит или по-нормальному?
Mike
так ошибочные коды сваливаются в onError как HttpException, разве не так?
Kirill
так ошибочные коды сваливаются в onError как HttpException, разве не так?
Видимо не совсем так, т.к. приложение падает, если все хорошо io.reactivex.exceptions.OnErrorNotImplementedException: com.google.gson.internal.LinkedTreeMap cannot be cast to retrofit2.Response
Kirill
Он воспринимает как ошибку
Mike
так там и есть ошибка. И её причина — это, скорее всего, unchecked cast
Kirill
Т.к. в теле нет кода 200.. и пытается вытащить ерор и тоже нет и всё падает)
Mike
так в теле и не место коду, его там не может быть
Kirill
Но получается я игнорирую код ответа
Mike
нет! CallAdapterFactory создаёт HttpException, если код не 2хх
Anonymous
Кто чем декомпилирует приложения
Сергій
Android studio 🌝 чтобы почитать смали достаточно
Serhii
подскажите как реализовать проверку базы данных ввожу логин, пароль на экране и при нажатии на кнопку "login", надо чекать есть ли юзер с таким логином в базе, асинхронщина ведь кто как это делает?
Anonymous
.then(response => {if (response===true){aut()}else{error()}})
Kirill
нет! CallAdapterFactory создаёт HttpException, если код не 2хх
Вот так сделал и все хорошо стало : Single<Response<Map<String,List<String>>>>
Anonymous
это rx?
это на JS)
Mike
это на JS)
и как оно сюда попало?
Сергій
это rx?
это похоже на промис с дарта или джс
Serhii
это на JS)
а в андроиде?)
Anonymous
и как оно сюда попало?
элементарно, я думал он юзает JS фреймворк)
Mike
элементарно, я думал он юзает JS фреймворк)
почему ты так думал в андроид-чате?
Anonymous
хз))
Anonymous
ну логика я думаю такая же будет
Anonymous
мало инфы, где будешь акторизовывать юзера, где проверять
Anonymous
что собираешься юзать
Anonymous
может ты хочешь запилить Sign in with google
Serhii
мало инфы, где будешь акторизовывать юзера, где проверять
во вью модели метод общения в базу за юзером, остальное знать необязательно вроде как
lilmir
ребят, а можно в коде менять цвета градиента?
lilmir
динамически
Сергій
динамически
https://stackoverflow.com/a/6116273
Сергій
GradientDrawable
Adel
Всем доброго времени суток, вопрос по CompletableFuture
Adel
Всем доброго времени суток, вопрос по CompletableFuture
Я правильно понимаю, что после выполнения задачи, thenAccept будет выполнятся не в главном потоке?
Adel
userFuture.thenAccept(response -> processUserResponse(response));
Mike
если не укажешь явно, то будет выполняться где попало
Adel
userFuture - completablefuture который получает ответ с запроса retrofit
Adel
userFuture.thenAccept(response -> processUserResponse(response));
Просто он выполняется, а интерфейс не обновляется
Mike
хотя, если автор адаптера для ретрофита был трезв, то должно вызваться там же)
lilmir
спасибо ребят!
Mike
А как указать?
thenAcceptAsync() с параметром
Mike
Адаптер не использовал
а как создал фьчу? supplyAsync?
Mike
Да
а, ну вот в зависимости от варианта этой функции должен и унаследоваться поток выполнения
Mike
(наверное)
Сергій
Т.е?
CompletableFuture, или у тебя мин апи 24?
Adel
CompletableFuture, или у тебя мин апи 24?
CompletableFuture, сделали библиотеку для него, которая саппортит и ниже API
Adel
implementation 'net.sourceforge.streamsupport:android-retrofuture:1.7.1'
Adel
это я и спросил )
Так вот, у меня processUserResponse выполняется до первого взаимодействия с интерфейсом
Adel
Потом ошибки нет никакой, не вылетает и т.п
Adel
Просто не выполняется
Mike
лучше бы сразу код показал
lilmir
как нибудь можно перевести идентификатор цвета типа "fbc2eb" в десятиричный?
Adel
@Harmonizr , сделал как ты и сказал : userFuture.thenAcceptAsync(response -> processUserResponse(response),new HandlerExecutor(Looper.getMainLooper())); Теперь работает :) Но правилен ли такой подход?
Mike
https://pastebin.com/eYPPbs15
1. вангую, что makeLongText — это тост, показываемый из бэкграунда. Убери вообще catch 2. для processUserResponse ты не меняешь поток выполнения, это снова бэкграунд. Вызови acceptAsync, явно передай мейн, и обработай там и успех, и ошибку
lilmir
спасибо, уж думал самому переводить)