Anton
Было бы решение поэлегантнее, addOnGlobalLayoutListener не висел бы как топ-ответ на всяких SO
Anton
У нас шо то типо такого вешается на хост активити Работает, и лучше не трогать https://pastecode.xyz/view/4c4af50b
Student
Добрый день, есть ли какая-то аннотация, которой нужно помечать опциональные поля в response модели при хождении в сеть, используя retrofit?
Student
@GET , @POST
это о чем?
Student
))
Student
data class Spectacle( val id: Long, @SerializedName("updated_at") val updateDT: String, val name: String, val lead: String....
Student
вот мне поле lead не всегда будет прилетать
Student
оо. спасибо
Юрий
видать ты любитель таких делов
Юрий
я модели не дочитал, увидел аннотации ретрофита
Юрий
по секрету, мне есть чем на работе заниматся)
Юрий
атстань😂
Юрий
Сделай просто nullable
если есть поля которые пакавать не нужно в json используй это @Expose(deserialize = false, serialize = false)
Юрий
не тому написал, но я думаю кому надо себе запишет)))
Student
чё то не так я делаю
Student
data class Spectacle( val id: Long, @SerializedName("updated_at") val updateDT: String, val name: String, @Nullable val lead: String,
Mike
Добрый день, есть ли какая-то аннотация, которой нужно помечать опциональные поля в response модели при хождении в сеть, используя retrofit?
Ретрофит вообще ничего не знает про структуру «моделей», он делегирует эту работу конвертерам.
Mike
data class Spectacle( val id: Long, @SerializedName("updated_at") val updateDT: String, val name: String, @Nullable val lead: String,
в котлине для нуллабельности используются далеко не аннотации
Mike
этож котлин. Делай String?
всю интригу сломал
Student
))
Student
спасибо
Student
да, котлин
Mike
import com.google.gson.annotations.Expose; import com.google.gson.annotations.SerializedName;
ты отвечаешь либо не то, либюо не туда, либо и то, и другое сразу)
Юрий
ты отвечаешь либо не то, либюо не туда, либо и то, и другое сразу)
я про то что эти аннотации принадлежат gson для построении модели
Evgeny.kt 􀇻
Андроидобоги, чтобы вы сделали в таком кейсе: Есть imageView1, у которой src может становиться полупрозрачным. Под ней imageView2. И нужна какая-то подложечка под imageView1, чтобы за полупрозрачным src был цвет бг, а не imageView2. Если ставить у imageView1 отдельно бэкграунд и изменять лишь видимость src, то это применяется во всех местах проекта, где юзается этот drawable. И я вот думаю, стоит ли создавать новый drawable каждый раз, для того чтобы управлять его видимость или сделать еще одну вьюшку и юзать ее как бэкграунд для imageView1. Что луше по памяти и производительности?
Ivansuper
Ты можешь mutate drawable чтобы не шарился стейт. Или используй параметр альфа у вью
LiveData is so fucking sexy. У меня все, переходите на AndroidX
Evgeny.kt 􀇻
Ты можешь mutate drawable чтобы не шарился стейт. Или используй параметр альфа у вью
Альфа у imageView не подходит, так как становится видно вьюшку под ней
Mike
LiveData is so fucking sexy. У меня все, переходите на AndroidX
Дали людям придумку десятилетней давности, они и рады.
Akim
Ребят, подскажите, не могу воспроизвести в эмулях и на железе следующий кейс: Есть RecyclerView с адаптером, который отображает фотки. Если не выбраны - кидаем тоаст. На вьюшке каждого айтема есть чекбокс. Стейт чекбоксов хранится в SparseBooleanArray. Каждый клик по листенеру шлёт изменения во фрагмент с ссылкой на картинку, которая во фрагменте кладётся в список. Если что-то пошло не так и список фрагмента пуст - вытаскиваем стейт адаптера и строим по нему список выбранных фоток. У клиента на мобилке при видимых выбранных чекбоксах прилетает тоаст с отсутствием выбранны. Что может пойти не так? Уже целый день голову ломаю.
Дали людям придумку десятилетней давности, они и рады.
ну так, стандартов то не было таких. Говорили пишите SQL вручную, дергайте каждый раз id из лэйаута.
Evgeny.kt 􀇻
А как ты меняешь видимость src?
Через ObjectAnimator, изменяя alpha у drawable
Mike
ну так, стандартов то не было таких. Говорили пишите SQL вручную, дергайте каждый раз id из лэйаута.
Кто говорил? Стандартов и сейчас нет. И не будет, каждый пишет по-своему, потому что объективно хорошего ничего нет.
Ivansuper
А что за mutate drawable?
По умолчанию у дравабл одно ядро для разных инстансов одной картинки. Поэтому изменения над одним объектом проявят себя в других. Когда ты делаешь mutate, ты явно реквестируешь новую копию ядра которое не пересекается с остальными дравабл
Mike
Через ObjectAnimator, изменяя alpha у drawable
Ну тогда действительно drawable.mutate() — и делай что хочешь.
Evgeny.kt 􀇻
Ну тогда действительно drawable.mutate() — и делай что хочешь.
А по памяти и производительности это будет лучше, чем создание вьюшки-подложки и изменение видимости у верхней вьюшки?
Evgeny.kt 􀇻
А есть проблемы? Альфа — это в любом случае довольно затратная штука.
Вроде проблем нет. Хочу лишь сделать как можно лучше
Ivansuper
При мутировании битмап вроде все равно шарится и не множится
Ivansuper
Только если явно скопировать битмап и отдать в конструктор BitmapDrawable
Ivansuper
Так что ты не должен споткнуться о засирание RAM
Evgeny.kt 􀇻
Окей, спасибо
Andrew
Подскажите, как мне работать с AccountManager'ом вне контекста активности? Например, как мне доставать токен авторизации из AccountManager'а в OkHttp интерцепоторе для подстановки заголовка Authorization: токен ?
Alexander
Здравствуйте! Есть проблема при работе с webview - Cookie сохраняются только через 1 минуту запущенного приложения. Если приложение запустить на 5-10 секунд, то ничего не сохраняется. Может кто знает в чем проблема? UPD: В смысле при запуске приложения сразу подгружается сайт. И вот для этого сайта не сохраняются куки сразу. Только через 1 минуту.
Alexander
Я на сервере смотрю все куки, которые прилетают от webview - в первом запросе вообще никаких кук нет. А если приложение перезапустить через минуту, то куки с первым запросом приходят
Alexander
Такое ощущение, что куки просто очень долго записываются в память ...
Alexander
Никаких дополнительных запросов к серверу нет. Куки устанавливаются сервером именно при обычной загрузки страницы (не ajax) по https протоколу
RASHIT
всем доброго дня, кто работает с адмоб? есть вопрос у меня по поводу рекламы с вознагрождением.
Vladislav
как можно повесить слушатель на кол. элементов в списке? хочу ослеживать, если в списке 0, выводить сообщение
Vladislav
mutable ?
Mike
например?)
Можно обернуть неизменяемый список в лайвдату. А можно обернуть ArrayList в свою реализацию MutableList и на каждое изменение уведомлять кого-нибудь.
Nikita
Пытаюсь прикрутить SonarQube к проекту, при запуске graldew sonarqube выдает много ошибок Unable to create symbol table for : MyClass.java java.lang.IndexOutOfBoundsException: index (1) must be less than size (1) Может кто-нибудь сталкивался с подобной проблемой ? Поиск в гугле выдает похожую ошибку с NPE, но это не то
Vadim
Использую moxy, не вызываются методы viewState. В сгенерированном viewState коллекция views почему-то пустая, изза чего происходит возврат из метода, и программа до выполнения строчки моей вьюхи не доходит. Аннотации @InjectViewState и @InjectPresenter проставил. Как решить эту проблему?
Kozimjon
а самый обычный спиннер можно очистить от выбранного пункта? то есть тупо оставить hint - а то заливаю массив в него и он по умолчанию выбирает первое - и гугл как то молчит
Kozimjon
хелп? просто гугл только clear подсказывает
Kozimjon
не молчит, на SO есть ответ, как сделать хинт
нашел готовый способ)) только чуток подделать придется оказывается
Юрий
Стало интересно различие между Moxy и Dagger, кто ответи на этот вопрос?
Dug
На такой вопрос ответит гугл
Dug
И ридми в гитхабе
Андрей
Стало интересно различие между Moxy и Dagger, кто ответи на этот вопрос?
различие такое же как между микроволновкой и холодильником - и то и другое для еды, но первое ее готовит, а второе организует хранение
Nikita
Стало интересно различие между Moxy и Dagger, кто ответи на этот вопрос?
стало интересно различие между дорогой и автомобилем
Юрий
мда, гугол не ответил на этот вопрос, что тот использует иньекцию зависимостей что тот
Юрий
иди уже покури, явно тебя это заботит сильно)
Юрий
я так понял что просто никто не знает вчем различие) ибо ответ между дорогой и автомобилем сильный ответ))))
Андрей
мда, гугол не ответил на этот вопрос, что тот использует иньекцию зависимостей что тот
мокси использует инъекцию через кодогенерацию, но только для презентеров, а даггер - для всего. При этом основная цель работы мокси - упрощение бойлерплейта для MVP, даггер же решает проблему только инъекций
Юрий
@InjectPresenter как думаешь к чему относится?)))