Darya
ок спасибо
Геннадий
Приветствую.
Darya
через URLEncoder.encode получилось то что нужно. Это то же самое что uri.parse?
Darya
ну там строка как входной параметр идет в скобках и всё.
0145
Всем привет. Для корректной работы нужно при первом заходе в приложение загрузить ретрофитом 2 списка. Как это лучше реализовать? Проверять наличие интернет соединения с помощью networkinfo.isconnected() и если нет соединения как-то блочить приложение или есть другие варианты?
Anton
Albert Как по мне да , проверяешь , если нету то выводишь тоаст что типа извините соединения нету , но как только появиться мы продолжим работу, ну и в другом потоке каждые условно секунд 10 пробуешь подключиться заново
Denis
Тогда уж броадкаст ловите
Anton
@nullcpp Извини не читал , ранее делал таким способом как описал , так что спасибо за информацию)
0145
Спасибо. Я читал эту статью, но на последний пункт не обратил должного внимания(
Artem
Зачем проверять перед запросами? observable.zip() на два запроса ретрофита. Словил IOException - нет интернета. Зарегал ресивер и когда появится - анрегаешь ресивер и колесо Сансары даёт оборот.
Artem
У тебя при переключениями между вафлей и мобильным трафиком будет повторный реквкст.
Dimul
Всем привет. Нужна помощь по PendingIntent. Я упаковываю PendingIntent во фрагменте и запускаю сервис. Дальше сервис стартуется и я шлю обратно RESULT_CODE_START чтобы уведомить фрагмент что задача начала выполняться: pIntent.send(RESULT_CODE_START) Проблема в том, что во фрагменте не вызывается onActivityResult, а прозодят только коллбеки от активити и фрагмента onPause, onResume RssFragment: onPause: MainActivity: onPause: MainActivity: onResume: RssFragment: onResume: Подскажите, что за механизм такой в обход onActivityResult??!! Вот создание PendingIntent https://gist.github.com/dmitriy1morozov/3c49fcd917e10ba0835d08c4cccd7de0
Dimul
Вот обратно в сервисе https://gist.github.com/dmitriy1morozov/4a3855e0c8001ce60c0d2cd0ce60c424
Artem
И вот ты уже усложняешь себе кейс
Artem
Плюс, речь ишла о том, чтоб аппа не работала в случае, если просто не вышло сделать два реквеста.
Artem
А так у тебя был инет, пропал, и гг
Artem
Но вообще да, все от кейса зависит.
Artem
Если постоянный надзор над изменениями, то твой вариант определенно выигрывает.
0145
Мне надо проверить только при первой загрузки приложения, если есть, загрузить данные и сохранить в БД. Иначе заблочить, пока не появится соединение. В последствии если интернета нет, но в БД есть сохранённая версия, данные буду брать из БД. Походу вариант с zip и reg/unreg подойдёт.
Pavel
М.б. наложить View с белым фоном и прозрачностью 50%?
Михаил
Есть же метод setColorFilter, он не полойдет?
Pavel
А какой цвет нужен, чтобы «чёрный стал белым»?
Pavel
Хорошо, а как понять, что нужно без упрощения?
Igor
FrameLayout можно поверх навесить, например, с кастомным бэкграундом
Pavel
Но я же не могу угадать, как выглядит этот фильтр, так?
Pavel
Обернуть в CardView
Pavel
Это же просто наложение белого цвета с непрозрачностью около 20%
Anonymous
Ты тролль что ли? Сколько можно то
Anonymous
Anonymous
Одно и то же..
Pavel
А, если нужно накладывать серый только на текст, а фон не трогать, то, наверное, придётся менять цвет TextView. Но это обычно не делают вручную: можно прописать нужные значения цветов в values, сделать drawable как selector из набора цветов (активный+неактивный) и установить этот drawable в качестве цвета текста. Теперь можно делать в коде setState, и цвет будет меняться https://stackoverflow.com/q/4336218/6131611
Михаил
Есть книжка Чистый код боба мартина, там расказано
Anonymous
Причём тут подход этот? Это уже о вопросе архитектуры, к слову
Pavel
Да, про стили не подумал
Anonymous
Я же написал: мне интересно, ты троллишь который день всех этим кодом или реально не понимаешь
Pavel
Типа вместо тени эта же картинка, но размытая?
Anonymous
То есть это не троллинг?)
Anonymous
А вот это троллинг?)
Anonymous
Pavel
Есть библиотека https://github.com/wasabeef/Blurry которая позволяет размыть битмап и положить результат в картинку Blurry.with(context).from(bitmap).into(imageView); P.S. сам не использовал
Anonymous
Ладно. Во-первых, жутко говнистый код - это не значит, что он не рабочий. Основа основ. Ты приводишь аргумент, что код у тебя работает, а люди, которые говорят, что это нечитаемо - де-факто "сами говно", как я понял. То что ты скинул, как минимум нечитаемо в масштабе проекта, как максимум чисто алгоритмически што там творится? Найди гайды Гугла по работе с фрагментами, гитхаб тот же, и просто посмотри как люди подобные задачи организуют. Как я могу тебе объяснить, что код говно, если ты даже понятия не имеешь что есть говно код?)
Anonymous
Anonymous
И вот это - советую к прочтению для понимания
Marat
у тебя почти тоже самое, твой код можно куда изящнее реализовать, да и к тому же он с багами в логике)
Marat
если прорезюмировать, то ты написал какую-то х***ю, которая точно не будет работать
Marat
он не работает на 1000%)
Marat
говорю как компилятор
Marat
нерабочий мега супер компилятор
Loki
Здраствуйте, у меня в xml файле говорит ошибка не найдено ресурс по заданнаму id но тот ресурс существует, как быт, пробовал clean/rebuild не помогает
Ivan
ты не используешь преимущества строгой типизации
Loki
Error:(11, 31) No resource found that matches the given name (at 'layout_above' with value '@id/chat_bottom_'). Error:(91, 38) No resource found that matches the given name (at 'layout_toLeftOf' with value '@id/sendmessage').
Marat
ахахахахахахаххахахахахахахаххаа
Marat
ребят, это бесполезно) не тратьте силы
Anonymous
Привет! Помогите мне пожалуйста! Я работаю с вебвью и хочу знать такую вещь: если я загружаю методом loadData, вебвью догружает скрипты, картинки и трекеры, которые включены в загружаемый html файл?
Anonymous
Да. Гуглы там всякие. Еще может модули платежных систем. Все это нужно.
Anonymous
Я сделал оверрайд чтобы нажатые ссылки в том же вью открывались без вопросов, и засомневался, а откроется ли ссылка или подключаемый файл из даты
Igor
Возможно стоит посмотреть на https://github.com/google/flexbox-layout
Anonymous
Я хочу все через inputStream и outputStream сделать. Кто-нибудь делал/знает как сделать?
Dug
Ребят, день добрый) Чет столкнулся я с какой-то глупой проблемой. Вроде понимаю, в чём дело, но в то же время и не понимаю :D Собственно проблема: есть ресайклер, в нём список элементов. Элемент состоит из кастомной вьюхи анимированного прогресса и текста обычного. В bind() методе моего холдера я стартую анимацию прогресса, во flush() методе останавливаю и сбрасываю все каунтеры в 0. Но иногда когда листаю список бывает отрисосывается вьюха с прогрессом там, где прогресс == 0.
Dug
В смысле
Igor
https://i.gyazo.com/932185ccc56b56a5ee3c50d54a767405.png Вот так это в Litho (там тоже flex). Главное задать wrap, justifyContent=space_between для контейнера и flex=1 для детей
Igor
Ну ок, а можно было бы декларативно row { wrap(WRAP) justifyContent(SPACE_BETWEEN) text { flex(1f) ... } row { justifyContent(FLEX_END) flex(1f) text { ... } } }
Igor
Ну его продают, как "очень быстрые списки" с декларативным описание структуры, на мощном-молодежном Flex (как в современном CSS) Имхо если бы телеграм переписали на Litho, то он остался бы быстрым, но активити уменьшились в >10 раз Я Litho использую как "движок" для эксперементов с Elm архитектурой и функ. программировонием (код выше, это Kotlin DSL поверх Litho)
Igor
В общем да. Еще там части UI переиспользуются (тк хранятся в pool объектов), те мньше нагрузки на GC (хотя это тоже можно отнести к перформансу)
Artem
Всем привет мб кто-то подскажет направление для мысли Надо синхронно проигрывать видео на нескольких устройствах.. что-то по типу видео стены сейчас сделано так: запрос на сервер, там смотрю сколько секунд, и стартую видео с этого момента. Но идеальной синхронизации таким образом добится не удалось, постоянная разница 1-2 сек.
Birger
А если брать время запуска видео. И считать время проигрывания от системного времени. Если все устройства синхронятся на один сервер то ты приблизишся к синхронному воспроизведению
Artem
да, я понимаю, что текущая позиция устаревает. Поэтому я считаю время с начала запроса, до переноса на позицию, и плюсую к времени, котрое пришло с сервера но и это не решает проблемы
Artem
+ проблема в том, что разные девайсы требуют разного времени на запуск видео из-за технических характеристик
Igor
А я ведь правильно понимаю, что не столько быстро, сколько асинхронно?
Я думаю и то и другое, тк layout происходит отдельно от android фреймворк, то там ничего не ограничивает. Те оно асинхронное и при этом там всегда идет последняя версия yoga фреймворка (от FB) для layout, в не зависимости от версии android.
Artem
а да, и файлы видео синхронизируются, т.е. хранятся на каждом устройстве локально
Birger
Отталкивайся от системного времени . Начало видео в 14:30 раздавая на все девайсы эту точку времени ты можешь вычислять на каком моменте видео должно воспроизводиться на данный момент, и корректировать даже если видео уже работает. Сервер времени на всех девайсах только поставь одинаковый.
Roman
да, я понимаю, что текущая позиция устаревает. Поэтому я считаю время с начала запроса, до переноса на позицию, и плюсую к времени, котрое пришло с сервера но и это не решает проблемы
Может завести виртуальные часы в приложении, которые будут синхронизироваться по серверу, или как угодно, на всех причастных к этому телефонах? При старте видео отмечать время старта по времени этих виртуальных часов, сообщать другому телефону о старте видео и времени ВЧ. Текущее время ВЧ - время старта ВЧ = позиция.
Roman
Только вот с буферизацией хз. Я не занимался видео никогда. Время буферизации можно узнать? Если можно, то можно будет как-нибудь подкорректировать