Vadim
попадаю в проверку и ставлю там брейкпойнт if (progress < 10)
Vadim
Vadim
как такое возможно ?
Мумитроль
Операции с плавающей точкой всегда такие
Hououin
посмотри как работает double
Vadim
Hououin
да, это нормально для него
Мумитроль
Ну да, это нормально
Глеб
Подскажите почему не проходит цепочка вызовов rx при запуске теста? Есть метод презентера: unsubscribeOnDrop(authSource.signInPhoneVerify(it, code) .flatMap { settings.account().setAuth(it) authSource.profile() } .observeOn(AndroidSchedulers.mainThread()) .subscribe({ if (it) { view?.startApp() } else { view?.showUserNotCashier() } }, this::handlePhoneSignError)) и тест для этого метода: @Test fun checkCode() { presenter.phone = TEST_PHONE val code = "12345" val auth = Auth("id", "access", "refresh") `when`(authSource.signInPhoneVerify(TEST_PHONE, code)).thenReturn(Single.just(auth)) `when`(authSource.profile()).thenReturn(Single.just(true)) presenter.checkCode(code) verify(settings).account() verify(authSource).profile() verify(view).startApp() когда в тесте стартует вызов метода презентера, то первый мок _`when`(authSource.signInPhoneVerify(TEST_PHONE, code)).thenReturn(Single.just(auth))срабатывает нормально, и settings.account().setAuth(it) вызвается verify(settings).account()проходит. А дальше такое чувство что authSource.profile() не вызывается в презентере, хотя метод замокал. В дебаге в rx цепочке падает в ошибку с NPE без сообщения... Rx настроен на TestScheduler
Vadim
что можно почитаь на эту тему, чтобы понять что за магия происходит ?
Pavel
https://habr.com/post/112953/
Мумитроль
Я вам больше скажу, на разных компах и процессорах будет по разному
Мумитроль
что можно почитаь на эту тему, чтобы понять что за магия происходит ?
Не магия. Загуглите про «машинный ноль» для начала
Глеб
Подскажите почему не проходит цепочка вызовов rx при запуске теста? Есть метод презентера: unsubscribeOnDrop(authSource.signInPhoneVerify(it, code) .flatMap { settings.account().setAuth(it) authSource.profile() } .observeOn(AndroidSchedulers.mainThread()) .subscribe({ if (it) { view?.startApp() } else { view?.showUserNotCashier() } }, this::handlePhoneSignError)) и тест для этого метода: @Test fun checkCode() { presenter.phone = TEST_PHONE val code = "12345" val auth = Auth("id", "access", "refresh") `when`(authSource.signInPhoneVerify(TEST_PHONE, code)).thenReturn(Single.just(auth)) `when`(authSource.profile()).thenReturn(Single.just(true)) presenter.checkCode(code) verify(settings).account() verify(authSource).profile() verify(view).startApp() когда в тесте стартует вызов метода презентера, то первый мок _`when`(authSource.signInPhoneVerify(TEST_PHONE, code)).thenReturn(Single.just(auth))срабатывает нормально, и settings.account().setAuth(it) вызвается verify(settings).account()проходит. А дальше такое чувство что authSource.profile() не вызывается в презентере, хотя метод замокал. В дебаге в rx цепочке падает в ошибку с NPE без сообщения... Rx настроен на TestScheduler
есть какие-то особенности как надо обрабатывать flatMap при тестировании?
Vadim
спасибо, буду разбираться
Сергій
Поэтому никогда не проводите валютные операции в float 🌚😁
Vadim
Поэтому никогда не проводите валютные операции в float 🌚😁
точнее в double, а что тогда использовать ?
Сергій
Kanstantsin
да, через Palette из design библиотеки
а ты делал что-то подобное ? Palette как я понял разбирает всю картинку, а мне надо смотреть только верхнюю полоску, ведь она подпадает под status bar только
Kanstantsin
хм
Kanstantsin
перерезать картинку на лету ?
Kanstantsin
неужели нет какого-то атрибута, чтобы status bar понимал какой цвет под ним и сам менялся из-за этого
Сергій
а ты делал что-то подобное ? Palette как я понял разбирает всю картинку, а мне надо смотреть только верхнюю полоску, ведь она подпадает под status bar только
выбрать свотч по наибольшему количеству пикселей. взять его главный цвет и тут уже смотреть светлый это или тёмный
Сергій
в Plaid так сделано, могу код кинуть
Kanstantsin
в Plaid так сделано, могу код кинуть
кинь пожалуйста, буду благодарен
Kanstantsin
Очень хорошо что такого нет
почему ? всё равно так сделать можно, через кучу костылей
Kanstantsin
так собственно и работаю прилаги, где динамически статус бар меняется
Artyom Pugachev
Сергій
Почему не long?
потому что floating point
Kanstantsin
Artyom Pugachev
потому что floating point
Так можно перевести в центы/копейки.
Vladimir
а проценты?
один хер пол копейки не бывает )
Artyom Pugachev
а проценты?
А что с ними?
Сергій
ну вот с этим я соглашусь, да
1. https://github.com/nickbutcher/plaid/blob/master/base/src/main/java/io/plaidapp/base/util/ColorUtils.java#L72 2. https://github.com/nickbutcher/plaid/blob/master/base/src/main/java/io/plaidapp/base/util/ColorUtils.java#L112
Мумитроль
почему ? всё равно так сделать можно, через кучу костылей
Потому что нельзя сделать универсальное решение. Но всегда можно сделать универсальные и кастомизируемые инструменты.
Kanstantsin
но работать будет )
Мумитроль
Обычный не сложный кодекс
Мумитроль
Напишите себе утилиту
Мумитроль
Наследника и расширьте
Kanstantsin
да не, это совсем не проблема
Kanstantsin
просто я думал всё проще, чем брать картинку узнавать её цвет и ручками менять status bar оценивая цвет картинки
Konstantin
Берите картинку чуть больше и пусть она заезжает под прозрачный статус бар )
Kanstantsin
так не в этом дело, если картинка будет светлая иконки статус бара должны быть темные, и наоборот
Kanstantsin
это программно менять надо будеть
Kanstantsin
собственно я разобрался уже как, спасибо всем )
Сергій
тёмная тема статусбара появилась только с андроид 6
Kanstantsin
ну да, поэтому и переключение через атрибут работает только с 23 апи
Kanstantsin
а подползание на 5 андройде работает ? под статус бар
Kanstantsin
если иконки всегда светлые, то их не будет видно на белом фоне же (
Kanstantsin
вот задачка )
Сергій
🌝
Сергій
вот задачка )
if (SDK_INT > L) { // set dymamic background color } else { // set dark background color }
Kanstantsin
логично )
Kanstantsin
но выглядеть будет не комильфо )
Kanstantsin
собственно не будет работать ради чего весь этот сыр бор, а жаль..
Anonymous
Привет всем! Есть кто настроил P2P connection в приложениях? Гугл чет молчит об этом
Сергій
собственно не будет работать ради чего весь этот сыр бор, а жаль..
пользователей андроид 5 меньше чем 6, 7, 8 вместе взятых, переживут без этой фичи как-нибудь
Сергій
это вы ещё не тестировали на MIUI на android 6, там статус бар подчиняется только системе ))
Лёша
это вы ещё не тестировали на MIUI на android 6, там статус бар подчиняется только системе ))
для китайцов то хоть можно найти имплеметации управления статус баром на гитхабе)
Лёша
вроде пару раз здесь ссылки проскакивали
Сергій
Сергей
Трям всем)) Вопрос по жипиэс.. Location.distsceTo() Он возвращает расстояние с учётом разницы высот или нет?
Лёша
высот?
ну так земля же не плоская, разница в высоте у точек разная)
Сергій
там мат формула для окружности
Сергей
высот?
Ну да. Ну например 1 точка выше другой на 10 метров.
Сергій
Distance is defined using the WGS84 ellipsoid.
Сергій
вот и доки метода
Сергей
Так, ладно.. если я дальше пересчитаю полученное расстояние с учётом высоты беды не будет?)