Ruslan
прилетает вообще суть этой базы - такой глобальный кэш. на случай, если у пользователя отвалится инет, но ему надо будет посмотреть данные по событиям. они обновляются, но не часто и не глобально. основная инфа не меняется
Ihor
Ihor
Всем привет, есть небольшой вопрос по поводу ошибки: set_timerslack_ns write failed: Operation not permitted Прирашиваю к карте через FragmentTransaction диалог в нем есть выбор картинки , там после клика по imageView должна изменится его uri , вместо этого ловлю ошибку как исправить ?
Ihor
Michael
Если данные уже есть, то почему бы сразу их и не отобразить? Если они не успеют закешироваться, то придётся сходить в сеть ещё раз, зато UI будет более отзывчивым. Ну это имхо.
Vitaly
Где лучше создавать каналы для уведомлений и где получать для ID от них? Есть предположение создавать в onCreate() класса, который расширяет Application и оттуда же брать ID, есть ли более чистые способы (или общепринятые)?
Vitaly
обычно там и создают
Никаких проверок на то создан ли канал или нет делать не надо?
Ferrero
нет, просто каждый запуск создавать
Ferrero
если создан - не создастся
Vitaly
Спасибо)
Sergey
Я даже не знаю что это)
О'кей Гугл, GitHub
Sergey
Так смысел весь заключается в том что бы затестить среду на своем компе правильно и коректно всё ли работает
Что ты там тестить собрался, если ты её впервые увидел? Создай в студии приложение шаблонное и успокойся.
Vitaly
обычно там и создают
Вот здесь для этого создают отдельный класс https://code.tutsplus.com/tutorials/android-o-how-to-use-notification-channels--cms-28616
Vitaly
И по итогу создают канал только при необходимости
Ferrero
это на то и пример, чтобы показывать
Ferrero
главное, чтобы не в активити
Vitaly
Это понятно, но само создание происходит только в Activity Просто в документации написано создавать каналы как можно раньше, но вот сейчас нашёл гугловские примеры, они тоже создают при создании Activity
Vitaly
Хотяяя... Да, так даже правильнее
Ferrero
ну для новичков и сетевые запросы из активити нормально
Ferrero
но просто потом, когда, если придется, разгружать активити, нотификации скорее всего переедут в наследника Application
Vitaly
Мне очень понравился этот пример: https://github.com/googlesamples/android-NotificationChannels/tree/master/kotlinApp/Application/src/main/java/com/example/android/notificationchannels Зачем здесь что-то выносить в Application? Единственное что меня волнует это id уведомлений, потому что могут понадобиться не только с того места где вызывается уведомление, я бы эти id тоже убрал в NotificationHelper) С другой стороны в этом может быть глубокая философская мысль
Ferrero
id канала можно задать глобальной константой
Ferrero
ну там почти так и сделано
Anna
привет! как по-нормальному сделать ресайклер с раскрывашкой с вложенным списком (список грузится по открытию). получается что нужно во вью холдер передавать контекст и вызывать в нём запрос... :( как-то совсем некрасиво
Anna
Anna
в смысле фрагмент. т.к. по нажатию на айтемы последней вложенности открывается активити или фрагмент.... что-то не пойму как это всё нормально сделать.
Ivansuper
в смысле фрагмент. т.к. по нажатию на айтемы последней вложенности открывается активити или фрагмент.... что-то не пойму как это всё нормально сделать.
В очередной раз вас терзают сомнения о передаче подозрительных объектов в подозрительные места для выполнения различного рода действий? Не беда! Интерфейс — это то, что вам нужно! Звоните прямо сейчас и получите две реализации в подарок! Интерфейс — свяжи свою жизнь правильно!
Ruslan
в смысле фрагмент. т.к. по нажатию на айтемы последней вложенности открывается активити или фрагмент.... что-то не пойму как это всё нормально сделать.
во фрагменте создать слушателя, который принимает объект, который передаешь презентеру и стартуешь новую активити. Передаешь этого слушателя адаптеру val listener = (Item)-> Unit = { presenter.startNewActivity(it) } adapter.itemListener = listener во вьюхолдере сетишь этого слушателя на нажатие viewHolder.setOnClickListener { itemListener(item) } если я правильно понял
Anna
да
Anna
всем спасибо 🌻🌻🌻
Ivan
тут можноо ссылочку кинуть на группу, кому интересна разработка на LibGDX?
Алексей
Тут?
Алексей
Лучше в джава чатике это сделать
Ruslan
а листенер можно инжектить?
Vitaly
а листенер можно инжектить?
Я думаю, что нет, ибо DI немножко о другом
Ruslan
Теперь понял, спасибо
Anna
если я правильно понимаю, такой роутер есть. проблема была в том, чо я не могла понять как перекинуть логику в презентер фрагмента
Anna
странный баг телеграмма в браузере...
Anna
Konstantin
https://www.reddit.com/r/firefox/comments/bkcjoa/all_of_my_addons_got_disabled_and_they_are_all/emggvbx/?utm_source=share&utm_medium=web2x&depth=1
Mike
аккуратнее, дама в чате
Mike
поэтому сжигать тебя никто не будет, всего лишь вежливо попросят не матюгаться)
Anna
приятно общаться без мата...
Anna
я не разделяю живое общение и в чате в этом смысле. задача да. спасибо
Doston
Надо использовать Toothpick, и не будет проблем 😉
Igor
Всем привет. Подскажите пожалуйста по jav'e. Допустим, у меня есть синглтон класс, в нём есть лист с данными. Если я передаю в адаптер этот лист к примеру так: adapter.setNewData(DataHolderApp.getInstance().getMessageList()); и потом в адаптере допустим что-то добавлю в этот лист, к примеру: public void setNewData(List<ChatUiModel> data) { data.add(что-то добавляю) this.mData = data; } То в листе синглтона новый объект тоже добавится? Я так понимаю да, но не понимаю почему. Якобы мы в метод адаптера кидаем ссылку на объект в памяти и если он меняется, то он меняется тоже? Или как?
Igor
Да, из разных мест видишь один и тот же объект
Окей, спасибо. Примерно почему так происходит я правильно описал?)
Ivansuper
»но не понимаю почему Передача по ссылке. В Джаве передачи по значению нет (за исключением примитивов), но можно сделать new ArrayList(oldList) и ты отвяжешься
Igor
»но не понимаю почему Передача по ссылке. В Джаве передачи по значению нет (за исключением примитивов), но можно сделать new ArrayList(oldList) и ты отвяжешься
Да, уже так и сделал, ибо не понимал почему у меня данные меняются везде, почему не сразу до этого додумался)
Igor
Спасибо
Ivansuper
Просто плохое знание основ языка
Ivansuper
Подкрепи и будешь увереннее
Igor
Да, очень сильно плаваю в теории
Turalllb
Подскажите с таким вопросом, (библиотеки не хочу использовать, хочу сам) имеется изображение, по клику хочу Его же растянуть на весь экран. Для этого я должен иметь полноэкраный ImageView, который был invisible в макете, чтобы показать его? Но я буду тратить ресурсы на подгрузку этой invisible ImageView даже когда она может и не нужна. Как правильно поступить, учитывая что полноэкранное изображение это просто растянутая миниатюра, а не другое изображение с высоким разрешением. Мне в голову приходит такой вариант: по клику на миниатюру, в доп. потоке устанавливать ресурс к полноэкранной ImageView с android:scaleType="fitXY" и показывать её
Igor
Подкрепи и будешь увереннее
Не подскажешь хороший цикл статей или книгу по Jav'e чтобы освежить и подкрепить знания
Igor
javarush
Ну это уж прям совсем для начинающих, не?
Igor
А чем плохо?)
Ну я не осуждаю, просто когда там начинал, было слишком просто, а уровень набивать - долго, не хочу время терять. https://metanit.com/java/tutorial/ Что-то в таком духе бы
Ferrero
ну это сложно назвать ресурсами
Turalllb
или я что то не понял ? может invisible просто место занимает, а ресурсы не хавает ?
Ferrero
что значит ресурсы
Ferrero
если картинка уже в памяти но установлена в миниатюре, то наличие ее в инвизибле помимо миниатюры ничего не тратит
Igor
А ты какую прочел ?
Так вышло, что когда пришёл в андройд, меня сразу кинули в котёл с котлином, поэтому, моя библия - Kotlin in Action бегло прочитанный. По джаве очень мало читал и начинаю плыть на простых вещах, особенно когда просят что-то сделать на джаве, без котлина)
Ivansuper
Invisible будет на себя брать часть onMeasure/onLayout как минимум
Ivansuper
Все остальное зависит от конкретного вью
Turalllb
Invisible будет на себя брать часть onMeasure/onLayout как минимум
Да, верно. я на форуме прочел ответ что невидимый тоже нарисован, но не отображен, но в комментариях человека поправили и сказали что изображение измеряется, но не рисуется.
Ferrero
какой же ведроид все-таки костыльный