Данил
Ребят, есть идея, как daggerом можно прокинуть token, который хранится в Settings в Database? @Module @InstallIn(ApplicationComponent::class) object RemoteDataSourceModule{ @Provides @Singleton fun provideRemoteDataSource(@ApplicationContext context : Context, token: String, apiService: APIService) = RemoteDataSource(context, token, apiService) }
Данил
а разве не RemoteDataSource должен его получать откуда-то?)
типо сделать так @Module @InstallIn(ApplicationComponent::class) object RemoteDataSourceModule{ @Provides @Singleton fun provideRemoteDataSource(@ApplicationContext context : Context, settingsDao: SettingsDao, apiService: APIService){ return provideRemoteDataSource(context, settingsDao.get().token, apiService) } ?
Данил
Ну либо через Repository
Данил
А Repository уже к Dao будет обращаться
Aleksey
типо сделать так @Module @InstallIn(ApplicationComponent::class) object RemoteDataSourceModule{ @Provides @Singleton fun provideRemoteDataSource(@ApplicationContext context : Context, settingsDao: SettingsDao, apiService: APIService){ return provideRemoteDataSource(context, settingsDao.get().token, apiService) } ?
ну что-то вроде того, да p.s. я вообще очень сомневаюсь, что RemoteDataSource нужен p.p.s. если там внутри OkHttp работает, то токен можно через Interceptor подпихивать на все запросы
Aleksey
token меняется
и каждый раз достается из хранилища, в чем проблема-то?)
Anonymous
Как мне вызвать метод getHolidays через кнопку?
Евгений
Ребят, как принято ловить событие destroy для приложения? В Application, например. Мне надо сервис прибить, хочу делать это в onDestroy своего Application. LifecycleObserver интерфейс навешан, но обзервится ProcessLifecycleOwner который не кидает Lifecycle.Event.ON_DESTROY. Я параллельно гуглю, но мож кто сразу натыкает меня в документацию.
Aleksey
Как мне вызвать метод getHolidays через кнопку?
выглядит, будто так вообще делать не стоит) нужен отдельный метод model.onRequestHolidaysPressed(), который сделает запрос и положит новый список в LiveData
Евгений
а почему нельзя прихлопнуть сервис либо со смертью процесса (он сам умрет, если не foreground), либо в RootActivity.onDestroy?
он таки foreground. RootActivity.onDestroy это я попробовал, работает, хотелось исключительно из эстетических соображений "тормозить" сервис оттуда же, откуда стартанули, но раз вариантов других нема, сделаю так, спасибо
Gleb
Всем привет ✋ Кто может подсказать, как получить программно номер телефона ??
Nikolai
https://lmgtfy.com/?q=%D0%BA%D0%B0%D0%BA+%D0%BF%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C+%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D0%BE+%D0%BD%D0%BE%D0%BC%D0%B5%D1%80+%D1%82%D0%B5%D0%BB%D0%B5%D1%84%D0%BE%D0%BD%D0%B0
Данил
и каждый раз достается из хранилища, в чем проблема-то?)
мне кажется не комильфо, чтобы сделать запрос к сеть, нужно ради этого каждый раз делать запрос к БД
Aleksey
мне кажется не комильфо, чтобы сделать запрос к сеть, нужно ради этого каждый раз делать запрос к БД
можно хранить не в бд, в памяти, а в бд обновлять только в случае изменения 🤷‍♂️
Данил
можно хранить не в бд, в памяти, а в бд обновлять только в случае изменения 🤷‍♂️
На уровне Repository сделать запрос к бд 1 раз и сохранить в переменную и уже ее запрашивать? Если пришел новый token, то по мере обновления базы данных, нужно еще и эту переменную обновить?
Данил
самый простой вариант - хранить токен в shared preferences и каждый раз ходить туда за ним)
В приложении могут авторизоваться несколько пользователей, поэтому tokenов (как и самих настроек) - может быть несколько
Egor
Привет. Можете скинуть или сказать пожалуйста, какого размера должны быть иконки? Студия добавляет 24×24 dp, сколько это на пикселях? И как вообще правильно иконки предоставлять? В png или svg?
Eugene
@Egor_Sigolaev https://petrnohejl.github.io/Android-Cheatsheet-For-Graphic-Designers/
Aleksey
всем привет . нужен хелп. использую firebase messaging . задача при получении пуш уведомления на иконке приложения показывать бэдж со счетчиком или точку с менюшкой как на новых андроидах. но хочу задавать цифру в счетчике сам. если прил запущен проблем нет, все четко. но как это сделать если оно в фоне? или на это никак повилять нельзя?
Suleiman
Всем привет! Подскажите, пожалуйста, кто знает как можно отключить хреновину, которая появляется на RecyclerView когда ты в конце списка, но тянешь список дальше?
Suleiman
не pull to Refresh
Suleiman
а декорация цветная
Siamion
а декорация цветная
<androidx.recyclerview.widget.RecyclerView ... android:overScrollMode="never" />
M
Всем привет. Есть RecyclerView с тремя Вьюхолдерами. Хэдер, Секция, и Ячейки. При первом скроле немного подвисает таблица. Подвисает получается при создании вьюхолдеров. Потом дальше все норм. Как это оптимизировать, чтобы не подвисал?
M
Точно RecyclerView не в ScrollView находится?
Да нет. Это не нужно. Скролл вью просто в layout
M
Точно RecyclerView не в ScrollView находится?
При скроле скроллвью создает не достающие холлеры чтобы были сверху и снизу, вот при создании и лагает доли секунды
neikist
Я бы в первую очередь на всякий все таки залогировал количество создаваемых холдеров. Мало ли, вдруг скролл вью какой просочился
neikist
При скроле скроллвью создает не достающие холлеры чтобы были сверху и снизу, вот при создании и лагает доли секунды
Так у тебя внутри или не внутри скролл вью? Если внутри - то он в принципе для всех элементов холдеры создает и вьюхи.
neikist
И не при скролле а сразу
Aleksey
На AndroidX AppCompat версии 1.1.0 не работает масштабиравание текста для Android 6.0, 7.0 Как же я люблю Google с их библиотечками 🤪
neikist
RecyclerView нужно ложить в ScrollView?
Наоборот, не нужно. Если в ScrollView положить - лагать будет. Как раз как ты описываешь.
M
Наоборот, не нужно. Если в ScrollView положить - лагать будет. Как раз как ты описываешь.
У меня родитель координатор layout в нем констрейнт, и в констрейнте лежит скроллвью
M
Наоборот, не нужно. Если в ScrollView положить - лагать будет. Как раз как ты описываешь.
Я в методе onCreateViewHolder посмотрел. Он несколько раз вызывается у меня при скроллинге. В это время и начинает лагать
Aleksandr
Вышележащий скролл говорит, что ресайклер может иметь неограниченную высоту. И если в ресайклера очень много элементов, то и рендериться они могут очень долго
neikist
У меня родитель координатор layout в нем констрейнт, и в констрейнте лежит скроллвью
Скролл вью на фазе измерения размеров вьюшек передает своим потомкам высоту как Unspecified. Из за чего они считают что можно по высоте отрисовываться хоть до бесконечности. Потому тот же ресайклер рендерит сразу все, хотя по задумке как раз должен рендерить только то что в данный момент на экране находится. Хотя если таки дергается при скролле - то вроде ок должно быть. Значит нужно смотреть на холдеры, но там уж без кода вряд ли чего можно сказать. Просто ресайклер в скроллвью довольно типичная ошибка. Лучше сразу посоветовать вопрошающему проверить.
Aleksandr
Кстати, можешь проверить высоту ресайклера с помощью логов или лэйаут-инспектора (если высота будет слишком большой, то он тоже может не справиться и останется только первый вариант)
Arsen
Доброе утро всем , кто знает как сжать видео, и приблизительно сколько может уменьшиться скажем видео размером 10mb
Anonymous
Хай! Почему не получается в TabLayout'e сделать содержимое таба во всю ширину? <com.google.android.material.tabs.TabLayout android:id="@+id/tabs" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:tabBackground="@drawable/tab_color_selector" app:tabRippleColor="@color/colorPrimaryDark" app:tabMaxWidth="0dp" app:tabGravity="fill" app:tabIndicator="@android:color/transparent"/>
Sergei
Ребят, почему не запускается только что созданное приложение на реальном устройстве? в консоль выводится ошибка
Suleiman
Dmytro
доброго времени суток, подскажите при компиляции aar с прогуард с включенной обсускацией android.view.View.OnClickListener заменяется на android.view.View$OnClickListener. После чего при подключении либы aar выдается ошибка Cannot access 'android.view.View$OnClickListener' which is a supertype of 'VideoPermissionView'. Check your module classpath for missing or conflicting dependencies. Хотя при декомпиляции в java все прекрасно выглядит
Андрей
Ребят, почему не запускается только что созданное приложение на реальном устройстве? в консоль выводится ошибка
у меня такое было когда не успел разрешить установку пакета (диалог на устройстве)
Sergei
у меня такое было когда не успел разрешить установку пакета (диалог на устройстве)
в том то и дело, что установку я разрешил, после минут 3х сборки появляется ошибка
Андрей
в том то и дело, что установку я разрешил, после минут 3х сборки появляется ошибка
мне тоже интересно как это лечить Я тоже разрешаю установку пакета, но он больше не устанавливается, приходится билдить и ставить апк.
Sergei
мне тоже интересно как это лечить Я тоже разрешаю установку пакета, но он больше не устанавливается, приходится билдить и ставить апк.
а ты можешь подсказать, почему на винду я не могу установить adb driver? Я уже кучу ресурсов посмотрел, не найти пояснение. У меня телефон xiaomi, я скачал adb но почему то драйвер не ставится
Anonymous
Или просто скинуть апк на тел
Sergei
попробую
Eugene
adb tcpip 5555 пока телефон подключен
Sergei
на linux тоже со студии не устанавливает в телефон, приходится вручную
Eugene
потом adb connect <ip телефона>:5555
Anonymous
Видно файловую систему? Телефона
Anonymous