⬤ vitaly
а есть какой-нибудь проект на гите типа набора функций на все случаи жизни для котлина?
⬤ vitaly
вот такого чегонить нету в стандарте?
central
вот такого чегонить нету в стандарте?
такое синтаксис котлина вообще позволяет?
Евгений
Просто if|else?
⬤ vitaly
Для такого есть .let
после лет нельзя по красоте указать чё делать если налл
⬤ vitaly
а такая ситуация лично у меня возникает в 90% случаев
Кирилл
а есть какой-нибудь проект на гите типа набора функций на все случаи жизни для котлина?
А зачем? Напиши сам. Вот эти функции обе - в одну строку пишутся.
⬤ vitaly
А зачем? Напиши сам. Вот эти функции обе - в одну строку пишутся.
просто думал, что они должны такие быть, а если их нету, то на то должна быть причина, которую я не понимаю
Кирилл
просто думал, что они должны такие быть, а если их нету, то на то должна быть причина, которую я не понимаю
Потому что... Они не нужны? :) Я рил не могу найти применения им. :) Везде можно обойтись стандартными run, with, let, apply, also
⬤ vitaly
Потому что... Они не нужны? :) Я рил не могу найти применения им. :) Везде можно обойтись стандартными run, with, let, apply, also
так о том и был мой вопрос!) Вот у меня ситуация, где надо если налл выполнить одно, если не налл выполнить другое. Как с такой же "элегантностью" написать это используя имеющиеся?)
ᛖᚹᛋᛁᚱ
вот такого чегонить нету в стандарте?
Ну немного сократить можно val i: String = var? ?: "Null" println(i)
⬤ vitaly
Leonid
выглядит как марсианский для меня)
https://stackoverflow.com/questions/45800036/how-to-run-code-if-object-is-null
Leonid
я делал раньше так, но потом вернулся к if нуль
⬤ vitaly
ну некрасиво жеж!))
Leonid
ничего не может быть красивей if-ов
⬤ vitaly
val i = str ?: "Null"
ну это если надо чёто присвоить, а если мне блок кода... Короче, буду пользоваться своими свежими офигенными экстеншенами)))
Кирилл
ну некрасиво жеж!))
Когда ты пишешь это пару раз - мб, а когда это твои будни - вот такие длинные функции только убьют читаемость, когда и так конструкции длинные сами по себе
ᛖᚹᛋᛁᚱ
val i = str ?: "Null"
Я тоже самое написал
Кирилл
Я тоже самое написал
Я потом увидел. :)
⬤ vitaly
вот такое в принципе норм, не знал, что так можно
⬤ vitaly
но я уже написал экстеншены, буду их юзать, а то им обидно будет :D
ᛖᚹᛋᛁᚱ
Дочитай комменты к этому ответу
Leonid
но я уже написал экстеншены, буду их юзать, а то им обидно будет :D
а людям кто будет это поддерживать обидно не будет?
⬤ vitaly
а людям кто будет это поддерживать обидно не будет?
это уже их проблемы. Ну и блин, название функции на 100% передаёт что она делает
ᛖᚹᛋᛁᚱ
Так сложно сделать проверку на руль ифом штоле
Кирилл
Злые вы с утра
⬤ vitaly
несложно. Просто у меня чуство прекрасного с утра проснулось)
ᛖᚹᛋᛁᚱ
if data == null return
ᛖᚹᛋᛁᚱ
Etc
⬤ vitaly
Пришёл и сел писать экстеншены
⬤ vitaly
Это ты сегодня так думаешь :)
ппц, что ещё может делать функция doIfNull?)))
ᛖᚹᛋᛁᚱ
Например в каллбеке ретрофита: if response.body() == null return this.onFailure(call, Exception ("body is null))
⬤ vitaly
у меня есть фунция, которая долбит в цикле код пока значение не станет не наллом или пока не пройдёт указанный таймаут :D
⬤ vitaly
вот тут да, мне жалко следующих андройдщиков
Кирилл
Это ты сегодня так думаешь :)
Не, ну он прав, по большей части. Это оч лайт экстеншены, которые не дают жопоболи. Когда поддерживаешь чей-то код, обычно бесит много чего другого.
Leonid
Не, ну он прав, по большей части. Это оч лайт экстеншены, которые не дают жопоболи. Когда поддерживаешь чей-то код, обычно бесит много чего другого.
И сидишь ты такой утром с чашеской кофе (чая) и думаешь, почему этот хитрый лис написал екстеншенов вместо if ... else, что же он хотел тебе сказать :)
Vyacheslav
Привет! Подскажите где лучше хранить файлы, которые будут использоваться как платный контент? Своего сервера нет, хотелось бы что-то надежное с api
Кирилл
И сидишь ты такой утром с чашеской кофе (чая) и думаешь, почему этот хитрый лис написал екстеншенов вместо if ... else, что же он хотел тебе сказать :)
Подобное есть, но сомневаюсь, что это применимо к подобным экстеншенам.)) Тут сразу видно, что это вкусовщина. :)
Leonid
Подобное есть, но сомневаюсь, что это применимо к подобным экстеншенам.)) Тут сразу видно, что это вкусовщина. :)
Я лично ломаюсь на таком, думаю о чем то заумном сразу, не спроста же это все, может я какой магией не овладел :)
Anonymous
Hello Android guys.
Anonymous
I am looking for an expert android developer.
Andrew
I am looking for an expert android developer.
All android experts here, welcome!
Anonymous
Good luck!
Это было жестоко
Vitalik
Подскажите, можно ли интегрировать google pay для привязки банковских карт?
Ivan
Günter
Подскажите, можно ли интегрировать google pay для привязки банковских карт?
Можно реализовать Push Provisioning, позволив из приложения добавлять карту в GooglePay Но доступ к документации надо получить у самого Google https://developers.google.com/pay/issuers/apis/push-provisioning/android
Anonymous
Добрый день! У менять есть ресивер READ_PHONE_STATE, и мне нужно определить начало длительности при исходящем звонке. Обычно когда есть исходящий звонок, в ресивер приходят OFFHOOK -> IDLE. Есть один катыльный вариат сделать это с audio.mode с проверкой на MODE_IN_CALL, MODE_IN_COMMUNICATION. Пока не начал делать, есть ли более простой способ узнать начало терминаций GSM трафика ?
Ivan
слушайте ребят. я много раз пытался сделать нормальный хендл медиакнопок блютус устройства, нифига не выходит. есть у кого действительно адекватный мануал? первые ссылки на гугле не кидайте, перерыл уже 15 штук всякого дерьма
А в чем именно проблема? когда делал помнится была пролема в том, что например при нажатии на плей прилетал интент и точно такой же интент сразу после отпускания кнопки. Приходилось делать всякие костыли типо таймаута
Anonymous
Привет всем
Need
Привет
Kopusha
вот такое в принципе норм, не знал, что так можно
это ужасно. В какой-то момент нужно просто сдаться и признать, что if/else легче читать.
⬤ vitaly
это ужасно. В какой-то момент нужно просто сдаться и признать, что if/else легче читать.
именно этот способ ещё и неправильно работает, а что ты скажешь об экстеншенах на скрине выше?
⬤ vitaly
какую вьюху лучше всего исользовать, чтобы слушать клик по области?
⬤ vitaly
вот у меня например есть какой-то набор вьюшек, но они не в контейнере и если я не хочу ничего перевёрстывать, какой мне прозрачной фигнёй это всё накрыть, и чтобы туда листенер присобачить?
Yehor
если я не ошибаюсь, то можно вообще навесить слушатель на весь лайаут
Yehor
там прописываешь clickable = true
Yehor
но я не уверен, что будет работать
⬤ vitaly
ну тут оно да, но там с позиции производительности и всего такого... На Space почему-то не работает клик
Kopusha
именно этот способ ещё и неправильно работает, а что ты скажешь об экстеншенах на скрине выше?
вообще, тема if/else интересная. Вижу, даже в функциональной скале советуют брать if/else и не мучить писю. Если есть API 24, то можно извернуться через джавовский Optional, как-то так: http://ashtonkemerling.com/posts/java-without-if/. Ну, такое...
Yehor
ну тут оно да, но там с позиции производительности и всего такого... На Space почему-то не работает клик
Листенер на контейнере будет явно меньше нагружать чем прозрачная фигня)
⬤ vitaly
вообще, тема if/else интересная. Вижу, даже в функциональной скале советуют брать if/else и не мучить писю. Если есть API 24, то можно извернуться через джавовский Optional, как-то так: http://ashtonkemerling.com/posts/java-without-if/. Ну, такое...
ифэлс действительно удобен и универсален, тут спору нет. Но лично мне то, что я написал, видится как что-то более удобочитаемое и что проще писать. Просто с позиции количества операторов, что-ли. Ну и лично я имею склонность запутываться в простейшей логике, поэтому изи могу написать == вместо !=. Короче, наверное, каждому своё) Принимая во внимания, что, при желании, можно всё лёгко find&replace
⬤ vitaly
Листенер на контейнере будет явно меньше нагружать чем прозрачная фигня)
дык это надо этот контейнер создать, вьюхи туда пихать и всё такое...
Yehor
ты не можешь в сам контейнер прописать кликабл и навесить на него слушателя
Yehor
?
⬤ vitaly
или есть способ в студии как-то "безболезненно" вьюхи пихнуть в контейнер, чтобы вся остальная логика работы лэйаута не поменялась? Очень сомневаюсь)
⬤ vitaly
ты не можешь в сам контейнер прописать кликабл и навесить на него слушателя
в текущей реализации в контейнере слишком много вьюх и мне надо прослушивать разные нажатия, а не одно
Yehor
аааа... понел... я не уверен, что это хорошее решение, но я бы вложил еще один контейнер конкретно на облась, которую ты хочешь слушать и все