Denis
от него наследовать
Denis
сделать interface с методами, которые тебе нужны
Denis
и реализовывать его в фрагменте, как тебе нужно
Mike
я кнш могу перенести и по итогу собирать какой нибудь parcelable объект и дальше его отправылять в активити
не надо Parcelable, ты же из активити вызываешь методы непосредственно на фрагменте
Denis
я кнш могу перенести и по итогу собирать какой нибудь parcelable объект и дальше его отправылять в активити
либо сделать для активити интерфейс, и надеяться, что активити, которая запустила тво фрагмент, реализует этот интерфейс
Anton
ок я вас понял, сенкью
Anton
т.е. элементы из фрагмента не юзаются в активити?
Mike
т.е. элементы из фрагмента не юзаются в активити?
да, пусть фрагмент предоставит метод, который будет собирать данные и отдавать наружу, а лезть во вьюхи не надо
Mike
типа, разделение ответственности
Anton
спасибо большое)
Sergey
Всем привет, нужен совет, у меня есть таб + пейджер, они заполняются данными, которые гружу с сервера, это три относительно больших jsona, на данный момент, я не отображаю пользователю ничего, пока не загружу эти данные, может занимать около 5-15 сек. Вопрос, что можно сделать, чтобы не заставлять пользователя ждать? И куда копать ?
Anonymous
Поцаны! Firebase messaging работает норм на обычном апк, но если залить его в гуглплей и установить, то не работает. В чем может быть дело?
Viktor
Ребят, мне кажется или Гугл стал оч активно банить приложения ?
Vadim
Ребят, мне кажется или Гугл стал оч активно банить приложения ?
Например? Всякий хлам или акки разработчиков
Viktor
Да все что хоть как то работает со сторонними сервисами
Vadim
Кто-то использует ktlint в проекте ? Думаю попробовать в новом проекте... Или может какие-то альтернативы?
V.Ilin
Правильно ли будет создавать новый файл с информацией shared preferences при каждой регистрации нового юзера на одном устройстве?
Vadim
Да. Еще есть checkstyle. Используйте ktlint. :)
никогда не пользовался не тем, не этим.. А на каком этапе он будет ругать за ошибки?
Astar
Как бы правильно отследить состояние Bluetooth? То есть когда он включается либо выключается. То есть проблема в моем случае стоит следующая: Мне нужно получить список сопряженных ранее Blluetooth устройств. блютуз то програмно включается но список возвращается пустой. Вероятно не успевает прочитаться сразу после включения. События включения ловлю через BroadcastReceiver
Egor
комрады подскажите примеры копирования файлов из сетевых папок винды в андроид, нашел библиотеки smbj и jcifs-ng, но как использовать чет немогу сообразить
Vitaly
Если я реализую Single Activity и перехожу по Push Уведомления на какой-то экран, то мне нужно для этого переходить на новое Activity какое-то или я перехожу на основное Activity, а там уже решаю какой фрагмент открывать?
Vitaly
Какой Костя?
Denis
+.Читал про это статью.
Denis
Она легко ищется
Vitaly
Хорошо, спасибо
V.Ilin
Я бы так не стал делать. А что мешает использовать SQLite?
база данных firebase, хочу просто закидывать некоторые данные для разных юзеров в кэш, с помощью SQLite, можно реализовать?
Vitaly
Нашёл его доклад про Single Activity)
Vadim
Если интегрируете через gradle - на этапе ./gradlew ktlint
нашел классную интеграцию вместе с danger можно сконфигурировать так, чтобы бот оставлял комментарии при открытии пулл реквеста в гитхабе
Сергей
но прост очень много уже написано в активити и вот подумал раз работает почему бы и не оставить
если "очень много уже написано в активити" то с архитектурой уже проблема
V.Ilin
спасибо
Vitaly
Я почитал про Single Activity статью Константина, возникли вопросы: 1) Если теперь у меня есть AppActivity с чётко определённым временем создания и смерти приложения, тогда можно ли вообще не юзать класс, который насследуется от Application? 2) Создавать второе Activity для шаринга данных или открытия экрана по уведомлению целесообразнее только тогда, когда у нас нет функциональности из основного приложения, верно? То есть тогда, когда я не смогу перейти на главный экран (грубо говоря)?
RASHIT
Вопрос к вам, вы еще ведеие свой блог?
RASHIT
Да, вот дума ю забросили вы это дело или нет. Может про mvvm напишите?
RASHIT
Можно линк вашей флудилки?
RASHIT
Блин надо было в пятницу сказать, хорошо на выхах напомню. Спасибо.
Vitaly
Будешь хейтить MVVM?
RASHIT
Будешь хейтить MVVM?
Да не думаю, он вроде он нем в последнее время хорошо отзывался.
Denis
Кто-то использует CompletableFuture? Почитал доки, понравилось. Но смущает, что api level 24
Astar
Могу ли я как то определеть в двух разных классах, которые используют ссылку на один общий Handler, для того что бы в этих двух классах переопределить метод handleMessage()? Мне он нужен для того, что бы в двух этих классах ловить сообщения Handler'a. Или все только сводится к одному что бы использовать паттерн — наблюдатель?
Denis
retrofuture
Это либа?
Denis
retrofuture
Посмотрел, спасибо
Vitaly
Имя пакета приложения задавать не через 2 точки, а через 3-4 точки - норм?
Vitaly
Ну хз, мало ли есть какие-то рекомендации
Sergey
Бэст практис 😂
Mike
org.telegram.messenger
Vitaly
А если я напишу второе приложение с тем же id что и первое и подпишу тем же ключом, то я могу выложить его как обнову старого?
Alexey
Поцоны, а у вас в крашлитике всякий мусор сыплется? Типа краши во View.class и прочее? Просто игнорите?
Denis
Гайз, есть у кого нибудь стата по использованию RX в прод-проектах? Среднее по больнице значение
Anonymous
А если я напишу второе приложение с тем же id что и первое и подпишу тем же ключом, то я могу выложить его как обнову старого?
По факту проверяется пакет и ключ. Если пакет тот же, и ключ тот же. Смотрят на версию. Соответственно если версия больше - накатывается как обновление
Anonymous
В остальных случаях ошибка
Igor
Кто-нибудь писал two way binding для EditText и MutableLiveData? Без databing, тащить целую либу ради одного метода не хочу.
Tony
а, сорр
Igor
у меня узкое место - observe forever в livedata
Igor
fun EditText.bind(liveData: MutableLiveData<String>) { val textWatcher = object : TextWatcher { override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) { } override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { } override fun afterTextChanged(s: Editable?) { liveData.value = s.toString() } } liveData.observeForever { removeTextChangedListener(textWatcher) setTextKeepState(it) addTextChangedListener(textWatcher) } this.addTextChangedListener(textWatcher) }
Igor
а что в ней плохого?
Igor
работает, все, вот, кроме повторного вызова setTextKeepState(it)
Igor
так то в чатик по компонентам вопрос, это ж метод liveData
Igor
Короче, вот так работает fun EditText.bind(liveData: MutableLiveData<String>) { var textChangedFromSubcription = false val textWatcher = object : TextWatcher { override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) { } override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { } override fun afterTextChanged(s: Editable?) { if(textChangedFromSubcription) { liveData.value = s.toString() textChangedFromSubcription = false } } } liveData.observeForever { //removeTextChangedListener(textWatcher) textChangedFromSubcription = true setTextKeepState(it) //addTextChangedListener(textWatcher) } this.addTextChangedListener(textWatcher) }
Igor
Когда фрагмент пересоздавается, bind вызывается повторно, поэтому addTextChangedListener вызовится дважды. Один из из observera а второй раз тот, что в методе последней строчкой. Ну и потом привет infinity loop
Igor
который профайлером не поймать, так как оне умеет записывать методы, которые не закончились