Georgy
Убить
Egor
Убить
Тогда надо с foreground service шаманить
Egor
Тогда надо с foreground service шаманить
Но надо будет показывать уведомление о том, что он работает.
Vlad
Ребят, можете помочь решить проблему? Мне надо кнопку "уже жду ответ" включать только, если имейл удовлетворяет регексу, есть хотя бы один символ в блоке "сообщение" и выбрана тема. Я знаю, что это можно сделать через MediatorLiveData, но если честно не очень представляю как. В принципе можно под каждый блок завести ливдату, и кидать туда значения тру/фолс, если что-то изменяется, но как потом учесть все три условия в медиатре? То есть мне надо что бы сразу 3 выполнялось, и в этом как раз таки проблема.
Norim
Парни, как отменить перенос кода когда он доходит до этой границы?
SE
Здравствуйте У меня есть горизонтальный RecyclerView который заполняется несколькими запросами. На данный момент там 4 элемента и чтобы заполнить его я должен сделать 4 запроса. Это список офферов. Офферы я должен отображать по новизне. Для этого я использую код ниже. Но у меня часто бывает такое, что самый свежий оффер добавляется в начало списка, но выходит за приделы экрана. И пользователю приходится скролить список влево, чтобы посмотреть свежий оффер в правом конце. Пример скриншота ниже. Как я могу исправить такое поведение? fun itemAdd(num: Int, item: BaseOffer) { val index = findIndexToInsert(item) items.add(index, item) notifyItemInserted(index) } private fun findIndexToInsert(item: BaseOffer): Int { for ((index, value) in items.withIndex()) { if (value.getItemOrder() >= item.getItemOrder()) { return index } } return items.size }
SE
Egor
Да, но как проверять, что два остальных выполнены?
Ну методом, который возмет значение каждого едиттекста.
Egor
Ну методом, который возмет значение каждого едиттекста.
Ты же в листенере одного можешь взять значения остальных.
Dmytro
или не заводить 3 переменные, а спросить последние значения твоих лайвдат (так не делал, но пропробуй)
Sergey
Uri и okhttp3.HttpUrl умеют вытаскивать параметры запроса
Благодарю! К сожалению, не нашел там возможности, указать несколько параметров, чтобы выполнялось получение utm меток за один обход...
Dmytro
а как проверять в медиаторе все ли 3 тру?
всм как? посмотри что в 2 параметре метода addSource ? твой обработчик? там и проверяй
Dmytro
val mediatorObs = Observer { if(livedata1.value == true && livedata2.valie == true){ } mediator.addSource(livedata1, mediatorObs) mediator.addSource(livedata2, mediatorObs)
Dmytro
ух, 7к, красиво 💪 c пандемией добавилось)
Egor
ух, 7к, красиво 💪 c пандемией добавилось)
Все решили андроид разрабами стать)
Vlad
правильно ли я понимаю, что полиморфизм и принцип инверсии зависимости (DIP) из SOLID одинаковы?
Dmytro
вот так?
если это условие выполняется, то mediator.postValue(true)
⬤ vitaly
ап, подскажите, пожалуйста есть какие-то конкретные причины, кроме идеологической, чтобы не использовать сервис пушей для размазанных во времени тасков?
Dmytro
вот так?
та к вообще похоже, только в твои условия я не вникал, что там тру, что фолс, это ты сам)
Flogiston
Flogiston
Deep link переводит на startDestination fragment, а не на фрагмент который указан в nav_graph, что не так может быть?
Vlad
вот так то есть?
⬤ vitaly
Я так и не понял, что это значит, например.
ну, вот мне пришёл пуш, пуш запускает какую-то потенциально долгую / тяжёлую задачу. Мне её делать внутри того же сервиса, который фаербейсовский, или есть причины создавать отдельный?
Vlad
та к вообще похоже, только в твои условия я не вникал, что там тру, что фолс, это ты сам)
ну да, я больше спрашиваю про механизм работы с mediatorlivedata) Не оч вкурил addSource и все такое
Dmytro
вот так то есть?
да, похоже на то. подпишись на медиатор и должно работать. Только перенеси потом это всё во вьюмодель(код). Во вьюшке можно и без лайвдат захерачить
Vlad
спасибо большое, сейчас попробую)
Sergey
https://square.github.io/okhttp/4.x/okhttp/okhttp3/-http-url/query-parameter-names/
Да, это работает, но без возможности получить значения, допустим, для 5ти utm меток при их наличии . Т.е. можно вытаскивать по одному параметру, но тогда лишние проходы будут получается((
Vadim
кто подскажет в чём загвоздка в активити закидываю в bundle следующим образом onShowAuthorizationDetailsEvent.postValue( ViewModelEvent(Bundle().apply { putSerializable(KEY_ID, authorizationIdentifier) }) ) А в тесте когда пытаюсь получить, ругается на типы assertThat(bundle?.getSerializable(KEY_ID), equalTo(authorizationIdentifier))) мне надо по идее ещё в arrayList закинуть или как?
Vlad
да, похоже на то. подпишись на медиатор и должно работать. Только перенеси потом это всё во вьюмодель(код). Во вьюшке можно и без лайвдат захерачить
я попробовал вручную значения поставить, но чет когда я обсервлю медиатор, то ничего не приходит, и если выводить значение медиатора просто так, то вылетает null
Vlad
вот так логи ставил
Sergey
И что?
Да, думал, что делать пять обходов не очень, когда по идее все одним можно сделать(( Или здесь это не значительно?
Dmytro
я попробовал вручную значения поставить, но чет когда я обсервлю медиатор, то ничего не приходит, и если выводить значение медиатора просто так, то вылетает null
Так ты заплатил до того, как кто-то начал слушать. Попробуй запостить значения, после того как подписался во вью и убери пока все условия в обсервере медиатора
Alex
Всем привет! Кто-то уже сталкивался с изменениями правил разработчиков Google к 12 августа 2020 относительно доступа к файловой системе? Я в приложении использую чтение и запись в файловую систему для создания/восстановления резервных копий данных. Нужно ли что-то теперь менять/отключать такой функционал?
Mikhail
Подскажите, указывать реальный физический адрес сейчас обязательно? Помню раньше это поле требовалось, а сейчас вроде как нет (звездочки нету), но в описание гугл требует указывать реальный адрес, но тут же пишет "ИЛИ емейл" Можно ли просто указать страну или вообще его удалить? Ну, раз звездочки нету...
Mikhail
Александр
Всем привет. как работать с SimpleDateFormat чтобы он не учитывал timezone устройства???
Dmytro
Подскажите, указывать реальный физический адрес сейчас обязательно? Помню раньше это поле требовалось, а сейчас вроде как нет (звездочки нету), но в описание гугл требует указывать реальный адрес, но тут же пишет "ИЛИ емейл" Можно ли просто указать страну или вообще его удалить? Ну, раз звездочки нету...
Ты продаешь приложение или контент в нем? если нет, можешь не указывать, там так и написано. а там где "или" он говорит, что может публично показывать эти данные) т.е если не продаешь, не заполнил реальный - покажут емейл, если продаешь и указал реальный, то могут его показать
Sergey
Нет, это микросекундное дело
Благодарю!! Спасибо большое!
Михаил
всем привет. кто-то прикручивал hilt к workmanager? Вроде всё делаю по гайду: class SendNotifyWorker @WorkerInject constructor( @Assisted private val context: Context, @Assisted private val workerParameters: WorkerParameters, private val getEventByIdInteractor: GetEventByIdInteractor, private val notificationHelper: NotificationHelper ) : Worker(context, workerParameters) { @HiltAndroidApp class AndroidApp : Application(), Configuration.Provider { @Inject lateinit var workerFactory: HiltWorkerFactory ................. override fun getWorkManagerConfiguration() = Configuration.Builder() .setWorkerFactory(workerFactory) .build() получаю исключение: 2020-07-27 10:10:00.970 21826-21933/com.lamp.planner E/WM-WorkerFactory: Could not instantiate com.lamp.planner.presentation.background.workmanager.SendNotifyWorker java.lang.NoSuchMethodException: <init> [class android.content.Context, class androidx.work.WorkerParameters] т.е. он ищет конструктор с двумя параметрами. Посмотрел HiltWorkerFactory, там про inject доп. параметров вообще ничего нет: if (factoryProvider == null) { return null; } return factoryProvider.get().create(appContext, workerParameters);
Александр
а конкретней вопрос?
с хедеров запроса с сервера беру время, начинаю через SimpleDateFormat конвертить в long чтобы прибавить 3 часа. но в итоге получается +6 часов, потому что при конвертации автоматически прибавляется таймона
Vladimir
Используется навигация от гугла. в глубинах графа нужно поменять тему приложения это можно сделать без пересоздания активити? или только с диплинком, что б направить пользователя туда, где он ее изменил?
Dmytro
И контент и приложения продаю, значит обязательно надо указывать?
я не гугл, ничего утверждать не могу. я лишь чуть внимательнее прочитал)
Dmytro
с хедеров запроса с сервера беру время, начинаю через SimpleDateFormat конвертить в long чтобы прибавить 3 часа. но в итоге получается +6 часов, потому что при конвертации автоматически прибавляется таймона
тут ничего не поделать) в классе симпл дейт формата берется каледарь с дефолтной тайм зоной. придется парсить, отнимать оффсет (тайм зону девайса) и оперировать
Металлов
Можно ли хранить список прямо внутри RemoteViewFactory?
Dmitriy
Dmitriy
кто работал с MapView подскажите как сдвинуть pivot? чтоб карта вращалась не вокруг центра, а ниже как на втором скрине, но чтоб это был сдвиг карты а не самого вью
Сергей
В музыкальных плеерах воспроизведение идёт в отдельной службе, для передачи команды с ui, например переключить трек, обычно используются привязка службы или broadcastы ?
Dmitriy
кто работал с MapView подскажите как сдвинуть pivot? чтоб карта вращалась не вокруг центра, а ниже как на втором скрине, но чтоб это был сдвиг карты а не самого вью
если кому-то понадобится, нашёл вот такой костыльный способ with(map) { val mapPoint: Point = projection.toScreenLocation(myPosition) mapPoint.set(mapPoint.x, mapPoint.y - 300) moveCamera(CameraUpdateFactory.newLatLng(projection.fromScreenLocation(mapPoint))) }
Dmitry
Ребята, добрый день кто-нибудь работает на гемблинг-проектах ?
Egor
Ребят, сделал сплеш экран и использовал layer-list. Я там хочу отобразить иконку апки и название под ней. Сделал одну пнг (иконка + текст). А как быть с разными девайсами? Она сама подстроится по центру и сама размер подберёт нужный?
Egor
Нет, нужно переделать под все разрешения экрана
По папкам разложить типо mdpi, hdpi и т.д?
Anonymous
?
Egor
лучше вектором сделай)
В плане из свг в xml?
K
Кто-нибудь использовал библиотеку itextpdf в своих приложениях?
Anonymous
В плане из свг в xml?
да. и иконку и текст. потом задашь нужный гравити, размеры. и ок
Egor
У меня сейчас вот так. Это пнг квадратная 360 на 360 примерно. Если оставить, то будет ли на других мобилах смотреться нормально? Не должно вылазить за границы.
Egor
da
Понял, спасибо.
Dmytro
но скорее всего 360 на 360 на старых девайсах будет не оч