Andrew
сорри за офтоп вебинары в моде еще? просто пилю тут площадку в св. время для видеоконференций/вебинаров...
Aleksandr
андроиды могут фрилансить на апворк, не?
этот чувак рекламирует андроид?
Mike
этот чувак рекламирует андроид?
Этот чувак рассказывает, как фрилансить
Aleksandr
$20 это $20
бля, ну хотя бы в тему рекламу, было бы интересно. у него в профиле PowerPoint , Presentation, Microsoft Word.... wtf))
Mike
бля, ну хотя бы в тему рекламу, было бы интересно. у него в профиле PowerPoint , Presentation, Microsoft Word.... wtf))
Так он не андроидер и рассказывает не про андроид. А про фриланс, который может быть актуален для андроидеров. Что не так?
Mike
$20 это $20
Блять. Пойди спроси автора этого поста, сколько и кому он за это скинул.
Сергей
Насколько MVVM обходится без дата биндинга? Можно ли использовать вместо него kotlin с его оптимизированным findView? Много теряю?
Если брать гугловский vm в части использования класса view model + лайфдаты - то без датабайдинга автоматически решаются вопросы сохранения данных при повороте, отписки/подписки при смене видимости, обновления данных для показа из сети или процессов. А датабайндинг можно сеттерами заменить всегда.
Denis
Oh shi, это ж не был призыв к действию, я просто фактом поделился :D Окей, раз уж ты сходил прямо в бездну, я тоже гляну шо там. Мне в целом всё понятно(кроме того как ты всё это раскопал), но при некоторых допущениях: 1) Не смотря на то что Квантум сказал о том что AttachInfo "одно на окно", я пока не понял как это оно так работает. Вью действительно меняет mRecomputeGlobalAttributes каким - то хитрым if - ом в "своём экземпляре" mAttachInfo, и если эта та же AttachInfo, что и у ViewRootImpl, то окей. Под "та же" не подразумевается тот же инстанс, мб есть какая - то другая связь, хз. 2) Это скорее дополнение: mRecomputeGlobalAttributes может засеттится в тру не только при аттаче вью, но и в адовом вьюшном методе setFlags(). Чтобы понять как он работает, надо кусок души отдать дьяволу. Хотя, если исходить из доков по globalListener, то очевидно, что слушатель тригернётся когда в setFlags прилетит visibility флаг(назовём это так), который у вьюхи visibility поменяет. Спасибо за экскурс, это было интересно))
В методе setFlags сравниваются старые флаги с новыми на наличие изменений
Denis
Если они есть, то тру
Denis
Oh shi, это ж не был призыв к действию, я просто фактом поделился :D Окей, раз уж ты сходил прямо в бездну, я тоже гляну шо там. Мне в целом всё понятно(кроме того как ты всё это раскопал), но при некоторых допущениях: 1) Не смотря на то что Квантум сказал о том что AttachInfo "одно на окно", я пока не понял как это оно так работает. Вью действительно меняет mRecomputeGlobalAttributes каким - то хитрым if - ом в "своём экземпляре" mAttachInfo, и если эта та же AttachInfo, что и у ViewRootImpl, то окей. Под "та же" не подразумевается тот же инстанс, мб есть какая - то другая связь, хз. 2) Это скорее дополнение: mRecomputeGlobalAttributes может засеттится в тру не только при аттаче вью, но и в адовом вьюшном методе setFlags(). Чтобы понять как он работает, надо кусок души отдать дьяволу. Хотя, если исходить из доков по globalListener, то очевидно, что слушатель тригернётся когда в setFlags прилетит visibility флаг(назовём это так), который у вьюхи visibility поменяет. Спасибо за экскурс, это было интересно))
Мне самому интересно просто стало)
Александр
В методе setFlags сравниваются старые флаги с новыми на наличие изменений
Да, это я понимаю, это следует из "шапки" метода. Она простенькая, а вот что после неё - это лично для меня гг вп.
Axbor
Да, это я понимаю, это следует из "шапки" метода. Она простенькая, а вот что после неё - это лично для меня гг вп.
все просто, это битовые операции. ~ инверсия битов | побитовое или & побитовое и ^ операция хор
Александр
все просто, это битовые операции. ~ инверсия битов | побитовое или & побитовое и ^ операция хор
Я слишком поздно понял что меня не так поймут из - за этого скрина :D Скрин - как раз простая часть.
Dyno
блет. гитлаб вые*нулся и не запушил изменения. Push failed: OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to gitlab.com:443 а теперь андроид студия считает, что коммит пуш уже сделан и изменения не подсвечивает зеленым. как теперь подсветить все изменения что я сделал? :/ у меня есть идея, я так раньше делал уже вроде, но она достаточно муторная
Gulshen
Всем привет,посоветуйте плиз,видео или статью про MVVM
Ilya
он коммит сделал
Ilya
просто не пушнул их
Dyno
он коммит сделал
а точно. ты гений 😃
Hovhannes
пинг
Hovhannes
только что чекнул. эмуль на дроид 10 работает и не парится
Hovhannes
эмулятор на 7 крашится
Hovhannes
код такой findViewById(R.id.button).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Thread thread = new Thread(new Runnable() { @Override public void run() { ((TextView) findViewById(R.id.textView)).setText("fusrodah"); } }); thread.start(); } });
Hovhannes
android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
Sergey
На 9-м Settext не работает
Hovhannes
На 9-м Settext не работает
всм? краш? ты ж говорил все ок на 9, не?
Sergey
isEnabled доступно
Sergey
IsEnabled работает, setText Краш
Aleksandr
разве сложно вынести работу с UI из потока?
Hovhannes
да подожди. тут чет мутное
Aleksandr
IsEnabled работает, setText Краш
краш должен быть
Sergey
А его нет :)
Mike
разве сложно вынести работу с UI из потока?
это в продолжение обсуждения, что в новых андроидах можно и из бэкграунда работать
Hovhannes
краш должен быть
глянь мой код и лог и какие эмуляторы
Mike
начиная с 10?
блин, я думал, ты знаешь)
Hovhannes
блин, я думал, ты знаешь)
я вижу только то, что вижу)) факт - эмуль на 10 красавчик
Sergey
У меня 9-ка на яндексфоне, в железе
Sergey
Не эмулятор
Mike
я вижу только то, что вижу)) факт - эмуль на 10 красавчик
Интересно. Не смотрел исходники? Хочется понять, как такую комплексную проблему — фигак — и решили.
Hovhannes
или это прост баг
Сергей
android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
Че то я видел эту ошибку у себя не раз. На 19-25. Лечилось без проблем передачей вызывающего вью/активности в другой поток и дерганием там сеттера
Hovhannes
мы обсуждаем вчерашний вопрос
Сергей
Нету и слава богу же, нет?
Александр
Нету и слава богу же, нет?
Вот нет, лучше бы оно упало.
Mike
Нету и слава богу же, нет?
Нет, потому что неправильное поведение хуже, чем падение.
Сергей
Оно и упадет при тестировании на остальных апи - и прогер это починит для всех
Mike
Оно и упадет при тестировании на остальных апи - и прогер это починит для всех
Вопрос в том, что именно изменили в новых версиях, что это перестало быть ошибкой.
Mike
Sergey
Минуточку, а может это ВБРОС? 🧐
Кроме вчерашнего шедевра, ВБРОСОВ не было :)
Александр
Настя, ну не начинай(
Рубрика ЭЭЭЭКСПЕРИМЕНТЫ
Сергей
Ну код где эта проверка - откуда мы лезем менять вью, я видел. В принципе это было логично - если у вью размеры скажем и текст менять из разных потоков - бардак же будет. Невозможный к отладке
Сергей
Если не добавлять кучу синхронизаций и провверок. Видать добавили
Sergey
Оно и упадет при тестировании на остальных апи - и прогер это починит для всех
С одной стороны да, но вот я попался, допиливал приложение , быстренько на 9-ке протестировал на известные баги, а потом уже краши пошли по багрепорт на 5,6 андройды . Каждый раз тестировать на всех платформах не комильфо, поэтому и напрягся.
Александр
Оно реально не падает))0
Сергей
Думаю одной 9ки мало. Надо еще и минАпи тестить обязательно раз мы обещаем что на нем работать будет. Под промежуточные вероятно только у мегаприложений для миллионов
Александр
Александр
Ну шо, время проваливаться во ViewRootImpl))0
Сергей
Оно реально не падает))0
Думаю там легко код найти. Смотрим точку вылета на <28 и видим проверку, которую явно убрали заменив чем то
Turalllb
<style name="TvAppTheme" parent="Theme.Leanback"> <item name="browseTitleViewLayout">@layout/view_title</item> <item name="alertDialogTheme">@style/Theme.AppCompat.Dialog.Alert</item> <item name="android:alertDialogStyle">@style/Theme.AppCompat.Dialog.Alert</item> </style>. вот нижние два айтема добавил пытаясь побороть краш который выпадает при вызове АЛЕРт диалога , краш такой android.content.res.Resources$NotFoundException: Resource ID #0x0 Знает кто нибудь про этот краш,
Ilya
Привет всем) о чем молва😁 зачем в другом потоке делаете settext
Hovhannes
Привет всем) о чем молва😁 зачем в другом потоке делаете settext
исследуем мистические обстоятельства, когда на старших дроидах не крашится
Александр
исследуем мистические обстоятельства, когда на старших дроидах не крашится
Я до того дошёл, что у меня и на 6 - ом перестало крашиться))0
Александр
Александр
эмулятор?
Херли я не падаю(
Hovhannes
Херли я не падаю(
К котлин))) шутка за 200
Hovhannes
в какой т момент времени кто т начнет гуглить это дерьмо и вопрос закроется))
Александр
К котлин))) шутка за 200
Ок, херли я не падаю(1)
Hovhannes
так это была шутка. без разницы, джава или котел
Hovhannes
ща погуглю может кто уже ахреневал до нас
Александр
А я чёт на серьёзных щах