Сергій
Anonymous
Как определить версию андроида, если кратко.
Сергій
Сергій
https://stackoverflow.com/a/3940823
Anonymous
эээ, это не те шорткаты что я спрашевал выше )
А я так понял, что нужно использовать те шорткаты, которые вы подсказали, когда версия андроид выше 7.1. Я прав? Или есть какой то способ заставить работать мой код на всех версиях от 4.4?
Сергій
Сергій
он должен работать везде
Anonymous
он должен работать везде
Но почему-то при использовании эмулятора с 8.0 и выше, он даже не появляется. И ошибок никаких нет.
Сергій
🤷🏿♂️
Yehor
Хочу разрабатывать приложения. Какой телефон купить для этого? Чисто как тестовая станция.
Yehor
Так, мнения разошлись
Сергій
народный
Yehor
Мне тут подсказали лучше брать где голый android, без оболочек
Nick
Anonymous
Nikita
всем добрый вечер, у меня есть вопрос насчет diffUtil. Есть список в recyclerView из карточек (1 ячейка), плашки загрузки и плашки ошибки (по 3 ячейки), gridLayoutManager (3 ячейки). В списке пусть 40 карточек и в конце плашка ошибки, там есть кнопка Try again, при клике на нее в адаптер сетится список из тех же 40 карточек и плашки загрузки, запускается корутина, которая считает diffUtilCallback и применяет его к адаптеру. Проблема заключается в том, что когда пользователь находится в конце списка и нажимает кнопку на плашке ошибки, последние 1, 4 или 7 карточек исчезают, список поднимается, а потом они рисуются снова, и собственно в конце плашка загрузки. Если использовать notifyDataSetChanged, список не сдвигается вверх, как и надо. Почитал статьи про diffUtil, вроде правильно реализовал callback, в отладчике полчаса смотрел как что работает. Подскажите где может быть лажа, я посмотрю, спасибо тем кто дочитал и помог)
Yehor
Всем спасибо за ответы)
Yakov
всем добрый вечер, у меня есть вопрос насчет diffUtil. Есть список в recyclerView из карточек (1 ячейка), плашки загрузки и плашки ошибки (по 3 ячейки), gridLayoutManager (3 ячейки). В списке пусть 40 карточек и в конце плашка ошибки, там есть кнопка Try again, при клике на нее в адаптер сетится список из тех же 40 карточек и плашки загрузки, запускается корутина, которая считает diffUtilCallback и применяет его к адаптеру. Проблема заключается в том, что когда пользователь находится в конце списка и нажимает кнопку на плашке ошибки, последние 1, 4 или 7 карточек исчезают, список поднимается, а потом они рисуются снова, и собственно в конце плашка загрузки. Если использовать notifyDataSetChanged, список не сдвигается вверх, как и надо. Почитал статьи про diffUtil, вроде правильно реализовал callback, в отладчике полчаса смотрел как что работает. Подскажите где может быть лажа, я посмотрю, спасибо тем кто дочитал и помог)
Equels и hashcode правильно переопределены?
Yakov
всем добрый вечер, у меня есть вопрос насчет diffUtil. Есть список в recyclerView из карточек (1 ячейка), плашки загрузки и плашки ошибки (по 3 ячейки), gridLayoutManager (3 ячейки). В списке пусть 40 карточек и в конце плашка ошибки, там есть кнопка Try again, при клике на нее в адаптер сетится список из тех же 40 карточек и плашки загрузки, запускается корутина, которая считает diffUtilCallback и применяет его к адаптеру. Проблема заключается в том, что когда пользователь находится в конце списка и нажимает кнопку на плашке ошибки, последние 1, 4 или 7 карточек исчезают, список поднимается, а потом они рисуются снова, и собственно в конце плашка загрузки. Если использовать notifyDataSetChanged, список не сдвигается вверх, как и надо. Почитал статьи про diffUtil, вроде правильно реализовал callback, в отладчике полчаса смотрел как что работает. Подскажите где может быть лажа, я посмотрю, спасибо тем кто дочитал и помог)
Я про дата класс который ты сравниваешь в дифе
Nikita
карточки представлены data class, а плашки ошибки и загрузки class ErrorItem : ListItem и class LoadingItem : ListItem
Nikita
Nikita
А что сравниваешь в дифе? По каким параметрам?
areItemsTheSame сравнивает классы, если одинаковые идет проверка на плашку загрузки и ошибки, если это они вернет true, если карточка, сравнивает по id, AreContentsTheSame : если это не карточка, сравнивает классы и если они одинаковые вернет true, если карточка вернет oldItem == newItem
Nikita
могу в личку код скинуть если так плохо звучит
Nikita
Yakov
через гит?
Gist позволяет шарить код, можно и из студии, кидай сюда думаю может ещё кто поможет, классы модели не забудь
Anonymous
🤷🏿♂️
И всё таки, так и не могу понять почему не появляется. На другом эмуляторе тоже не работает. Также не работает на сторонних лаунчерах. В логах тоже ничего
Nikita
https://gist.github.com/RyzhkovNikita/b71ce168ea28c0f0f69ecbd56d960112
влад
гайс, после обновления студии на 3.5 постоянно начала вылазить ошибка сборки build\intermediates\cmake\debug\obj\arm64-v8a\libc++_shared.so (Запрошенную операцию нельзя выполнить для файла с открытой пользователем сопоставленной секцией)
шо делоть? добавлять исключения для виндовс дефендер?
помогает шифтделетить папку build вручную, просто делет говорит, что файл занят другим процессом
Yakov
if (oldList[oldItemPosition] !is CharToShowItem)
return oldList[oldItemPosition]::class == newList[newItemPosition]::class
Вячеслав
Добрый вечер, в этом чате можно спрашивать про котлин нэтив?)
Yakov
попробуй убрать это, вроде как у тебя areItemsTheSame вернется true тут ты уже сравниваешь дата класс
Yakov
ErrorItem и LoadingItem сравнивать то нечего
Nikita
Nikita
упало
Nikita
не конааает, спасибо большое, если что, сеттинг листа выглядит так
Arsen
а что не пошло? данные хоть иммутабельные?
Impossible
Impossible
Impossible
Impossible
Impossible
Именно в этой последовательности
влад
собсно он на клине и зафейлится :)
Кирилл
влад
Impossible
Impossible
При билде я еще поверил бы
Starikov
подскажите. как правильно сделать анимацию, чтобы картинка вышла из одного края экрана и ушла за другой?
Impossible
Łeő
Ищу разработчика, который знает как сделать, чтобы со звонящего аппарата стримело вызов и передавало управление трубкой на удаленное устройство. Voice стриминг+dialer?
(тел+сим+инет-приложение => тел-без сим+приложение принимающее,с dialer)
У кого есть опыт с voice?
Сколько примерно такое стоить будет?
Impossible
А чё то туплю уже
Самая простая анимация, загугли уроки Александра Климова
Fagor
Fagor
при таком макс сроки бэкенда спрашивать, и вообще есть ли кто возьмется и есть ли опыт такой реализации, для остального недостаточно вводных
Fagor
Есть вариант при опыте, спросить архитектора-аналитика - почем возьмутся написать ТЗ с архитектурой
Lefmy
Hello ! I would like a code on android studio to list files with extension .kml , then click file, open
Alexander
всем привет. Возникла необходимость интегрировать камеру в андроид получение. Кейс довольно простой, фото+вспышка + фронталка+автофокус. Фотографий надо будет делать много, вызывать камеру от вендора слишком долго. Решено написать свое решение. Я когда-то делал камеру на основе примеров от гугла, и схватил кучу проблем на девайсах самсунга и хуавеях. Сейчас решил поискать что-то - где все костыли уже внедрены. Может кто-то посоветовать удачные опенсорс решения которые можно взять за основу?
Dmitry
Opencamera
Александр
Кто - нибудь сталкивался с интересным поведением AS 3.5, что автоформатирование кода в xml файлах меняет элементы местами?
После alt + ctrl + l у меня <include> блок переставляется вниз вёрстки. Что за прикол такой?
Maxim
Kozimjon
Народ, вопрос от человека, который только изучает mvp. Необходимо работать с sharedpreferences в нескольких методах в активити Как правильно: передать sharedpreferences в презентер и там с ним оперировать или же в презентере вызывать методы в активити (методы интерфейса конечно), которые будут работать с shared? Заранее спасибо
Maxim
Скорее первый вариант. Активити не должна трогать бизнес-логику
Kozimjon
Александр
Kozimjon
Maxim
Контекст передается в презентер в каждом методе, где он нужен, если нет какого-нибудь DI-фреймворка
Schnaps
разве презентер не должен трогать контекст?
Александр
Maxim
Презентер не должен хранить ссылку на контекст, который был передан из активити (имеется ввиду не аппликейшн контекст, а другие). Поправьте меня, если ошибаюсь
Schnaps
тогда зачем вообще MVP? если беготни много? сделай все в одной активити
Schnaps
и логику и дату и вью