Ivan
Мне удобне, когда вся логика связаная с вьюхой RV находится в одном месте. Прокидывать листенер, пусть и одинаковый, суть байндниг. Не понимаю как ты сюда SRP притянул. onCreate создаёт холдер? Создаёт. У него роль такая, этот метод вызывается когда RV нужен новый холдер. Цель метода - холдер вернуть, всё что ты в него напихуёнишь по ходу - твоя инициатива. Делает ли этот метод что - то ещё, кроме как возвращает холдер? В твоём случае да, в моём - нет. Что там у нас по SRP? onBindViewHolder биндит холдер? Биндит. Этот метод вызывается, когда RV необходимо актуализировать в ячейке контент. Является ли навешивание листенера, пусть и такого же, актуализацией? Является. Нарушается ли тут SRP? Нет.
Вот на "удобнее" можно было бы заканчивать дискуссию, потому что тут трудно поспорить, но дальше ты всё-таки приходишь к каноничности, если я правильно понял. С позиции SRP прокидывание одинакого листенера относится скорее к onCreateVH, а не к onBind. Ты пишешь про актуализацию. Как ты актуализируешь листенер в onBind? Он реально актуализируется? Если я его вешал в onCreateVH или, что лучше по-мне, в onViewAttached, он у меня не актуален, да ну? > Прокидывать листенер, пусть и одинаковый, суть байнднига. Неа > Цель метода - холдер вернуть Именно так, поэтому пробросить листенер лучше, когда ты создаёшь холдер. Поскольку листенер у тебя не изменяется. Соответсвенно, каждый раз пробрасывать один и тот же холдера в onBindVH, который вызывается достаточно часто, стоит отметить, не есть хорошо. > Не понимаю как ты сюда SRP притянул. SRP, вообще, почти всюду есть. (ну как я понимаю)
alexander
Всем привет. Можете посоветовать библиотеку типа ImagePicker, но для отображение из галерии и картинок и видео? Ну или не типа ImagePicker, просто какую пользовали?
Granderbird
Ребят есть трабла. Если скрыть приложение, потом открыть его же через ИКОНКУ, а не через менеджер, то оно открывается заного, теряя то активити, на котором пользователь находился. Если возаращаться через менеджер, то всё окей. Как это фиксится вообще? Что бы через иконку возвращалось приложение, если есть возможность, а не запускалось заного. В телеге нормально работает это как минимум
Александр
Вот на "удобнее" можно было бы заканчивать дискуссию, потому что тут трудно поспорить, но дальше ты всё-таки приходишь к каноничности, если я правильно понял. С позиции SRP прокидывание одинакого листенера относится скорее к onCreateVH, а не к onBind. Ты пишешь про актуализацию. Как ты актуализируешь листенер в onBind? Он реально актуализируется? Если я его вешал в onCreateVH или, что лучше по-мне, в onViewAttached, он у меня не актуален, да ну? > Прокидывать листенер, пусть и одинаковый, суть байнднига. Неа > Цель метода - холдер вернуть Именно так, поэтому пробросить листенер лучше, когда ты создаёшь холдер. Поскольку листенер у тебя не изменяется. Соответсвенно, каждый раз пробрасывать один и тот же холдера в onBindVH, который вызывается достаточно часто, стоит отметить, не есть хорошо. > Не понимаю как ты сюда SRP притянул. SRP, вообще, почти всюду есть. (ну как я понимаю)
Достаточно часто - это охренлиард раз в секунду. То что ты скроллишь и таким образом перенавешиваешь обработчик - это далеко не "достаточно часто", даже если ты только и делаешь что пальцем туда сюда елозишь. Вообще, чтобы об этом говорить, нужны какие - то реальные данные, чтобы понять, вызовет ли это перенавешивание хоть какую - нибудь малепусенькую просадку. Да, перенавешивание листенера - это байндинг. В моём понимании так. Байндинг - сопоставление одного другому, условно. И для меня очень даже логично, что перенавешивание происходит в onBind. Все эти рассуждения про SRP - это дроч какой - то, сорян. Всёё суть удобство. Я для себя не вижу разнесение логики по биндингу в onCreate и onBind удобным. Я хочу написать код, который будет хороший и поддерживаемый, чтобы меня коллеги не отпиздили потом за гаражами. Если при написании кода будет соблюдаться SRP - хорошо, но отталкиваться от него - нахрен надо, это имхо кукуха поедет нахрен если код прямо по SOLID писать. Ок, листенер, если не рассматривать какие - нибудь экзотические случаи, меняться не будет. Ну ок. Хочешь пулять обработчики в onCreate - пуляй. Только не нужно думать, что ты делаешь прямо "охонь" и что - то там по производительности выигрываешь, это фулл вкусовщина. Всё имхо офк.
Андрей
Народ, есть ли инструмент или библиотека хорошая для того, чтобы в ui-тестах ждать момента, когда выключится интернет?
marat
как можно удалить дочерний элемент в firebase
Granderbird
Ну у телеги открыты исходники, загляни на хабе и посмотри
Да уже понял в какую сторону копать надо, там с launchMode и проверкой на интенты надо разбираться
Diana
Привет Такой вопрос: Как сделать так чтобы dialog (BottomSheetDialog) запускался как активити? P.s. я понимаю что можно его указать в манифесте как активити и сделать там тему по типу android:theme="@style/Theme.Design.BottomSheetDialog", но он почему-то запускается как обычный диалог (по центру экрана, а не снизу) (Простите за глупый вопрос, загуглить не получилось)
Valery
Всем привет. Странный вопрос про android billing. Есть ли какой способ узнать, прикреплена ли уже карта? Мне требуется знать, нужно ли юзеру вводить номер карты и прочее при оплате в приложении. Или карта уже есть и оплата произойдет сразу
Valery
да
Valery
для рекламной компании и прочее
Dmytro
да
бла бла ? бла ? бла? - да
Diana
странный кейс, есть какой-то аргумент почему функционал который выглядит как фрагмент, должен быть активностью?
При неявном интенте, когда выбирают моё приложение должен снизу появится диалог)
Maksym
Всем привет. может кто сталкивался в SimpleDateFormat ставлю локаль Locale.getDefault() или даже Locale.English при этов телефоне установил по умолчанию англ.язык а даты все равно пишет на русском, как с этим бороться?
Pavel
Ребята ,кто нибудь знает почему когда создаю полигон с затемнением на всю карту , он такое чувство что рисуется пару раз, и не могу нормально hole прорисовать
Pavel
это когда я делаю квадрат вокруг места где нужно затемнение показать
Pavel
а это когда всю карту покрываю
Maksym
Ого, так быть не должно, сколько раз работал с этим и всё ок
Да, но тем не менее есть а что лучше использовать Locale.getDafault()?
Aleksey
Да, но тем не менее есть а что лучше использовать Locale.getDafault()?
попробуй=) помоему на эмуле когда запускал getDefault() то календарные дни были на инглише
Akb
Привет! Кто знает как в Mockito проверить вызов метода -verify, игнорируя аргументы?
Kirill
Всем доброго дня! Подскажите, есть готовые решения для графического пароля?
Maksym
попробуй=) помоему на эмуле когда запускал getDefault() то календарные дни были на инглише
Суть в том что на телефоне меняю язык ставлю принудительно локаль а Simpedateformat все равно возвращает дату на русском
Anonymous
есть кто из C#?
Anonymous
есть кто из C#?
А что нужно?
Anonymous
А что нужно?
BitConverter.ToInt32 возращает не то что должен, кормишь 0x00, 0x20 - а он выдает 5120
Valery
Всем привет. Странный вопрос про android billing. Есть ли какой способ узнать, прикреплена ли уже карта? Мне требуется знать, нужно ли юзеру вводить номер карты и прочее при оплате в приложении. Или карта уже есть и оплата произойдет сразу
Прочитал тут про Google pay api. Вроде можно доставать платежные методы из аккаунта пользователя. Но вот возможно ли совместить с работой инаппов. Есть у кого инфа какая?
Anonymous
BitConverter.ToInt32 возращает не то что должен, кормишь 0x00, 0x20 - а он выдает 5120
хз,https://docs.microsoft.com/ru-ru/dotnet/api/system.bitconverter.toint32?view=netframework-4.8
Anonymous
Друзья! кто-то работал с диплинками? Скачиваю приложение по дииплинку из гугл плея, но когда открываю его, там открывается не то что нужно
Anonymous
как будто я просто его скачал из гп. Когда кидаю тестовый диплинк, как уведомление - все правильно
Anonymous
открывается нужную активити
Maks 😈
Можно ли как то ускорить работу camera2 с превью в текстяурвью. Она прям долго долго наводится. Около 4-5 сек. Стандартное приложение камеры успевает сфокусироваться и сфотать за 1сек.
Денис
да
Это всегда так? Просто тони часто не доделают. 10% вероятности
Anonymous
Anonymous
вот так беру диплинк. и через интент
Anonymous
но суть в том, что активити даже не та открывается. там через диплинк должна другая открываться
Anonymous
в гугл плей переходит через фб
Денис
да, всегда
https://developers.facebook.com/docs/app-ads/deep-linking?locale=ru_RU
Денис
Gjxbnfqnt edfc nfv yt ghfdbkmysq vtnjl .pftncf
Денис
кучу раз читал
А ловите не через тод метод
Anonymous
А ловите не через тод метод
так а через какой надо?)
Денис
А ловите не через тод метод
а притестак перед релизом все норм было?
Anonymous
а притестак перед релизом все норм было?
https://developers.facebook.com/tools/app-ads-helper/
Anonymous
через это тестировал. все было правильно
Akb
verify(Mockito.anyBoolean()) anyObject() anyString()
Спасиб! Но с котлином эти штуки плохо работают. Временный фикс нашел здесь https://github.com/android/architecture-samples/blob/todo-mvp-kotlin/todoapp/app/src/test/java/com/example/android/architecture/blueprints/todoapp/MockitoKotlinHelpers.kt
Akb
или вот https://github.com/nhaarman/mockito-kotlin
Anonymous
еще вот так пытаюсь. но это не суть. проблема в том, что на активити нужную не переходит
Денис
еще вот так пытаюсь. но это не суть. проблема в том, что на активити нужную не переходит
я такоре не делай я тоько линки ловил и открывал, пробуйте лину к нужному кативити приввязать и её вызывать.
Денис
покажите манифест
и какю линку шлете плиз
Anonymous
Денис
сделайте еще префикс на нужной активити https://developer.android.com/training/app-links/deep-linking
Денис
префикс?
android:host="www.example.com" android:pathPrefix="/gizmos"
Anonymous
android:host="www.example.com" android:pathPrefix="/gizmos"
а что он делает и как это скажется на диплинке?
Денис
ишлите его в дипе потом открывай те в тиори должно срабатать
Anonymous
а как его вставить в диплинк?
Anonymous
app:// и?
Денис
а что он делает и как это скажется на диплинке?
ето просто доп адрес, некак не скажетса все зависит от дипа тоже
Денис
app:// и?
app://иметка класса
Anonymous
app://иметка класса
т.е. app://gizmos и дальше
Денис
т.е. app://gizmos и дальше
вам прто сто надо етото адрес в дипе рислать и достать его потом
Денис
т.е. app://gizmos и дальше
это посуте адрес вашего приложения если вконсоле вести ото откроетса нужное активити
Денис
я вам скинул доку как это все работает
там наисанно как проверить
Денис
и где мне найти адрес имено моей активити?
ви кней его в доп интете прикрепляете
Денис
еще вы не правильно сделали что в одно интене указали, так ваще приложение не видно в меню