Alex
Привет! Думаю над реализацией мгновенного обновления данных на множестве андроид-клиентов(подписки) из единого центра. Пока склоняюсь к выбору firebase realtime db. Можете подсказать альтернативы для рассмотрения?
Вениамин
Добрый день! Коллеги, подсксжите пожалуйста, стоит ли использовать android navigation graph или нет? Используется ли где-то в серьезных приложениях?
iamthevoid
https://m.habr.com/ru/company/yandex/blog/455479/?_ga=2.156664120.2064837990.1560879130-66518913.1556782096
Bahrom
у меня в одном запросе может придти либо массив либо обьект
Если в одном запросе то скорее надо изменить на стороне апи, разные типы в одном ключе, не очень хорошая идея.
Тимур
Приходятся придумывать костыли
Тимур
Что-то вроде этого https://stackoverflow.com/a/28325108
Вроде через отдельно если создать сереализаторы и десер то получается кажется
Тимур
Но хотелось бы с тайп адаптерами
Тимур
Он же вроде универчальнее не?
Igor
ребят у меня в ресайклере есть текст и под ним фото, ресайклер горизонтальный и мне нужно чтобы иногда текст был над несколькими фото один, можно ли как-то позволить тексту "залазить" на следующую позицию?
Anonymous
Помогите разобраться. При использовании Product Flavors я создал друглй файл strings.xml Чтобы при сборке этот strings взялся за основу, мне надо сделать полную копию текущего файла? или достаточно изменить только нужные строки? если их нет в этом файле, то система возмет их из основого strings.xml?
Doston
Но хотелось бы с тайп адаптерами
Много чего хочется, нам разработчикам)) С тайпадаптерамы как себе представляете? Можете пример привести, ибо я не могу представить
Тимур
нет, не совсем
Можешь подсказать про какое тогда?
Тимур
Ибо там невозможно (кмк) проверять тип
Там же вроде можно так jsonReader.peek();
Тимур
И свитчом к примеру перечислить типы
iamthevoid
Кто нибудь лечил у CollapsingToolbar такое поведение, что когда он схлопывается, а под ним ещё большой ресайклер (или скроллвью, не имеет значения) то при первом свайпе снизу вверх он доскролливается до полного схлопывания коллапсинг тулбара и останавливается и уже по второму продолжает скроллить ресайклер. Как можно это убрать, чтобы по первом свайпе снизу вверх он сразу скроллился весь без остановок? Не уверен, что понимаю, как это корректно загуглить)
iamthevoid
https://gist.github.com/iamthevoid/48d2a57b586f942ca899a5416ee84439
iamthevoid
Подозреваю, что это из за скролл флагов, пойду их погуглю
LexaMV
я хочу закинуть приложение в плей для теста, начал делать, и что мне нужно все заполнять как для нормального рабочего выпуска?
Тимур
Да
iamthevoid
Странно, у меня было такое расположение и все было ок. Скинь вертску
Я понял почему так происходит. У меня слишком высокий аппбар и такое поведение происодит, когда я дергаю за него. Но если я скроллю ресайклер то останоки не происходит
Andreu
Бывает)
iamthevoid
Бывает)
это как то можно вылечить, не знаешь?)
Anton
Ребят подскажите плз, начал втыкать в dagger2 и возникла 1 проблема: Сделал 2 компонента DBComponent и NetComponent в DBComponent входят модули DBModule и AppModule в компонент NetComponent входит один модуль NetModule Проблема в том что когда я в DBComponent добавляю метод void inject(TopicViewModel topicViewModel) у меня лезет ошибка, (error: retrofit2.Call<java.util.List<com.example.testcreator.models.Topic>> cannot be provided without an @Provides- or @Produces-annotated method.) (прикол в том что ретрофит там никак не связан, он в другом модуле) когда убираю все норм. В чем может быть проблема? Код ниже: DBComponent @Component(modules = {DBModule.class, AppModule.class}) @Singleton public interface DBComponent { void inject(App app); void inject(TopicViewModel topicViewModel); } DBModule @Module public class DBModule { @Provides @Singleton MyDataBase provideDB(@Named("application_context") Context context){ return Room.databaseBuilder(context,MyDataBase.class,"DBTestCreator").build(); } } AppModule @Module public class AppModule { private final Context context; public AppModule(Context context){ this.context = context; } @Named("application_context") @Provides Context provideAppContext(){ return context; } } App public class App extends Application { @Override public void onCreate() { super.onCreate(); DaggerDBComponent.builder().appModule(new AppModule(this)).build(); } } NetComponent @Singleton @Component(modules = {NetModule.class}) public interface NetComponent { void inject(TopicViewModel topicViewModel); } NetModule @Module public class NetModule { private final String BASE_URL="http://site.ru/api/"; @Provides @Singleton Retrofit provideRetrofit(){ return new Retrofit .Builder() .addConverterFactory(GsonConverterFactory.create()) .baseUrl(BASE_URL) .build(); } @Provides Call<List<Topic>> provideAllTopics(Retrofit retrofit){ return retrofit .create(JSONSiteApi.class) .getAllTopics(); } }
Anton
все сорь нашел ответ: https://stackoverflow.com/questions/35779851/dagger2-error-when-two-components-has-same-inject-method-signature
Alex Android
Ребят подскажите плз, начал втыкать в dagger2 и возникла 1 проблема: Сделал 2 компонента DBComponent и NetComponent в DBComponent входят модули DBModule и AppModule в компонент NetComponent входит один модуль NetModule Проблема в том что когда я в DBComponent добавляю метод void inject(TopicViewModel topicViewModel) у меня лезет ошибка, (error: retrofit2.Call<java.util.List<com.example.testcreator.models.Topic>> cannot be provided without an @Provides- or @Produces-annotated method.) (прикол в том что ретрофит там никак не связан, он в другом модуле) когда убираю все норм. В чем может быть проблема? Код ниже: DBComponent @Component(modules = {DBModule.class, AppModule.class}) @Singleton public interface DBComponent { void inject(App app); void inject(TopicViewModel topicViewModel); } DBModule @Module public class DBModule { @Provides @Singleton MyDataBase provideDB(@Named("application_context") Context context){ return Room.databaseBuilder(context,MyDataBase.class,"DBTestCreator").build(); } } AppModule @Module public class AppModule { private final Context context; public AppModule(Context context){ this.context = context; } @Named("application_context") @Provides Context provideAppContext(){ return context; } } App public class App extends Application { @Override public void onCreate() { super.onCreate(); DaggerDBComponent.builder().appModule(new AppModule(this)).build(); } } NetComponent @Singleton @Component(modules = {NetModule.class}) public interface NetComponent { void inject(TopicViewModel topicViewModel); } NetModule @Module public class NetModule { private final String BASE_URL="http://site.ru/api/"; @Provides @Singleton Retrofit provideRetrofit(){ return new Retrofit .Builder() .addConverterFactory(GsonConverterFactory.create()) .baseUrl(BASE_URL) .build(); } @Provides Call<List<Topic>> provideAllTopics(Retrofit retrofit){ return retrofit .create(JSONSiteApi.class) .getAllTopics(); } }
pastebin.com, цуко
Anton
ок, буду иметь ввиду
Konstantin
Ребят подскажите плз, начал втыкать в dagger2 и возникла 1 проблема: Сделал 2 компонента DBComponent и NetComponent в DBComponent входят модули DBModule и AppModule в компонент NetComponent входит один модуль NetModule Проблема в том что когда я в DBComponent добавляю метод void inject(TopicViewModel topicViewModel) у меня лезет ошибка, (error: retrofit2.Call<java.util.List<com.example.testcreator.models.Topic>> cannot be provided without an @Provides- or @Produces-annotated method.) (прикол в том что ретрофит там никак не связан, он в другом модуле) когда убираю все норм. В чем может быть проблема? Код ниже: DBComponent @Component(modules = {DBModule.class, AppModule.class}) @Singleton public interface DBComponent { void inject(App app); void inject(TopicViewModel topicViewModel); } DBModule @Module public class DBModule { @Provides @Singleton MyDataBase provideDB(@Named("application_context") Context context){ return Room.databaseBuilder(context,MyDataBase.class,"DBTestCreator").build(); } } AppModule @Module public class AppModule { private final Context context; public AppModule(Context context){ this.context = context; } @Named("application_context") @Provides Context provideAppContext(){ return context; } } App public class App extends Application { @Override public void onCreate() { super.onCreate(); DaggerDBComponent.builder().appModule(new AppModule(this)).build(); } } NetComponent @Singleton @Component(modules = {NetModule.class}) public interface NetComponent { void inject(TopicViewModel topicViewModel); } NetModule @Module public class NetModule { private final String BASE_URL="http://site.ru/api/"; @Provides @Singleton Retrofit provideRetrofit(){ return new Retrofit .Builder() .addConverterFactory(GsonConverterFactory.create()) .baseUrl(BASE_URL) .build(); } @Provides Call<List<Topic>> provideAllTopics(Retrofit retrofit){ return retrofit .create(JSONSiteApi.class) .getAllTopics(); } }
ни капли увожения к мобильным клиентам
Konstantin
?
https://t.me/android_ru/559676
Арсений
Это выглядит очень крипово и нечитабельно
Anton
а ну сори ребзя, забыл(
Doston
?
Попросту никогда не будет читать такое
Konstantin
а ну сори ребзя, забыл(
исправляйся пока злые админы не проснулись, редактируй и выкладывай на пастебин
Николай
народ, есть ли какой-то способ сымитировать на гуглкарте поездку? типа задать несколько локаций и время проезда между первой и последней точкой (или скорость движения). и чтобы маркер пользователя на карте начал передвигаться по маршруту? (делаю приложение для велосипедистов, надо проверить появление уведомлений по маршруту)
Сергей
Привет! Думаю над реализацией мгновенного обновления данных на множестве андроид-клиентов(подписки) из единого центра. Пока склоняюсь к выбору firebase realtime db. Можете подсказать альтернативы для рассмотрения?
См там же remoteConfig. Оно менее мнгновенно, не у всех миллионов пользователей сразу, а "от минут до суток при следующем запуске" обновит параметры зато не имеет лимитов по чтению/траффику
Руслан
Всем привет, ребят можно ли убрать данные полосы в NumberPicker ?
Руслан
Руслан
Да Надо погуглить только
Не получилось, это границы же данного элемента?
Azad
Не получилось, это границы же данного элемента?
https://stackoverflow.com/questions/44517686/android-how-to-remove-divider-lines-in-number-picker смотрел?
Alex
См там же remoteConfig. Оно менее мнгновенно, не у всех миллионов пользователей сразу, а "от минут до суток при следующем запуске" обновит параметры зато не имеет лимитов по чтению/траффику
В курсе remoteConfig, использовал, но тут другие цели. Время доставки должно быть гарантировано до пары секунд. Вариант ещё сделать подписку по ws, но тут надо vds свою поднимать
Delt@[•_•]
Доброе время суток, подскажите как такой элемент реализовать? Типо как в ватсапе код подтверждения http://joxi.ru/ZrJkn8NCwlKkWm
Ilya
Доброе время суток, подскажите как такой элемент реализовать? Типо как в ватсапе код подтверждения http://joxi.ru/ZrJkn8NCwlKkWm
есть куча готовых либ на гитхабе. Например вот https://github.com/Onum/EditCodeView. Или можешь посмотреть как там сделано и написать свою кастомную вьюху.
iamthevoid
Доброе время суток, подскажите как такой элемент реализовать? Типо как в ватсапе код подтверждения http://joxi.ru/ZrJkn8NCwlKkWm
Я делал на TextView. Тупо делаешь сколько надо текст вью. Поверх них с прозрачным текстом без курсора и бэкграунда эдит текст. И по мере ввода в эдит текст бьёшь строку на чары и пишешь их в текст вью
iamthevoid
ну и разумеется у эдит текст надо огрничить длину ввода
gio
для сохранения состаяния ui используете Android Architecture Components или moxy? moxy уже в прошлом?
iamthevoid
Спасибо, идея понятна
Идея ещё и в том, чтобы не тянуть либу в проект ради одной страницы
🐈 гав-гав
ребят, кто пишет/писал Юнит тесты, кто может проконсультировать? в частности с либой Мокито
🐈 гав-гав
сначала пытался мокать репозиторий который состоит из всяких сервисов (рума, ретрофит запросы), не получилось, потом начал мокать сами эти сервисы, и создавать репозиторий заполнив его замоканыи сервисами, ниче не работает-_-
🐈 гав-гав
какие классы нужно мокать? те в которых нет параметров в конструкторе?
Alex Android
Те, которые ты инжектируешь
🐈 гав-гав
последняя ошибка вот такая “Could not initialize plugin: interface org.mockito.plugins.MockMaker (alternate: null)” была еще вот такая ошибка “At the moment you cannot provide own implementations of MockHandler”
Alex Android
и те, которые ты посылаешь в конструктор
🐈 гав-гав
Что не работает? Ты переопределил все вызываемые методы Чтобы они что то возвращали??
это нужно делать на каждый метод? мокито разве не разрубливает это?
Serg
Каждый вызываемый метод в твоей проверке вроде как
🐈 гав-гав
он покрыт интерфейсом
🐈 гав-гав
его нужно замокать?
Serg
Поправьте меня если я путаю
Alex Android
Все методы, которые у тебя вызываются внутри тестируемого класса
Serg
Во
Sergey
текс, поподробнее
если покрыт интерфейсом, то в тест подсовывать реализацию интерфейса для теста (и вообще юзать стабы вместо моков)
🐈 гав-гав
сложна🙈
🐈 гав-гав
вот я взял вьюмодель, в ней присутствует метод логаут, который вызывает из репозитория метод логаут