Евгений
ребят разрешите оффтоп вопрос: работаю на vds сервере в tmux, выполнил часть команд под sudo -i, как мне выйти из режима sudo не закрывая окно в tmux (команда exit закрывает панель, а я хочу остаться в панели)?
Mr O
как автозаполнить форму авторизации .
.
как автозаполнить форму авторизации .
а как ты пытался это сделать?
.
Какие есть способы отправки уведомлений когда программа закрыта, FCM не в счет?
никаких. и "закрыта" очень относительное понятие. есть сервисы, они живут даже после закрытия последнего активити. если тебе не нравится ФЦМ, напиши свой, работать он будет так же, а именно либо поллить сервер на предмет новостей, либо держать открытое сокет-соединение
.
аппы в андроиде насколько я знаю не имеют возможности получать сообщения в выключенном состоянии, то есть как минимум сервис должен жить. ты можешь попробовать взять телегу и через настройки сделать ей форс стоп и посмотреть, будут туда пуши приходить или нет (не будут, и так скажу)
Anonymous
Наконец-то разобралась с одноразовой лайвдатой, чтобы она эмиттила уникальные данные для всех подписчиков только один раз и не повторялась при пересоздании активити. Это оно!) Надеюсь... Но пока что работает. https://pastebin.com/PsKaYHvF
Anonymous
а чем ливдата лучше rx?
Lifecycle из коробки
.
интересно, почитаю на досуге
central
Как сделаь так чтобы в realm всегда хранилсяя только один экземпляр класса?
RAIN
Всем привет 👋
Сергей
Какие есть способы отправки уведомлений когда программа закрыта, FCM не в счет?
Отправки или приема? Но вообще можно ему скажем смс прислать.😄 С дикпиком, то есть с диплинком.
Alex Android
Как загрузить в ImageView большую картинку > 3000px и не словить OutOfMemory?
DarkPerl
Как загрузить в ImageView большую картинку > 3000px и не словить OutOfMemory?
Попробовать перед загрузкой проверить свободную память ?) Но, способ не надежный ) Или попробовать сжать как то картинку )
Alex Android
Попробовать перед загрузкой проверить свободную память ?) Но, способ не надежный ) Или попробовать сжать как то картинку )
Проверить могу, но если её нет? Проблема в том, что ImageView должен быть определённого размера, поверх него канвас
DarkPerl
Проверить могу, но если её нет? Проблема в том, что ImageView должен быть определённого размера, поверх него канвас
Мне кажется, если нет свободной памяти, то скорее всего никак ( Наверное, только сжимать. Или как то по частям отображать
Сергей
А зачем это? На экране все одно, скажем, 720 пикселей в ширину. Впрочем, с 4000х4000 работал, это 64 мб, одна в память влезет обычно Но медленно будет к тому же 2000х2000 предел для не топ аппарата
DarkPerl
Проверить могу, но если её нет? Проблема в том, что ImageView должен быть определённого размера, поверх него канвас
Еще можно попробовать как то выпросить у JVM больше памяти, но не знаю, хорошая ли идея в принципе
Сергей
64мб даст largeHeap почти на всех аппаратах.
DarkPerl
Попробуйте, но с этим мне кажется нужно быть аккуратным
Сергей
Но если нет планов крутить ее пальцами и рассматривать детали то 300 нинада
Alex Android
Как раз есть зум
Сергей
У меня есть приложение - раскраска. С зумом. Стандартная картинка - 2000 х 1500-2600. Работаеи норм на трехлетних самсунгах J. Думаю это предел, делал больше - была жопа.
Евгений
части джипега как то?
Евгений
или поверх?
Сергей
Но больше и на пк в фотошопе не всякий потянет.
Сергей
Как реализуете так и будет)))
Евгений
спасибо 😁
Сергей
Векторные даже видел раскраски.
Евгений
где бы примерчики посмотреть
Сергей
Хотя векторные алгоритмы floodFill не подарок.
Сергей
Как их сделали - в сторе. Как делать - в гугле, хотя может и на гите что найдется
Vadim
Есть какой-нибудь шорткат на маке как можно пастить текст в эмулятор ? cmd + v не работае(
Александр
@Harmonizr
Akb
Подскажите, к чему приведет использование liveData.observeForever(…), без использования liveData.removeObserver(…) внутри ViewModel?
Дмитрий
Подскажите, к чему приведет использование liveData.observeForever(…), без использования liveData.removeObserver(…) внутри ViewModel?
А зачем вызывать LiveData.observe во вьюмодели?) Ты подписываться на неё должен из активити/фрагмента
Akb
Remove observer в onCleare? И к какому lifecycleowner относится или там observeForeve?
Да, observeForever и никакой removeObserver не вызывается
Evgeniy
Тогда должна быть утечка
Akb
observeForever вызывается только в конструкторе ViewModel’и, что исключает повторную подписку
Akb
И как мне кажется при смерти этой ViewModel’и, все эти подписки тоже отмирают, => никаких ликов
Сергей
А как это удалось? viewModelтребует пустого конструктора и обычно создается через фабрику, если без плясок с бубном Ну и всегда есть вариант сбросить обсервер или проверить есть ли он
Aleksandr
привет, подскажите пожалуйста. нужно выложить две сборки (тест и релиз) для закрытого тестирования в гугл плей. Это будут два разных приложения? (у теста пакет с ***.test) или можно несколько закрытых версий создать?
Evgeniy
Смотри observeforeve всегда держит подписку
Evgeniy
И мне кажется она не убьется т.к. есть подписка, а вьюмодель не убьется т к. Есть лайвдата
Сергей
А, так реализуемо.
Сергей
Но классически обсерв ставят в вызывающем фрагменте/активности, и он следит за изменением показываемых во фрагменте данных, хранимых со стейтом во вьюмодели
Сергей
А если во вью модели есть внутренние данные в livedata, не требующие отображения - вешайте на них что угодно и когда угодно
Evgeniy
Leakcanary если разрешат и если возможно
Akb
Но классически обсерв ставят в вызывающем фрагменте/активности, и он следит за изменением показываемых во фрагменте данных, хранимых со стейтом во вьюмодели
«Классический» способ, конечно используется, но вот есть observeForever и он тоже в действии. Рефакторить слишком много, а вдруг в этом нету проблем
Сергей
А finalize задействовать?
Akb
А finalize задействовать?
с тем же успехом использовать onCleared() в ViewModel
Сергей
Ну вот и решение
Akb
Ну вот и решение
Вопрос в другом
Сергей
При ликвидации с концами вызывающей активности можно в vm сигнал послать мол отпишись
Сергей
Хз к чему. Либо к утечке, либо нет.
Evgeniy
.
Яж написал к утечке проверить через ликкэнари если возможно или профилировщик
Сергей
Дебажить надо и прфилировать
Evgeniy
Ибо observeforeve обзервит в егда до вызова removeobserver. По крайней мере так в спеке написано, другой момент если ты вдруг зануляешь лайвдату как либо
Muzaffar
ребят подскажите. есть фрагмент в нем баттон и при нажатии вызывается боттомЩит, а в нем RecyclerView. вроде все нормально работает только теперь хотел клик по айтему и передать значение во фрагмент. как я понял должен создать интерфейс и в адаптере примерно такой код: holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mListener.onItemClicked(item.getName()); } }); а уже во фрагменте имплементирую этот же интерфейс... правильно ли понимаю?
Muzaffar
получаю Attempt to invoke interface method 'void test.polygon.BottomSheetListener.onItemClicked(java.lang.String)' on a null object reference
Denis
тут не нужен targetFragment. Я подумал, что ты из фрагмента в фрагмент хочешь
Александр
получаю Attempt to invoke interface method 'void test.polygon.BottomSheetListener.onItemClicked(java.lang.String)' on a null object reference
БоттомЩит 😅 Гэнгста. Мало чтобы фрагмент реализовывал твой интерфейс, нужно в диалог передать реализацию. Что - то вида dialog.listener = this.