Doston
Спасибо. Пока руки не доходят, я думал их удалять из стора.
LeV
Всем привет, подскажите а у гугла нет функции экстренного обновления в случае критического бага? у яблочников вроде раз в месяц можно таким воспользоваться
LeV
т.е. чтобю не ждать пару часов на проверку, а попросить вылить быстро
Yuriy
Всем привет, подскажите а у гугла нет функции экстренного обновления в случае критического бага? у яблочников вроде раз в месяц можно таким воспользоваться
У Гугла не бывает критических багов. Прям заинтересовало то что ты написал, подобнее можешь рассказать о чем речь?
LeV
имею ввиду, в случае если накосячил в рабочей версии своего приложения, очень срочно вылить обновление)
LeV
но короч погуглил, такого нет, в отличии от яблочникоф
Anes
Всем привет. Проблема с fcm. Раньше с сервера отправлял данные на api fcm и всем устройствам подписанным на топик приходил notification, но теперь я не могу отправлять запросы, ответ 403. Они там что то с апишкой изменили а в доке если честно не понятно как мигрировать. Есть пример или кто что-нибудь подскажет?
LeV
проверка пара часов идет. а хотелось бы прям моментально выкатить
Никита 🙃
А кто знает, как можно сделать popup menu wrap_content из кода? (Создаётся из кода динамически)
Anton
Привет! кто получал алерты об обязательном переходе на api 29 с 1 ноября ? от стора
Anton
конфьюзит вот такой месседж Affected apps The apps included below have one or more APKs—in production or testing tracks—that aren't currently targeting API level 28 or higher. Apps are listed with the maximum version code and corresponding targetSdkVersion. If you have more than 20 apps that could be affected in your account, please check the Play Console for a full list. по сути не написано что будет с аппами таргет у которых меньше 28
Denis
пока не обновишь
Anton
ну из стора уберут или нет? зачем отдельный пункт об афектед версиях
Anton
что не залью новую - понятно
Сергій
что не залью новую - понятно
И не обновишь старый если в обновления будет targetSDK ниже 28
Anton
вот это ваще треш какой то
Сергій
вот это ваще треш какой то
Почему, год же был
Anton
та я не знал, клиент прислал
Сергій
Ну ты же разработчик 🌝
Liam
у меня вылез странный баг может кто подскажет как его адекватно пофиксить или сказать причину появления у меня есть месенджер на некоторых моделях телефона в сообщениях формата "1.4%" процент переходит на следующую строку я подебажил и выяснилось, что переноса строки "/n" там нет т.е. TextView просто взял и перенес этот % на следующую строку, как будто не хватает места для текста, хотя места еще предостаточно. я добавил текстовому полю педдиниги слева и справа по 1dp и все заработало нормально мне бы хотелось избавится от этого решения и искоренить причину появления бага, а не его следствие android:layout_width="wrap_content"
Anes
Ну ты же разработчик 🌝
Обясните пожалуйста я не понял. Что значит обязательный переход на 29 api? таргетВерсия сборки приложений должна быть 29 для того чтобы залить в playMarket&
Anes
?
Александр
Да. https://developer.android.com/distribute/best-practices/develop/target-sdk
Egor
Всем привет. Буду благодарен за ответ на вопрос. Есть функция doSomething, в которую передают callback.. Внутри функции doSomething запускаем картурину(GlobalScope для примера) для выполнения тяжелой работы в background. Хотелось бы после получения результата переключится на поток вызова функции doSomething и позвонить в callback. Как то можно сделать?
Сергій
Что такое targetSDK и на что он влияет можно почитать в документации
zlo
А у кого сколько публикуется приложение ?
Anes
Александр и @desugar все понял спасибо)
Egor
Корутина. 🌚 В вашем примере callback будет вызван в потоке, который указан в контексте для launch
Как сейчас работает я понимаю. Нужно переключится на поток вызова функции doSomething и вызвать callback в этом потоке.
Denys
Как сейчас работает я понимаю. Нужно переключится на поток вызова функции doSomething и вызвать callback в этом потоке.
Когда мы работаем с корутинами - мы думаем про потоки только посредством диспетчеров.
Mh
withContext(dispatcher) { callback() }
Egor
Тебе надо передать диспетчер через аргумент)
А как ты получишь диспетчер для currentThread вызова функции doSomething?
Egor
withContext(dispatcher) { callback() }
Тут вопрос в том где взять dispatcher который знает поток вызова функции doSomething
Denys
Создавайте Handler и простите туда
Egor
Тебе надо передать диспетчер через аргумент)
Код вызывающий doSomething не знает про корутины.
Denys
Mh
Код вызывающий doSomething не знает про корутины.
fun doSomething(context: CoroutineContext, callback: () -> Unit) { GlobalScope.launch { withContext(context) { callback() } } } fun main() = runBlocking { doSomething(this.coroutineContext) { print("hello world") } }
Mh
Исправил
Denys
private fun doSomething(callback: () -> Unit) { val handler = Handler() launch { work() handler.post { callback() } } }
Egor
private fun doSomething(callback: () -> Unit) { val handler = Handler() launch { work() handler.post { callback() } } }
Это решение, но хотелось бы чисто с использованием корутин)
Mh
Это не будет работать(проверено) т.к context будет неактивным.
а ты блокирующий вызов оборачиваешь в runBlocking?
Egor
private fun doSomething(callback: () -> Unit) { val handler = Handler() launch { work() handler.post { callback() } } }
Посмотрел внимательнее есть Handler().asCoroutineDispatcher() И можно свичить как хочешь)))
Александр
Тут написано 28
Значит так оно и есть по всей видимости. В консоли тот же самое написано.
Nikita
Ага. Прост там чел выше писал про 29
Сергій
Ага. Прост там чел выше писал про 29
это тоже можно уже юзать, только надо понимать
Александр
Ага. Прост там чел выше писал про 29
Да, я понял. Мб он ошибся.
Danile
как в котлине можно добавить пробелы в стринге? допустим мне пришел стринг 123456789 а я хочу его сделать таким : 123 456 789 если через спанабл можно, тогда пример плиз (чет не получилось)
Danile
.substring() не подходит?
не уверен , это мне тип так вырезать и разбивать на стринги...
Danile
думаю есть вариант по красивее)
Danile
А зачем плодить Spannable? :)
хз, первое что пришло в голову , но теперь не уверен. ладно сделаю пока с сабстрингом а там может чет найду. в любом случае спасибо)
Денис
Всем привет! Поскажите плиз в Dagger выдает ошибку No injector factory bound for Class вчеем можетбыть причина, перелопатил все вожможные варианты, так и несмог её решить.
Denys
Регулярками. Заодно они освоятся+ можно будет конирольвалидности сделатб
Если формат несложный - это оверкил, как мне кажется. :)
Сергей
Если с ними не работал ранее - отличный повод освоить. Всегда пригодятся регекспы
Mike
Если с ними не работал ранее - отличный повод освоить. Всегда пригодятся регекспы
очень хорошо их знаю, довольно-таки бесполезная штука)
Сергей
Кстати да, но только если это всегда число, причем влезающее в формат long. 20 символов может не осилить, нет?
Denys
@angmarr Мсье, у вас совершенно случайно не окажется под рукой чатика по Jetpack Compose и декларативному UI на мобильных системах?
Mike
@Oleg_Newtel ты специально спросил чтобы себе же ответить? хитро
Viktor
Использую Navigation Component, как onNewIntent доставить во фрагмент?
Denys
Daniel
Всем привет! Подскажите, как называется такой layout? И знает ли кто-нибудь хорошую либу, которая реализует это в recycler view?
Daniel
ChipGroup с большим количеством элементов плохо себя ведет.
Denis
ChipGroup с большим количеством элементов плохо себя ведет.
В чем тогда проблема сделать это на RecyclerView?
Александр
Daniel
В чем тогда проблема сделать это на RecyclerView?
Нужно написать свой layout manager, который будет так располагать элементы в rv. Но я уверен, что я не первый, кто пытается сделать такое расположение, поэтому хочу найти уже готовый. А чтобы найти, надо узнать, как это называется.