Mike
Martynenko
Kopusha
androidx == support. AppCompat было подмножеством support.
Mike
Kopusha
navigation это story boards у iOS-ников, которым сто лет в обед. В андроиде по сути прячет тразакции фрагментов. Выглядит няшно на простых примерах, но боюсь будут затыки, если хочешь стек там подшаманить. Надо пробовать.
Sasha
Господа и дамы, посоветуйте, плиз, как лучше всего сделать удаление объекта из room по праймари кею? В реактивном виде это работает довольно плохо, думаю обернуть в корутину, например
Kopusha
ну и плюс, он туповат на многих юзкейсах. Наример типа поддерживает BottomNavigation. На самом деле, там тупо пересоздаются фрагменты по каждому клику на таб. Т.е. все равно пришлось руками на основе вью пейджера делать.
Kopusha
Корутина хорошо, но если у тебя Completable не завелся, то может не во фреймворках проблема. Что значит "работает плохо"? Удаляет через раз?
Sviat
Sasha
У меня возможен кейс, когда я получу с сервера delete объекта, которого у меня нет в room. Тогда код, который ищет его по id и удаляет с помощью метода @Delete, остаётся подписанным и удаляет этот объект, когда он появится (это уже не нужно, разумеется).
Sasha
По идее, как я понимаю, это можно решить с помощью метода @Query("delete ... from ... where id = ...")
Mike
Alexey
Поцоны. Допутим есть задача определить просмотрел ли юзер пост в ресайклере или нет
Alexey
как это по правильному сделать?
Roy
Всем привет, такой вопрос: запускаю службу с активити (в отдельном процессе), она работает пока не отключу так же с активити, служба работает и отправляет к приёмнику данные постоянно (приёмник реализован в отдельном классе, он принимает данные и отправляет их в очередь через Handler) в активити реализован Handler.Callback который выводит данные в UI. Приёмник регается\анрегается в активити (onStart\onStop). Вопрос в том, что когда приёмник не зареган, то sendBroadcast всё равно работает в сервисе и отправляет данные, в итоге создаётся ситуация "липкого" интента и при зарегивании приёмника, все не дошедшие интенты шквалом идут на приёмник, итог - UI отображает всё что накопилось. Решение - хранить состояние регистрации приёмника и проверять в сервисе при sendBroadcast, в чём это лучше делать (самый простой SharedPreferences, по сложнее AIDL), либо есть другие оптимальные варианты?
Alexey
Alexey
наверное нужно бинд + высоту видимости поста
но это гемор
Alexey
Anton
Aleksandr
ребят немного не по теме, но спрошу, кто нибудь сталкивался с проблемой push?
Counting objects: 83, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (48/48), done.
gitaly-receive-pack: fatal: receive-pack failed MiB/s
remote: fatal: Out of memory, malloc failed (tried to allocate 1194401221 bytes)
error: remote unpack failed: unpack-objects abnormal exit
error: failed to push some refs to
всякие http.postbuffer и тд менял не помогает
Amir
кто нибудь пользовался STETHO для доступа в базу в последнее время? В хроме почему-то по нажатию enter команта не выполняется, а идет перенос строки. Настройки сбросил, все равно. Никак выполниться запросы в базу не могу теперь
neikist
Привет, никто не сталкивался что спиннеры со скроллом себя странно ведут? Если быстро пальцем вверх или вниз провести все нормально, но если задержать палец на одном месте - список откатывается к текущему выбранному элементу. Что просто spinner, что appcompatspinner - поведение одинаковое.
Mikalaj
Alexey
а какую задачу решаешь?
пометить новость как просмотренную. Как в вк например когда скролишь, то все что проскролил считается просмотренным
Aleksandr
Anton
решение с .onBind вполне достаточное и не несет в себе костылей дополнительных и возможных багов, как с рассчетом высоты поста и т.д.
Если бы была задача включать плеер например, когда пост виденн пользователю - другой разговор. А вот сбор аналитики, пометки постов имхо вполне норм
Mike
bind же может происходить за экраном
Anton
вот я пытаюсь понять, критично для автора вопроса помечать именно 100% просмотренный пост или нет
Роман
Привет! Что надо знать в 19-м году, чтобы приняли на работу андроид миддлом? Спасибо.
Alexey
Anton
Вот смотрю документацию https://material.io/develop/android/theming/color/
И там есть атрибуты такие как colorOnBackground. Но при попытки добавить такой атрибут в style получаю ошибку что такого атрибута нет. Кто-нибудь может пояснить даный вопрос ?
Anton
то же про colorOnPrimary
Роман
Anton
xml в студию
хм...ну style.xml
<style name="AppTheme.Main" parent="Theme.MaterialComponents.NoActionBar">
<!— Customize your theme here. —>
<item name="android:colorBackground">#FFFF0000</item>
<item name="colorOnBackground">#FFFFFFFF</item>
</style>
Роман
попробуй app:colorOnBackground
Anton
Роман
В исходнике андроида умеешь смотреть?
Anton
Роман
Какие атрибуты есть в теме
Роман
Очевидно там ошибка
Роман
https://github.com/material-components/material-components-android/blob/master/lib/java/com/google/android/material/theme/res/values/themes_base.xml
Роман
здесь нету
Роман
https://github.com/material-components/material-components-android/blob/master/lib/java/com/google/android/material/theme/res/values/themes_base_bridge.xml
Роман
здесь есть
Anton
здесь есть
и какие выводы из этого нужно сделать ? Я упорно не понимаю как использовать все это чтобы были атрибуты из документации
Роман
https://github.com/material-components/material-components-android/blob/master/docs/getting-started.md
Роман
почитай, там наверняка найдёшь ответ
Роман
Попробуй Theme.MaterialComponents.NoActionBar.Bridge вместо Theme.MaterialComponents.NoActionBar
Anton
Роман
Покажи зависимости
Anton
Роман
все ))
Роман
весь раздел dependencies
Anton
весь раздел dependencies
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation "androidx.appcompat:appcompat:$versions.androidx_appcomapt"
implementation "com.google.android.material:material:$versions.material"
implementation "androidx.constraintlayout:constraintlayout:$versions.constraintlayout"
implementation "androidx.lifecycle:lifecycle-extensions:$versions.arch_lifecycle"
implementation "androidx.paging:paging-runtime:$versions.arch_paging"
implementation "io.reactivex.rxjava2:rxjava:$versions.rxjava"
implementation "io.reactivex.rxjava2:rxandroid:$versions.rxjava_android"
implementation "com.google.android.exoplayer:exoplayer-core:$versions.exo_player"
implementation "com.google.android.exoplayer:exoplayer-ui:$versions.exo_player"
implementation "com.github.bumptech.glide:glide:$versions.glide"
implementation "com.github.bumptech.glide:annotations:$versions.glide"
implementation "com.github.bumptech.glide:okhttp3-integration:$versions.glide"
implementation "com.squareup.retrofit2:retrofit:$versions.retrofit"
implementation "com.squareup.retrofit2:converter-gson:$versions.retrofit"
implementation "com.squareup.retrofit2:adapter-rxjava2:$versions.retrofit"
implementation "com.squareup.okhttp3:logging-interceptor:$versions.okhttp3"
implementation 'me.zhanghai.android.materialprogressbar:library:1.6.1'
annotationProcessor "com.github.bumptech.glide:compiler:$versions.glide"
implementation "com.google.dagger🗡$versions.dagger"
annotationProcessor "com.google.dagger:dagger-compiler:$versions.dagger"
implementation "com.google.dagger:dagger-android:$versions.dagger"
annotationProcessor "com.google.dagger:dagger-android-processor:$versions.dagger"
implementation "com.google.dagger:dagger-android-support:$versions.dagger"
implementation "ru.terrakok.cicerone:cicerone:5.0.0"
implementation 'net.danlew:android.joda:2.10.1.1'
Anton
def versions = [😏
versions.androidx_appcomapt = '1.0.2'
versions.material = '1.0.0'
versions.constraintlayout = '1.1.3'
versions.arch_lifecycle = '2.0.0'
versions.arch_paging = '2.1.0'
versions.exo_player = '2.9.4'
versions.glide = '4.8.0'
versions.dagger = '2.21'
versions.rxjava = '2.2.6'
versions.rxjava_android = '2.1.0'
versions.retrofit = '2.5.0'
versions.okhttp3 = '3.12.1'
slava
всем привет, делаю небольшой учебный проект, вроде чисто функционально все более-менее работает, поворот переживаю, утечек нет, но интересно услышать мнение опытных людей по поводу архитектуры и в общем. Может есть здесь те, кто "за спасибо" может сделать поверхностное ревью проекта? Ничего сверхестественного не прошу, просто может есть какие-то очевидные ошибки которые я не вижу вследствие отсутствия опыта. Буду рад любому отзыву https://github.com/UBERMENSCH-numbers/VKmsg
slava
да, забыл сказать, пока писал не думал что у кого-то появится мысль установить это. Дело в том что в последем коммите убрал логин чтоб каждый раз не логинится, пока дебажу, надеюсь таки никто не установит, там просто по умолчанию выполняется вход в мой аккунт 😁
Alex
Alex
:D
slava
да там токен уже старый
slava
вряд ли зайдет
Turalllb
венгерская нотация
Donna
ээ это с чего это вдруг?
neikist
+1
Konstantin
Konstantin
смотри историю гита если нужен старый код
Konstantin
Donna