Arsen
Пробовал, тоже самое) в onAttach тоже активити не находит
аттач может быть к фрагменту, а не активити, смотря кто хост. Скорее всего тебе нужен onActivityCreated
Данил
А что за viewModelScope? у меня не импортится
попробуй implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.0"
Mike
Что сначала учить жабу или Котлин?
Этот вопрос поднимался в чате не раз. Предупреждение тебе.
Anonymous
как пользоваться статьей? - прочитать)
нет, ты что, там сперва ссылка надо сначала на нее кликнуть
Arsen
👍
если кратко, то там парент может украсть тач у чилда, а как это сделать - читай статью
Arsen
+ просто украсть недостаточно, нужно оставить работоспособным все остальное
Dzmitry
попробуй implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.0"
А норм юзать это если мне нужны только корутины?
Данил
А норм юзать это если мне нужны только корутины?
используй тогда GlobalScope, если доступен во ViewModel
Николай
если кратко, то там парент может украсть тач у чилда, а как это сделать - читай статью
Да это я понял. Но тут задача, что бы не клик красть, а свайп. На сколько я понял. Я должен оверрайдить onInterceptTouchEvent. В нём определять, что произошло (свайп или просто касание) Обработать это во viewGroup и вернуть false, что бы child view смогли тоже его обработать. но не уверен, что это правильный выход
Николай
Ну или красть только свайп, а остальное пропускать мимо
Arsen
java.io
ограничения могут быть у платформы(ОС), сама джава вряд ли лимиты ставит, в любом случае тебе придется прогнуться и делать короче)
Николай
а что за кейс? зачем такие костыли
Ну у меня viewGruop своя. Она имеет красивое поведение (анимации) при свайпе. Всё работает гуд. Но вот только когда во ViewGroup ложу recyclerView и подобное то свайп перестаёт работать
Nikita
А норм юзать это если мне нужны только корутины?
Так viewModelScope это как раз который лежит в этой библиотеке
Dzmitry
Так viewModelScope это как раз который лежит в этой библиотеке
Я понял, но viewmodel это Android architecture component которые я не юзаю и мне просто корутину запустить надо
Николай
как выглядит анимация?
https://github.com/Bykhkalo/Custom-Navigation-Drawer
Николай
как выглядит анимация?
там в ReadMe гифка вверху
Arsen
там в ReadMe гифка вверху
в каких кейсах ресайклер не должен получать жест? когда горизонтально свайпаешь?
Dzmitry
Ну ты всегда можешь ручками создать скоуп
Как? Через globalscope? Я пытаюсь свою первую корутину написать
Arsen
да
в статье есть про это. Еще можешь глянуть androidx.drawerlayout.widget.DrawerLayout#onInterceptTouchEvent
Nikita
Как? Через globalscope? Я пытаюсь свою первую корутину написать
Создать Job родителя, все корутины которые будут запускаться в скоупе будут его детьми и потом просто CoroutineScope(parentJob + опционально стандартный диспетчер для корутин, например Dispatchers.IO)
Nikita
не очень получается
Ну а что тут не получается? Ты из метода по контракту должен вернуть битмап, а ты в нем запускаешь корутину через launch, а это по умолчанию fire and forget
Anonymous
и что я должен был увидеть в стэктрэйсе?
Dzmitry
Ну а что тут не получается? Ты из метода по контракту должен вернуть битмап, а ты в нем запускаешь корутину через launch, а это по умолчанию fire and forget
Ну я в лаунч вернул ответ, теперь я там понимаю за пределами лаунча должен достать боди из ответа и засунуть его в BitmapFactory
Nikita
Ну я в лаунч вернул ответ, теперь я там понимаю за пределами лаунча должен достать боди из ответа и засунуть его в BitmapFactory
Ну из лаунча ничего нельзя вернуть если я правильно помню. Вам надо сам метод getPicture делать suspend и вызывать его извне. По хорошему я бы сделал свой скоуп где-нибудь в слое презентации (презентер/вьюмодель/чтоугодно) и оттуда запускал одну корутину, которая внутри себя просто переключает диспетчеры если надо
Artem
и что я должен был увидеть в стэктрэйсе?
ну стектрейс не весь… нужно смотреть выше
Nikita
А можешь пример какой нибудь скинуть или статью?
https://youtu.be/3iwDgpU7DB8 Вот вроде бы норм, но по ним в принципе куча докладов, нетрудно разобраться
Anonymous
просто вообще без идей
Artem
ну контекста проблемы не знаю… но возможно проблема вот в этом куске:
Nikita
Как то так? А как теперь вызывать getPicture если она suspend и может быть вызвана только из другой корутины. Если сделать через globalscope.launch то я снова не смогу вернуть bitmap
Примерно так, только не надо переводить на дефолтный диспатчер. Правильно, теперь функцию можно вызывать только из другой саспенд функции, для этого тебе нужно где-то определить-таки скоуп корутины и там просто сделать лаунч или что там надо
Nikita
Т.е. в том месте где мне нужен битмап сделать GlobalScope.launch{ ImageView.setImageBitmap(PicturesAPI.getPicture(url)) }
Ну очень грубо, да. Только лучше сначала получить битмап в отдельную переменную, а потом перевести корутину на Мейн поток и засеттить её в imageView. Но опять же тут много проблем и global scope лучше вообще не использовать с корутинами
Nikita
ALLeGeT
может кто знает как можно сделать чтобы перенос был после U/U а не после / ?
А -
Можешь размер шрифта уменьшить или /n)
ALLeGeT
это на маленьком экране а на больших не нужен перенос. Это в сеттингах будет не комельфо
ALLeGeT
Да вместе
Миша
Всем привет! Как java кодом поменять иконку приложения?
Данил
Всем привет! Как java кодом поменять иконку приложения?
в чем проблема заменить иконку? И при чем тут вообще код?
Данил
надо то заменить Ic_launcher
Anonymous
@Luckyakalucka ты лимон?
Миша
в чем проблема заменить иконку? И при чем тут вообще код?
Ну например при включении dark mode у меня поменяется иконка приложения на темную (иконки будут хранится в проекте)
Artem
Всем привет! Как java кодом поменять иконку приложения?
Гугл говорит так: https://blog.jakelee.co.uk/programmatically-changing-app-icon/
Andrey
так нельзя вроде
А как тогда всякие календари меняют иконку? Или часы?
Данил
Гугл говорит так: https://blog.jakelee.co.uk/programmatically-changing-app-icon/
Спасибо за статью, думал что так нельзя
Artem
О, спасибо!)
кстати для dark mode иконка думаю прописывается в теме
Anonymous
@Luckyakalucka ты лимон?
Anonymous
Доброго времени суток. Не могу понять, как правильно сделать запрос данных с базы данных c помощью корутин. Нужно ли использовать await или нет? В примерах от гугла, await не используют, но и для получения данных там везде LiveData.
Nikita
Доброго времени суток. Не могу понять, как правильно сделать запрос данных с базы данных c помощью корутин. Нужно ли использовать await или нет? В примерах от гугла, await не используют, но и для получения данных там везде LiveData.
в данном случае async/await не нужен потому что у вас все равно последовательные запросы и достаточно просто их вызвать. Да и в принципе не нужно создаваьть скоуп, а вот поменять диспатчер на IO стоило бы
Alex
При изменении высоты BottomSheet, высота уменьшается снизу, тем самым образуя отступ он нижней границы экрана на доли секунды. Кто сталкивался с таким?
Anonymous
в данном случае async/await не нужен потому что у вас все равно последовательные запросы и достаточно просто их вызвать. Да и в принципе не нужно создаваьть скоуп, а вот поменять диспатчер на IO стоило бы
Спасибо. А если после того как тяну с базы данных у меня обработка с нагрузкой на ЦП, нужно ли использовать await для получения результата?
Anonymous
Как сменить страну в play market? Без банковской карты
Anonymous
suspend fun getListing(id: Long): ShoppingListEditVersion { return withContext(Dispatchers.IO) { db.shoppingListDao() .getListById(id) .toShopingListEditVersion() } } По идее этого должно быть достаточно.
У меня так и сделано, все отлично работает )) Но после просмотра докладов от Осипова и Christina Lee по корутинам стала сомневаться в правильности. Еще раз спасибо.
Nikita
Спасибо. А если после того как тяну с базы данных у меня обработка с нагрузкой на ЦП, нужно ли использовать await для получения результата?
Нет, это регулируется диспатчерами. Дефолтный используется для ЦПУ задач, IO для задач ввода-чтения. В целом async/await надо когда вы хотите делать что-то параллельно, например 2 независимых запроса в бд, тогда имеет смысл запустить сначала два асинка, а потом 2 await
Aleksandr
всем привет, никто не сталкивался, что при запросе apkanalyzer manifest version-name возрващается знак вопроса вместо versionName?
Aleksandr
причем если запросить version code то все нормально
Aleksandr
manifest print тоже показывает полную инфу