Tishka17
Снэкбар - это уведомление с кнопкой
Tishka17
Или без кнопки
Tishka17
А не алерт
Алексей
Не могу поспорить с товарищами выше
Алексей
Алексей
А насчет кнопки назад...
Алексей
Ну а никак иначе и не сделаешь
Алексей
точнее есть варианты
Алексей
Но костыльные
Алексей
Что бессмысленно
Vladislav
@DEADMC да, так наверное лучше) а как это реализовать?)
Андрей
@DEADMC да, так наверное лучше) а как это реализовать?)
стесняюсь спросить, в чем проблема?
Tishka17
А что такого в проге, что ее активити закрыть просто так нельзя?
Vladislav
@DEADMC как посчитать двойной клик для выхода
Vladislav
?
Tishka17
Какая разница, нажал назад или свернул и забыл?
Андрей
@DEADMC как посчитать двойной клик для выхода
с помощью счетчика, если счетчик = 1 запускаем таймер, скажем на 5 секунд, как таймер всё - обнуляем счетчик
Vladislav
понял) спасибо!
Tishka17
Да не нужен таймер. Просто запомни когда нажимали последний раз
Tishka17
И по нажатию проверяй задержку
Vladimir
А что такого в проге, что ее активити закрыть просто так нельзя?
Например при редактировании чего-то спросить сохранить изменения
Андрей
пожалуй да, даже проще будет
Tishka17
Например при редактировании чего-то спросить сохранить изменения
Ну это другой кейс, тут согласен. Но тут самое то для алерта, а не двойного назад
Алексей
В онрезюме можно обнулять счетчик
Алексей
Дабы по выходу из других активити в корневой необходимость дважды нажимать перед выходом сохранялась
Валерий
Кто-нибудь умеет рисовать layer-list drawable в xml со смещением bitmap'а относительно центра?
Ленар
Привет! Кто нибудь знает есть ли java чатик?
Андрей
но лет 5 назад точно был
Vladislav
где взять view для Snackbar?
Tim
Добрый вечер, у меня вопрос, я добавил в своем приложении deeplink, но в приложении есть банеры по которым нужно переходить именно на сайт, а не в приложение, как это реализовать?
Tishka17
где взять view для Snackbar?
android.support.design.widget.Snackbar
Tim
Webview запили в приложении и открывай там
будет сразу webview открываться, без вопроса, через какое приложение открыть?
Dmitriy
Подскажите, уже задавал вопрос. Создаю нотификацию из сервиса с PendingIntent, передаю в него Intent с экстра. Если приложение было открыто, то при клике происходит все правильно- перехожу на указанную активити и поулчаю экстра. Если же приложение не было открыто то запускается мейнактивити, которое ланчер без экстра.
Просто у FCM есть два типа пуша: Notification и Data. Notification если приложение открыто попадает в сервис, в котором вы формируете как должен выглядеть пуш, однако если закрыто(свернуто) то просто показывает пуш, который при клике открывает launch screen. А вот data пуши обрабатываются всегда через ваш сервис. По описанию проблемы похоже, что формируется именно notification уведомление. Почитать можно тут https://firebase.google.com/docs/cloud-messaging/concept-options#notifications_and_data_messages
Doston
ребят, только только осваиваю rx, и меня вопрос. Допустим приложение посылает запрос в сервер, в случае, удачного завершения, я хочу удалить данные из локальной БД. Подскажите, как это првильно реализовать?
Doston
функция которая посылает запрос на сервер, возвращает Observable, думал в методе onComplete вызвать функцию удаления из БД, но как понимаю он вызывается даже когда onError. правильно?
Doston
направьте если я не прав
Dmitriy
Но мне кажется для вас логичнее использовать Single вместо Observable
Dmitriy
для Single вроде doOnSuccess
Doston
Для Observable - doOnNext
а функция, удаления из БД, должна возвращать какое-то значение? пока она у меня ничего не возвращает
Doston
Но мне кажется для вас логичнее использовать Single вместо Observable
прочитав, статью на хабре понял это. но пока делаю по туториалам…
Dmitriy
ну doOnNext на вход получает то что пришло, и обычно используется для обработки пришедших данных, можно вызвать метод для БД который удалит старые данные и запишет новые в в return просто вернуть то что пришло от сервера
Dmitriy
.doOnNext(result -> { deleteDataFromDbAndSaveNewData(result); return result; })
Doston
.doOnNext(result -> { deleteDataFromDbAndSaveNewData(result); return result; })
мой subscribe() метод пока выглядить так
Doston
.doOnNext(result -> { deleteDataFromDbAndSaveNewData(result); return result; })
по моему все так как вы написали…
Doston
но почему то не удаляет данные из БД
Aleksandr
В GoogleSignInOptions есть параметр requestIdToken(). Где его брать ?Кто знает
Dmitriy
А в onNext то вообще попадает?
Konstantin
Просто у FCM есть два типа пуша: Notification и Data. Notification если приложение открыто попадает в сервис, в котором вы формируете как должен выглядеть пуш, однако если закрыто(свернуто) то просто показывает пуш, который при клике открывает launch screen. А вот data пуши обрабатываются всегда через ваш сервис. По описанию проблемы похоже, что формируется именно notification уведомление. Почитать можно тут https://firebase.google.com/docs/cloud-messaging/concept-options#notifications_and_data_messages
Пуш приходит через fcm в сервис, в нотификейшене записано сообщения, в дата записаны доп параметры, какую активити и таб открыть. Проблема в том, что, если активити никакая не запущена или свернута, то при нажатии на нотификейшен не передаётся экстра, пробовал через фильтры у активити также-запускается ланчер без экстра. Если ж приложение уже запущено, все открывается отлично
Stas
Всем привет, можно ли либы в градле разделить на файлы и подключить уже эти файлы ?
Igor
.doOnNext(result -> { deleteDataFromDbAndSaveNewData(result); return result; })
использовать doOnNext стоит только для второстепенных эффектов типо, например логирования.
Igor
Всем привет, можно ли либы в градле разделить на файлы и подключить уже эти файлы ?
можно либы прописывать в отдельных модулях, если в этом есть необходимость
Igor
Не ради спора, а ради интереса, по какой причине?
он просто не предназначен для этого, Jake Warthon упомянал это в паре конференций
Dmitriy
@Deathw1ng Это может приводить к каким либо проблемам или же просто, когда он задумывался, то не предполагалось такое использование?
Igor
Если вы работаете с RxJava, старайтесь работать с потоками данных, а выполнение потенциально тяжеловесных функций в doOnNext уже не вписывается в Rx, но вам никто не запрещает такое делать, серьёзные проблемы связанные с этим можно обсудить в чате про Rx
Dmitriy
Спасибо, проверю способ. Но чёт сомневаюсь
Точно сработает, почитайте на сайте firebase, там прям написано что notification обрабатывается системой в обход вашего сервиса, если приложение на на переднем плане
Igor
Тогда что конкретного можете посоветовать? Где вызвать функцию удаления из ДБ?
потенциально, это уже completable или single, если вы заинтересованы в результате этой операции
Igor
Просто мне казалось что именно doOnNext отрабатывает еще на subscribe потоке, а уже onNext, который внтури метода subscribe работает в observe потоке. Почитаю на эту тему
поток в данном случае не имеет значения, например если вы вообще не переключаетесь между потоками, всё будет выполнено в MainThread
Dmitriy
Приведу пример
Igor
более того, observeOn переключит поток на котором будет выполняться doOnNext
Dmitriy
getObserver() .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .doOnNext(this::saveToDb(response)) .subscriber(this::showData(response), this::showError(throwable)); Верно я понимаю что doOnNext, исходя из сказанного выше будет выполняться в mainThread?
Dmitriy
Fedulov И второй вопрос если на первый ответ да getObserver() .subscribeOn(Schedulers.io()) .doOnNext(this::saveToDb(response)) .observeOn(AndroidSchedulers.mainThread()) .subscriber(this::showData(response), this::showError(throwable)); В таком случае тоже в mainThread?
Igor
во втором случае не должен
Dmitriy
во втором случае не должен
Спасибо за ликбез) пошел проверять)
Igor
из doOnNext можно проверить имя потока